Azure OpenAI Embedding スキル
重要
この機能はパブリック プレビュー段階にあり、追加使用条件の下で提供されます。 この機能は、2023-10-01-Preview REST API でサポートされます。
Azure OpenAI Embedding スキルは、Azure OpenAI リソースにデプロイされた埋め込みモデルに接続して、埋め込みを生成します。
データのインポートとベクター化では、Azure OpenAI Embedding スキルを使用してコンテンツをベクター化します。 ウィザードを実行し、生成されたスキルセットを確認して、ウィザードが作成する方法を確認できます。
Note
このスキルは Azure OpenAI にバインドされており、既存の Azure OpenAI の従量課金制の価格で課金されます。
@odata.type
Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill
データ制限
テキスト入力のサイズは最大で 8,000 トークンにする必要があります。 入力が、許可される最大値を超える場合、モデルによって無効な要求エラーがスローされます。 詳細については、Azure OpenAI のドキュメントでトークンの主要な概念に関するページを参照してください。 データチャンクが 必要な場合は、テキスト分割スキル の使用を検討してください。
スキルのパラメーター
パラメーターの大文字と小文字は区別されます。
入力 | 説明 |
---|---|
resourceUri |
Azure OpenAI リソースや OpenAI URL などのモデル プロバイダーの URI。 |
apiKey |
モデルへのアクセスに使用されるシークレット キー。 キーを指定する場合は、空のままにします authIdentity 。 apiKey と authIdentity の両方を設定すると、接続で apiKey が使用されます。 |
deploymentId |
デプロイされた Azure OpenAI 埋め込みモデルの名前。 このモデルは、text-embedding-ada-002 などの埋め込みモデルである必要があります。 サポートされているモデルについては、Azure OpenAI モデルの一覧を参照してください。 |
authIdentity |
Azure OpenAI に接続するために検索サービスによって使用されるユーザー マネージド ID。 システムまたはユーザーのマネージド ID を使用できます。 システム マネージド ID を使用するには、apiKey と authIdentity を空白のままにします。 システム マネージド ID が自動的に使用されます。 Azure OpenAI にテキストを送信するには、マネージド ID に Cognitive Services OpenAI ユーザー アクセス許可が必要です。 |
スキルの入力
入力 | 説明 |
---|---|
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",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "embedding"
}
]
}
サンプル出力
指定された入力テキストに対して、ベクター化された埋め込み出力が生成されます。
{
"embedding": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
出力はメモリ内に存在します。 この出力を検索インデックスのフィールドに送信するには、ベクター化された埋め込み出力 (配列) をベクター フィールドにマップする outputFieldMapping を定義する必要があります。 スキルの出力がドキュメントの 埋め込み ノードに存在し 、content_vector が検索インデックス内のフィールドであると仮定すると、インデクサーの outputFieldMapping は次のようになります。
"outputFieldMappings": [
{
"sourceFieldName": "/document/embedding/*",
"targetFieldName": "content_vector"
}
]
ベスト プラクティス
このスキルを使用する際に考慮する必要があるベスト プラクティスを次に示します。
- Azure OpenAI TPM (1 分あたりのトークン数) の制限に達している場合は、それに応じて対処できるように、クォータ制限のアドバイザリを検討してください。 Azure OpenAI インスタンスの パフォーマンスの詳細については、Azure OpenAI 監視 のドキュメントを参照してください。
- このスキルに使用する Azure OpenAI 埋め込みモデルのデプロイは、クエリ ベクターライザーなど、他のユース ケースで使用されるデプロイとは理想的に分離する必要があります。 これにより、各デプロイが特定のユース ケースに合わせて調整され、パフォーマンスが最適化され、インデクサーとインデックス埋め込み呼び出しからのトラフィックが簡単に識別されます。
- Azure OpenAI インスタンスは、同じリージョン内にあるか、少なくとも AI Search サービスがホストされているリージョンに地理的に近い場所にある必要があります。 これにより、待ち時間が短縮され、サービス間のデータ転送速度が向上します。
- クォータと制限に関するドキュメントで公開されている既定の Azure OpenAI TPM (1 分あたりのトークン数) の制限を超えている場合は、Azure AI Search チームでサポート ケースを開き、それに応じて調整できるようにします。 これにより、ドキュメントに記載されている既定の TPM 制限によってインデックス作成プロセスの速度が不必要に低下しないようにできます (上限が高い場合)。
エラーと警告
条件 | 結果 |
---|---|
null または無効な URI | Error |
null または無効な deploymentID | Error |
テキストが空です | 警告 |
テキストが 8,000 トークンを超えています | Error |