次の方法で共有


Azure OpenAI Embedding スキル

Azure OpenAI Embedding スキルは、Azure OpenAI リソースにデプロイされた埋め込みモデルに接続して、インデックス付けの間に埋め込みを生成します。 データは、モデルがデプロイされている geo で処理されます。

前提条件

Azure OpenAI サービスには、 custom サブドメインが関連付けられている必要があります。 サービスが Azure portal を使用して作成された場合、このサブドメインはサービス セットアップの一部として自動的に生成されます。 Azure AI 検索統合で使用する前に、サービスにカスタム サブドメインが含まれていることを確認します。

Azure AI Foundry ポータルで作成された (埋め込みモデルにアクセスできる) Azure OpenAI Service リソースはサポートされていません。 Azure portal で作成された Azure OpenAI Service リソースのみが、Azure OpenAI 埋め込みスキル統合と互換性があります。

Azure portal のデータのインポートとベクトル化ウィザードでは、Azure OpenAI Embedding スキルを使用してコンテンツをベクトル化します。 ウィザードを実行し、生成されたスキルセットを確認して、モデルを埋め込むためのスキルがどのようにウィザードによって構築されるかを確認できます。

Note

このスキルは Azure OpenAI にバインドされており、既存の Azure OpenAI の従量課金制の価格で課金されます。

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

データ制限

テキスト入力のサイズは最大で 8,000 トークンにする必要があります。 入力が、許可される最大値を超える場合、モデルによって無効な要求エラーがスローされます。 詳細については、Azure OpenAI のドキュメントでトークンの主要な概念に関するページを参照してください。 データ チャンクが必要な場合は、テキスト分割スキルの使用を検討してください。

スキルのパラメーター

パラメーターの大文字と小文字は区別されます。

入力 説明
resourceUri モデル プロバイダー (この場合は Azure OpenAI リソース) の URI。 このパラメーターは、https://<resourcename>.openai.azure.comなどのドメイン openai.azure.comを持つ URL のみをサポートします。 Azure OpenAI エンドポイントにドメイン cognitiveservices.azure.comを含む URL (https://<resourcename>.cognitiveservices.azure.comなど) がある場合は、 openai.azure.comを含むを Azure OpenAI リソース用に最初に作成し、代わりにhttps://<resourcename>.openai.azure.comを使用する必要があります。
apiKey モデルのアクセスに使用されるシークレット キー。 キーを指定する場合は、authIdentity を空のままにします。 apiKeyauthIdentity の両方を設定すると、接続で apiKey が使用されます。
deploymentId デプロイされた Azure OpenAI 埋め込みモデルの名前。 このモデルは、text-embedding-ada-002 などの埋め込みモデルである必要があります。 サポートされているモデルについては、Azure OpenAI モデルの一覧を参照してください。
authIdentity Azure OpenAI に接続するために検索サービスによって使用されるユーザー マネージド ID。 システムまたはユーザーのマネージド ID を使用できます。 システム マネージド ID を使用するには、apiKeyauthIdentity を空白のままにします。 システム マネージド ID が自動的に使用されます。 Azure OpenAI にテキストを送信するには、マネージド ID に Cognitive Services OpenAI ユーザー アクセス許可が必要です。
modelName このプロパティは、スキルセットが 2024-05-01-preview または 2024-07-01 REST API を使用して作成される場合に必要です。 このプロパティを、resourceUri で指定して deploymentId で識別されたプロバイダーにデプロイされた Azure OpenAI 埋め込みモデルのデプロイ名に設定します。 現在サポートされている値は、text-embedding-ada-002text-embedding-3-largetext-embedding-3-small です
dimensions オプション。2024-05-01-preview REST API 以降では、生成する埋め込みのディメンションは、モデルが一連のディメンションをサポートしていると仮定します。 サポートされている範囲を以下に示します。現在、text-embedding-3 モデル シリーズにのみ適用されます。 既定値は、各モデルの最大ディメンションです。 2023-10-01-preview 以前の RESt API バージョンを使用して作成されたスキルセットの場合、ディメンションは 1536 で修正されます。 スキルで dimensions プロパティを設定する場合は、ベクトル フィールド定義のdimensions プロパティ同じ値に設定してください。

modelName でサポートされるディメンション

Azure OpenAI Embedding スキルでサポートされるディメンションは、構成されている modelName によって異なります。

modelName 最小ディメンション 最大ディメンション
text-embedding-ada-002 1536 1536
text-embedding-3-large 1 3072
text-embedding-3-small 1 1536

スキルの入力

入力 説明
text ベクター化する入力テキスト。 データ チャンクを使用している場合、ソースが /document/pages/* になる可能性があります。

スキルの出力

出力 説明
embedding 入力テキストのベクター化された埋め込み。

定義例

次のフィールドを持つレコードを検討してみます。

{
    "content": "Microsoft released Windows 10."
}

スキル定義は次のようになります。

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

サンプル出力

指定された入力テキストに対して、ベクター化された埋め込み出力が生成されます。

{
  "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

出力はメモリ内に存在します。 この出力を検索インデックスのフィールドに送信するには、ベクトル化された埋め込み出力 (配列) をベクトル フィールドにマップする outputFieldMapping を定義する必要があります。 スキルの出力がドキュメントの embedding ノードに存在し、content_vector が検索インデックス内のフィールドであると仮定すると、インデクサーの outputFieldMapping は次のようになります。

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/embedding/*",
      "targetFieldName": "content_vector"
    }
  ]

ベスト プラクティス

このスキルを使用する場合に考慮すべきベスト プラクティスを次に示します。

  • Azure OpenAI TPM (1 分あたりのトークン数) の制限に達している場合は、クォータ制限に関するアドバイスを参照して、適切に対処できるようにします。 Azure OpenAI インスタンスのパフォーマンスの詳細については、Azure OpenAI 監視のドキュメントを参照してください。

  • このスキルに使用する Azure OpenAI 埋め込みモデルのデプロイは、クエリのベクトル化などの他のユース ケースで使用されるデプロイとは理想的には別である必要があります。 これにより、各デプロイが特定のユース ケースに合わせて調整され、パフォーマンスが最適化され、インデクサーとインデックス埋め込みの呼び出しからのトラフィックを簡単に識別できます。

  • Azure OpenAI インスタンスは、同じリージョン内にあるか、少なくとも AI 検索サービスがホストされているリージョンに地理的に近い場所にある必要があります。 これにより、待機時間が短縮され、サービス間のデータ転送速度が向上します。

  • クォータと制限のドキュメントで公開されている既定の Azure OpenAI TPM (1 分あたりのトークン数) よりも大きい制限がある場合は、Azure AI 検索チームでサポート ケースを開いて、適切に調整できるようにします。 これにより、より高い制限が存在する場合に、ドキュメントに記載された既定の TPM 制限によって、インデックス付けプロセスが不要に遅延しなくなります。

  • このスキルを使用した例と動作するコード サンプルについては、次のリンクを参照してください。

エラーと警告

条件 結果
null または無効な URI Error
null または無効な deploymentID Error
テキストが空です 警告
テキストが 8,000 トークンを超えています Error

関連項目