メモ
Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。
重要
機能、またはマークされたプロパティ (プレビュー) は、サービス レベル アグリーメントの対象ではなく、運用環境のワークロードには推奨されず、一般公開される前に変更または制約される可能性があります。 Azure AI 検索 プレビューの用語は、スタンドアロンでも一般公開されている機能の一部でも、すべてのプレビュー機能に適用されます。
この記事では、Azure AI 検索でのインデックス作成とクエリの実行中に、Microsoft Foundry モデル カタログ モデルを使用して統合ベクター化 (プレビュー) する方法について説明します。
ワークフローでは、カタログからモデルをデプロイする必要があります。これには、Microsoftやその他の企業からのモデルの埋め込みも含まれます。 モデルのデプロイは、各プロバイダーの課金構造に従って課金されます。
モデルをデプロイした後、AML スキル と共に使用して、インデックス作成中の統合ベクター化、またはクエリの Microsoft Foundry モデル カタログ ベクターライザーで使用できます。
ヒント
データの インポート ウィザード を使用して、Foundry にデプロイされた埋め込みモデル用の AML スキルを含むスキルセットを生成します。 入力、出力、マッピングの AML スキル定義はウィザードによって生成されるため、コードを記述する前にモデルを簡単にテストできます。
前提 条件
任意のリージョンおよび任意の料金プランで利用できるAzure AI 検索 サービス。
サポートされている埋め込みモデル
モデル カタログからサポートされる埋め込みモデルは、使用方法によって異なります。
プログラムでサポートされているモデルの最新の一覧については、AML スキルおよび Microsoft Foundry モデル カタログ ベクターライザー リファレンスを参照してください。
Azure ポータルでサポートされているモデルの最新の一覧については、「Azure ポータルでの Quickstart: Vector search および Quickstart: multimodal search in the Azure portal を参照してください。
モデル カタログから埋め込みモデルをデプロイする
次の ポータルの手順 に従って、サポートされているモデルをプロジェクトにデプロイします。
ターゲット URI、キー、モデル名を書き留めます。 これらの値は、検索インデックスのベクター化定義と、インデックス作成中にモデル エンドポイントを呼び出すスキルセットに必要です。
キーベース の認証よりもトークン認証 を使用する場合は、モデル名をコピーするだけで済みます。 ただし、モデルがデプロイされるリージョンをメモしておきます。
デプロイされたモデルを使用するように検索インデックスとインデクサーを構成します。
インデックス作成中にモデルを使用するには、「 統合ベクター化を使用する方法」を参照してください。 必ず AML スキルを使用してください。Azure OpenAI Embedding スキルは使用しないでください。 次のセクションでは、スキルの構成について説明します。
クエリ時にモデルをベクター化として使用するには、「 ベクターライザーの構成」を参照してください。 この手順では、必ず Microsoft Foundry モデル カタログ ベクターライザーを使用してください。
埋め込みモデルをサーバーレス デプロイとしてデプロイする
AML スキルと Microsoft Foundry モデル カタログ ベクターライザーは、Cohere 埋め込みモデルのサーバーレス デプロイのみを受け入れます。 Microsoft Foundry ポータルを使用したサーバーレスデプロイは、これらのモデルではサポートされていないため、Azure CLIを使用してデプロイを作成します。 詳細については、「 サーバーレス API デプロイとしてモデルをデプロイする」を参照してください。
Cohere サーバーレスデプロイを作成するには:
ml拡張子を持つAzure CLIをインストールします。az extension add -n mlAzureにサインインし、既定値を設定します。
az login az account set --subscription <subscription-id> az configure --defaults workspace=<project-name> group=<resource-group>モデルのマーケットプレース サブスクリプションをサブスクライブする
subscribe.yamlファイルを作成します。name: cohere-embed-v3-english-subscription model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-englishサポートされている他のモデルの場合は、モデル ID を次のいずれかの値に置き換えます。
モデル モデル ID Cohere-embed-v3-英語 azureml://registries/azureml-cohere/models/Cohere-embed-v3-englishCohere-embed-v3-多言語 azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingualCohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4次のコマンドを実行してサブスクリプションを作成します。
az ml marketplace-subscription create --file subscribe.yamlサーバーレス エンドポイントを作成する
endpoint.yamlファイルを作成します。name: cohere-embed-v3-english-endpoint model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english次のコマンドを実行して、エンドポイントを作成します。
az ml serverless-endpoint create --file endpoint.yamlキーベースの認証の場合は、スキルまたはベクターライザーで使用するエンドポイント URI とキーを取得します。
az ml serverless-endpoint show --name cohere-embed-v3-english-endpoint --query "scoring_uri" az ml serverless-endpoint get-credentials --name cohere-embed-v3-english-endpoint
AML スキル ペイロードのサンプル
モデル カタログから埋め込みモデルをデプロイする場合は、ワークロードのインデックス作成のためにAzure AI 検索の AML スキルを使用してそれらに接続します。
このセクションでは、AML スキルの定義とインデックスマッピングについて説明します。 これには、対応するデプロイされたエンドポイントで動作するように既に構成されているサンプル ペイロードが含まれています。 詳細については、「 スキル コンテキストと入力注釈言語」を参照してください。
Cohere 埋め込みモデル
この AML スキル ペイロードは、次の埋め込みモデルで動作します。
- Cohere-embed-v3-英語
- Cohere-embed-v3-多言語
- Cohere-embed-v4
テキスト分割スキルを使用してコンテンツをチャンクしていることを前提としているため、ベクター化するテキストは /document/pages/* パスにあります。 テキストが別のパスから取得されている場合は、それに応じて /document/pages/* パスへのすべての参照を更新します。
Foundry デプロイからコピーした URL の末尾に、 /v1/embed パスを追加する必要があります。 また、ユース ケースに合わせて、 input_type、 truncate、 embedding_types 入力の値を変更することもできます。 使用可能なオプションの詳細については、 Cohere Embed API リファレンスを参照してください。
URI とキーは、カタログからモデルをデプロイするときに生成されます。 これらの値の詳細については、「 Foundry を使用して Cohere Embed モデルをデプロイする方法」を参照してください。
{
"@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
"context": "/document/pages/*",
"uri": "https://cohere-embed-v3-multilingual-hin.eastus.models.ai.azure.com/v1/embed",
"key": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
"inputs": [
{
"name": "texts",
"source": "=[$(/document/pages/*)]"
},
{
"name": "input_type",
"source": "='search_document'"
},
{
"name": "truncate",
"source": "='NONE'"
},
{
"name": "embedding_types",
"source": "=['float']"
}
],
"outputs": [
{
"name": "embeddings",
"targetName": "aml_vector_data"
}
]
}
さらに、Cohere モデルの出力は、直接埋め込み配列ではなく、それを含む JSON オブジェクトです。
indexProjectionsまたはoutputFieldMappingsを使用してインデックス定義にマッピングする場合は、適切に選択する必要があります。 このマッピングを実装できるサンプル indexProjections ペイロードを次に示します。
スキル定義で別のembedding_typesを選択した場合は、float パスのsourceを選択した種類に変更します。
"indexProjections": {
"selectors": [
{
"targetIndexName": "<YOUR_TARGET_INDEX_NAME_HERE>",
"parentKeyFieldName": "ParentKey", // Change this to the name of the field in your index definition where the parent key will be stored
"sourceContext": "/document/pages/*",
"mappings": [
{
"name": "aml_vector", // Change this to the name of the field in your index definition where the Cohere embedding will be stored
"source": "/document/pages/*/aml_vector_data/float/0"
}
]
}
],
"parameters": {}
}
サンプル ベクターライザー ペイロード
Microsoft Foundry モデル カタログ ベクターライザーは、AML スキルとは異なり、モデル カタログを介してデプロイ可能な埋め込みモデルでのみ動作するように調整されています。 主な違いは、要求と応答のペイロードについて心配する必要がないということです。 ただし、モデルのデプロイ後にコピーした "モデル ID" に対応する modelNameを指定する必要があります。
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 スキルとMicrosoft Foundry モデル カタログ ベクターライザー接続を構成できます。
検索サービスには システムまたはユーザー割り当てマネージド ID が必要であり、ID にはプロジェクトの 所有者 または 共同作成者 のアクセス許可が必要です。 その後、スキルとベクターライザーの定義から key フィールドを削除し、 resourceIdに置き換えることができます。 プロジェクトと検索サービスが異なるリージョンにある場合は、 region フィールドも指定します。
"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 needed if project is in different region from search service
メモ
この統合では現在、Cohere モデルのトークン認証はサポートされていません。 キーベースの認証を使用する必要があります。