次の方法で共有


Azure OpenAI Embedding スキル

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

前提条件

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

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

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

Note

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

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

データ制限

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

スキルのパラメーター

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

入力 説明
resourceUri モデル プロバイダー (この場合は Azure OpenAI リソース) の URI。 このパラメーターは、ドメイン openai.azure.comを持つ URL のみをサポートします。次に例を示 https://<resourcename>.openai.azure.comします。 Azure OpenAI エンドポイントにドメインcognitiveservices.azure.comを含む URL がある場合は、https://<resourcename>.cognitiveservices.azure.comAzure OpenAI リソース用にカスタム サブドメインopenai.azure.comを最初に作成し、代わりに使用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 で導入されました)。 モデルが埋め込みディメンションの削減をサポートしている場合に生成する埋め込みのディメンション。 サポートされている範囲を次に示します。 指定しない場合、各モデルの最大ディメンションが既定値になります。 2023-10-01-preview を使用して作成されたスキルセットの場合、ディメンションは 1536 に固定されます。

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

関連項目