次の方法で共有


検索クエリとドキュメントの埋め込みを作成する

Azure AI Search ではベクトル化モデルがホストされないため、課題の 1 つは、クエリの入力と出力用の埋め込みを作成することです。 任意の埋め込みモデルを使用できますが、この記事では Azure OpenAI 埋め込みモデルを前提としています。 サンプル リポジトリのデモでは、Azure OpenAI の類似性埋め込みモデルをタップします。

ディメンション属性は、ベクトル フィールドごとに、2 個以上 4,096 個以下のディメンションを保持します。

Note

この記事は、一般公開されているベクトル検索のバージョンに適用されます。ここでは、ベクトル化のためにアプリケーションのコードで、Azure OpenAI などの外部リソースが呼び出されることを想定しています。 現在プレビュー段階の新しい機能である垂直統合では、埋め込みベクトル化を提供しています。 垂直統合は、インデクサー、スキルセット、AzureOpenAIEmbedding スキルまたは Azure AI Search の外部から実行されるモデルを指すカスタム スキルのいずれかに依存します。

モデルを使用する方法

  • クエリ入力では、人間が判読できるテキストをすばやくベクトルに変換する埋め込みモデルに、ユーザー指定の入力を送信する必要があります。

    • たとえば、text-embedding-ada-002 を使用して、テキスト埋め込みとイメージ埋め込み用の Image Retrieval REST API を生成できます。

    • レート制限を回避するために、ワークロードで再試行ロジックを実装できます。 Python のデモには、tenacity を使用しました。

  • クエリ出力は、検索インデックスで見つかった一致するドキュメントです。 検索インデックスには、埋め込みを含む 1 つ以上のベクトル フィールドがあるドキュメントをあらかじめ読み込んでおく必要があります。 インデックス作成に使用したモデルと同じモデルをクエリに使用します。

すべてのリソースを同じリージョンに作成します。

同じリージョンにリソースが必要な場合は、次から始めます。

  1. 現在、ヨーロッパと米国にある、類似性埋め込みモデルのリージョン

  2. Azure AI Search のリージョン

  3. セマンティック ランク付けを含むハイブリッド クエリをサポートする場合、または AI エンリッチメント パイプラインカスタム スキルを使用して機械学習モデルの統合を試す場合は、それらの機能を提供するリージョンに注意してください。

即興クエリの埋め込みを生成する

次の Python コードは、ベクトル クエリの "values" プロパティに貼り付けることができる埋め込みを生成します。

!pip install openai==0.28.1

import openai

openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

モデル統合を埋め込むためのヒントと推奨事項

  • ユース ケースを特定する: ベクトル検索機能の埋め込みモデル統合によって検索ソリューションに価値を付加できる特定のユース ケースを評価します。 これには、テキスト コンテンツと一致するイメージ コンテンツ、多言語検索、類似のドキュメントの検索が含まれます。
  • コストとパフォーマンスを最適化する: ベクトル検索はリソースを集中的に使用する可能性があり、上限で制限されるので、セマンティック意味を含むフィールドのみをベクター化することを検討してください。
  • 適切な埋め込みモデルを選択する: テキストベースの検索用の単語埋め込みや視覚的な検索用のイメージ埋め込みなど、特定のユース ケースに適したモデルを選択します。 OpenAI の text-embedding-ada-002Azure AI Computer Visionイメージ取得 REST API などの事前トレーニング済みモデル使用することを検討してください。
  • ベクトルの長さを正規化する: ベクトルの長さが正規化されていることを確認してから、検索インデックスに格納すると、類似性検索の精度とパフォーマンスが向上します。 ほとんどの事前トレーニング済みモデルは既に正規化されていますが、すべてではありません。
  • モデルのを微調整する: 必要に応じて、ドメイン固有のデータで選択したモデルを微調整すると、検索アプリケーションのパフォーマンスと関連性が向上します。
  • テストと反復: 期待する検索パフォーマンスとユーザーの満足度が実現されるように、埋め込みモデルの統合を継続的にテストして調整します。

次のステップ