次の方法で共有


統合ベクトル化に Azure AI Foundry モデルカタログからの埋め込みモデルを使用する

重要

この機能はパブリック プレビュー段階にあり、追加使用条件の下で提供されます。 この機能は、2024-05-01-Preview REST API でサポートされます。

この記事では、Azure AI Foundry モデル カタログの埋め込みモデルにアクセスして、Azure AI 検索内でのインデックス作成時やクエリ内でベクトル変換を行う方法を学習します。

ワークフローには、モデル デプロイ手順が含まれています。 モデルカタログには、Microsoft や他の企業による埋め込みモデルが含まれています。 モデルのデプロイは、各プロバイダーの課金構造を通じて課金されます。

モデルのデプロイが完了すると、それをインデックス作成時の垂直統合で使用したり、クエリのための Azure AI Foundry ベクトライザーで使用したりできるようになります。

ヒント

データのインポートとベクトル化 ウィザードを使用して、Azure AI Foundry にデプロイされた埋め込みモデル用の AML スキルを含むスキルセットを生成します。 入力、出力、マッピングの AML スキル定義はウィザードによって生成されるため、コードを記述する前にモデルを簡単にテストできます。

前提条件

サポートされている埋め込みモデル

統合ベクトル化と データのインポートとベクトル化ウィザード では、モデルカタログの次の埋め込みモデルがサポートされています:

テキスト埋め込み用:

  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingual

画像埋め込み用:

  • Facebook-DinoV2-Image-Embeddings-ViT-Base
  • Facebook-DinoV2-Image-Embeddings-ViT-Giant

Azure AI Foundry モデル カタログの埋め込みモデルをデプロイする

  1. Azure AI Foundry モデル カタログを開きます。 まだない場合は、プロジェクトを作成します。

  2. 埋め込みモデルのみを表示するフィルターを適用します。 [Inference tasks]\(推論タスク\) で、[Embeddings]\(埋め込み\) を選択します。

    埋め込みモデルによるフィルター処理を行う方法が示されている Azure AI Foundry モデル カタログ ページのスクリーンショット。

  3. サポートされているモデルを選択し、[デプロイ] を選択します。

    Azure AI Foundry モデル カタログを使用したエンドポイントのデプロイのスクリーンショット。

  4. 既定値をそのまま使用するか、必要に応じて変更し、[デプロイ] を選択します。 デプロイの詳細は、選択したモデルによって異なります。

  5. プロビジョニング状態を監視して、モデルのデプロイが完了するまで待ちます。 "プロビジョニング"、"更新中"、"成功" の順に変わるはずです。 状態の更新を表示するには、数分ごとに [更新] を選択する必要がある場合があります。

  6. ターゲット URI、キー、モデル名を書き留めます。 これらの値は、検索インデックス内のベクトル化定義と、インデックス作成中にモデル エンドポイントを呼び出すスキルセットに必要です。

    必要に応じて、キー認証ではなくトークン認証を使用するようにエンドポイントを変更できます。 トークン認証を有効にする場合、コピーする必要があるのは、URI とモデル名だけですが、モデルがどのリージョンにデプロイされているかも書き留めておくことも必要です。

    Azure AI Foundry にデプロイされたエンドポイントのスクリーンショット。後のためにコピーして保存するべきフィールドが強調表示されています。

  7. これで、デプロイされたモデルを使用するように検索インデックスとインデクサーを構成できるようになりました。

AML スキル ペイロードのサンプル

Azure AI Foundry モデル カタログの埋め込みモデルをデプロイする場合は、Azure AI 検索内のインデックス作成ワークロード用の AML スキルを使用してそれらに接続します。

このセクションでは、AML スキルの定義とインデックス マッピングについて説明します。 これには、対応するデプロイされたエンドポイントで動作するように既に構成されているサンプル ペイロードが含まれています。 これらのペイロードのしくみの技術的な詳細については、スキル コンテキストと入力注釈言語に関するページを参照してください。

この AML スキル ペイロードは、Azure AI Foundry の以下の画像埋め込みモデルで動作します。

  • Facebook-DinoV2-Image-Embeddings-ViT-Base
  • Facebook-DinoV2-Image-Embeddings-ViT-Giant

画像は、組み込みの画像抽出を有効にして作成された /document/normalized_images/* パスから取得されることを前提としています。 画像が別のパスから取得された場合、または URL として保存されている場合は、/document/normalized_images/* パスへのすべての参照を更新します。

URI とキーは、カタログからモデルをデプロイするときに生成されます。 これらの値の詳細については、「Azure AI Foundry を使用して大規模言語モデルをデプロイする方法」を参照してください。

{
  "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
  "context": "/document/normalized_images/*",
  "uri": "https://myproject-1a1a-abcd.eastus.inference.ml.azure.com/score",
  "timeout": "PT1M",
  "key": "bbbbbbbb-1c1c-2d2d-3e3e-444444444444",
  "inputs": [
    {
      "name": "input_data",
      "sourceContext": "/document/normalized_images/*",
      "inputs": [
        {
          "name": "columns",
          "source": "=['image', 'text']"
        },
        {
          "name": "index",
          "source": "=[0]"
        },
        {
          "name": "data",
          "source": "=[[$(/document/normalized_images/*/data), '']]"
        }
      ]
    }
  ],
  "outputs": [
    {
      "name": "image_features"
    }
  ]
}

Azure AI Foundry ベクトライザー ペイロードのサンプル

Azure AI Foundry ベクトライザーは、AML スキルとは異なり、Azure AI Foundry モデル カタログを介してデプロイ可能な埋め込みモデルだけで動作するように調整されています。 主な違いは、利用者は要求と応答のペイロードについて心配する必要はありませんが、Azure AI Foundry ポータルでモデルをデプロイした後にコピーした "モデル ID" に対応する modelName を指定する必要があるということです。

Azure AI Foundry からコピーされたプロパティを基にして、インデックス定義上でベクトライザーを構成する方法のサンプル ペイロードを次に示します。

Cohere モデルの場合は、スキルで行ったように、URL の末尾に /v1/embed パスを追加しないでください。

"vectorizers": [
    {
        "name": "<YOUR_VECTORIZER_NAME_HERE>",
        "kind": "aml",
        "amlParameters": {
            "uri": "<YOUR_URL_HERE>",
            "key": "<YOUR_PRIMARY_KEY_HERE>",
            "modelName": "<YOUR_MODEL_ID_HERE>"
        },
    }
]

トークン認証を使用して接続する

キーベース認証を使用できない場合は、代わりに Azure 上のロールベースのアクセス制御を介したトークン認証用の AML スキルと Azure AI Foundry ベクトライザー接続を構成することができます。 検索サービスにはシステムまたはユーザー割り当てマネージド ID が必要であり、ID には AML プロジェクト ワークスペースの所有者または共同作成者のアクセス許可が必要です。 その後、スキルとベクトル化の定義からキー フィールドを削除し、resourceId フィールドに置き換えることができます。 AML プロジェクトと検索サービスが異なるリージョンにある場合は、リージョン フィールドも指定します。

"uri": "<YOUR_URL_HERE>",
"resourceId": "subscriptions/<YOUR_SUBSCRIPTION_ID_HERE>/resourceGroups/<YOUR_RESOURCE_GROUP_NAME_HERE>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR_AML_WORKSPACE_NAME_HERE>/onlineendpoints/<YOUR_AML_ENDPOINT_NAME_HERE>",
"region": "westus", // Only need if AML project lives in different region from search service

次のステップ