次の方法で共有


Azure AI Search でのセマンティック ランク付け

Azure AI 検索では、"セマンティック ランカー" は、検索結果を再ランク付けするために Microsoft の言語理解モデルを使用して検索の関連性をある程度高める機能です。 セマンティック ランカーも エージェント検索に組み込まれています。 この記事は、セマンティック ランカーの動作と利点を理解するのに役立つ概要です。

セマンティック ランカーは、使用量によって課金されるプレミアム機能ですが、Free レベルの サービス制限 に従って無料で使用できます。 最初にこの記事を読んで基礎知識を得ることをお勧めしますが、すぐに始める場合は、こちらの手順に従ってください

セマンティック ランク付けとは

セマンティック ランカーは、テキスト ベースのクエリ、ベクター クエリのテキスト部分、ハイブリッド クエリの最初の BM25 ランク または RRF ランク付け 検索結果の品質を向上させるクエリ側機能のコレクションです。 セマンティック ランク付けでは、次の 3 つの方法でクエリ実行パイプラインが拡張されます。

  • 1 つ目として、BM25 または Reciprocal Rank Fusion (RRF) を使用してスコア付けされた最初の結果セットに対する二次ランク付けが常に追加されます。 このセカンダリ ランク付けでは、Microsoft Bingから適応された多言語のディープ ラーニング モデルを使用して、最も意味的に関連性の高い結果を促進します。

  • 次に、キャプションを返し、必要に応じて応答で回答を抽出します。これは、ユーザーの検索エクスペリエンスを向上させるために検索ページにレンダリングできます。

  • 3 番目に、クエリの書き換えを有効にすると、最初のクエリ文字列が複数のセマンティックに似たクエリ文字列に展開されます。

セカンダリ ランク付けと "回答" はクエリ応答に適用されます。 クエリの書き換えは、クエリ要求の一部です。

セマンティック リランカーの機能を次に示します。

Capability Description
L2 ランキング クエリのコンテキストまたはセマンティックの意味を利用して、事前にランク付けされた結果に対して新しい関連スコアを計算します。
セマンティック キャプションとハイライト コンテンツを最もよく要約している逐語的な文やフレーズをフィールドから抽出し、簡単にスキャンできるように重要な文節を強調表示します。 結果を要約するキャプションは、個々のコンテンツ フィールドが検索結果ページに対して高密度である場合に便利です。 強調表示されたテキストにより、最も関連性の高い用語とフレーズが目立つため、ユーザーはその一致が関連していると見なされた理由を迅速に判断できます。
セマンティック回答 セマンティック クエリから返される省略可能な追加のサブ構造体。 これにより、質問のようなクエリに直接回答することができます。 ドキュメントには、回答の特性を持つテキストが含まれている必要があります。
クエリの書き換え テキスト クエリまたはベクター クエリのテキスト部分を使用して、セマンティック ランカーはクエリの最大 10 個のバリアントを作成します。たとえば、入力ミスやスペル ミスを修正したり、生成されたシノニムを使用してクエリを言い換えたりします。 書き換えられたクエリは、検索エンジンで実行されます。 結果は BM25 または RRF スコアリングを使用してスコア付けされ、セマンティック ランカーによって再スコア付けされます。

セマンティック ランカーのしくみ

セマンティック ランカーはクエリと結果を受け取り、Microsoft がホストする言語理解モデルに送信します。 より良い一致を見つけるためにスキャンを行います。

コンセプトを次の図で説明します。 "capital" という用語を考えてみましょう。 これは、コンテキストが財務、法律、地理、文法なのかによって意味が異なります。 セマンティック ランカーは、言語の理解を通じてコンテキストを検出し、クエリの意図に合った結果を昇格させます。

コンテキストのベクトル表現の図。

セマンティック ランク付けでは、多くのリソースと時間が使用されます。 クエリ操作の予想される待機時間内で処理を完了するために、システムはセマンティック ランカーへの入力を統合して減らします。 このアプローチは、可能な限り迅速に再ランク付け手順を完了するのに役立ちます。

セマンティック ランク付けには、次の 3 つの手順があります。

  1. 入力を収集して要約する
  2. セマンティック ランカーを使用して結果をスコア付けする
  3. 再スコア付けされた結果、キャプション、回答を出力する

システムが入力を収集して集計する方法

セマンティック ランク付けでは、クエリのサブシステムからサマライゼーション モデルとランク付けモデルに検索結果が入力として渡されます。 ランク付けモデルには入力サイズに制約があり、集中的に処理されるため、検索結果は効率的に処理できるようなサイズで構造化 (要約) されている必要があります。

  1. セマンティック ランカーは、テキスト クエリからの BM25 ランクの結果 、またはベクターまたはハイブリッド クエリの RRF ランク付けされた結果 から始まります。 再ランク付け演習では、テキストのみを使用します。 結果に 50 を超える結果が含まれている場合でも、上位 50 件の結果のみがセマンティック ランク付けに進みます。 通常、セマンティック ランク付けでは、情報フィールドと説明フィールドが使用されます。

  2. 検索結果の中の各ドキュメントで、サマライゼーション モデルが受け入れるのは 2,000 トークンまでで、この場合、1 トークンはおよそ 10 文字です。 このモデルは、 セマンティック構成にリストされている "title"、"keyword"、および "content" フィールドからの入力をアセンブルします。

  3. システムは、全体の長さが集計ステップの入力要件を満たすように、過度に長い文字列をトリミングします。 優先順位の高い順序でセマンティック構成にフィールドを追加することが重要なのは、このトリミングの実行があるためです。 テキストが多いフィールドを持つ非常に大きなドキュメントがある場合、システムは上限を超える内容を無視します。

    セマンティック フィールド トークンの制限
    "title" 128 トークン
    "keywords 128 トークン
    "content" 残りのトークン
  4. 集計出力は、各フィールドの最も関連性の高い情報で構成される、各ドキュメントの概要文字列です。 システムは、スコア付けのためにランカーに要約文字列を送信し、キャプションと回答の機械読解モデルに送信します。

    2024 年 11 月時点、セマンティック ランカーへ渡される、生成後の各要約文字列の最大長は、2,048 トークンです。 以前は、256 トークンでした。

結果のスコア付け方法

システムは、キャプションと、2,048 トークンの長さを入力する概要文字列のその他のコンテンツに基づいて結果をスコア付けします。

  1. システムは、指定したクエリを基準にして、概念とセマンティックの関連性のキャプションを評価します。

  2. システムは、指定されたクエリに対するドキュメントのセマンティック関連性に基づいて、各ドキュメントに @search.rerankerScore を割り当てます。 スコアの範囲は 4 から 0 (高から低) です。スコアが高いほど関連性が高いことを示します。

    Score Meaning
    4.0 ドキュメントは関連性が高く、質問に完全に回答しますが、文節には、質問と関係のない追加のテキストが含まれている可能性があります。
    3.0 ドキュメントは、関連性はありますが、完全なものにする詳細は含まれていません。
    2.0 ドキュメントは、ある程度関連性があり、質問に部分的に回答するか、質問の一部の側面にのみ対処します。
    1.0 ドキュメントは質問に関連しており、質問のほんの一部に回答します。
    0.0 ドキュメントは関連性がありません。
  3. システムは、スコア別に降順に一致を一覧表示し、クエリ応答ペイロードに含めます。 ペイロードには、回答、プレーンテキスト、強調表示されたキャプション、select 句で取得または指定されたフィールドが含まれます。

Note

特定のクエリでは、@search.rerankerScore のディストリビューションが、インフラストラクチャ レベルの条件により、若干異なる場合があります。 ランク付けモデルの更新は、ディストリビューションにも影響を与える可能性があります。 これらの理由から、最小しきい値のカスタム コードを記述する場合や、ベクター クエリとハイブリッド クエリ のしきい値プロパティを設定 する場合は、制限を細かくしすぎないでください。

セマンティック ランカーの出力

各要約文字列から、機械読み取り理解モデルは最も代表的な一節を見つけ出します。

出力は次のとおりです。

  • ドキュメントのセマンティック キャプション。 各キャプションは、プレーン テキスト バージョンと強調表示バージョンで使用できます。また、多くの場合、ドキュメントあたり 200 語未満です。

  • パラメーターを指定した場合、クエリが質問として提示された場合、その質問に対して適していそうな回答を提供する長い文字列で文節が見つかる場合を想定し、オプションのanswersが返されます。

キャプションと回答は、常にインデックスからの逐語的なテキストです。 このワークフローには、新しいコンテンツを作成または構成する生成 AI モデルはありません。

セマンティック機能と制限

セマンティック ランカー でできること :

  • セマンティック的に元のクエリの意図に近い一致を昇格させます。

  • キャプションおよび回答として使用できる文字列を見つけ出します。 応答はキャプションと回答を返し、検索結果ページに表示できます。

セマンティック ランカーで "できない" ことは、コーパス全体に対してクエリを再実行し、意味的に関連性がある結果を検出することです。 セマンティック ランク付けでは、既定のランク付けアルゴリズムによってスコアリングされた上位 50 個の結果で構成される既存の結果セットが再ランク付けされます。 さらに、セマンティック ランカーで新しい情報や文字列を作成することもできません。 言語モデルは、コンテンツからキャプションと回答を逐語的に抽出するため、結果に回答のようなテキストが含まれていない場合は生成されません。

セマンティック ランク付けはすべてのシナリオで有益なわけではありませんが、特定のコンテンツではその機能から多くのメリットが得られます。 セマンティック ランカーの言語モデルは、情報が豊富で、散文として構造化された検索可能なコンテンツに最適です。 ナレッジ ベース、オンライン ドキュメント、または説明的なコンテンツを含むドキュメントでは、セマンティック ランカー機能から最も多くのメリットが得られます。

テクノロジは Bing と Microsoft Research が基になっており、Azure AI Search インフラストラクチャにアドオン機能として統合されます。 セマンティック ランカーを支える研究と AI 投資に関する詳細については、「Bing の AI が Azure AI 検索にパワーを与えるしくみ (Microsoft Research ブログ)」を参照してください。

次の動画では、機能の概要について説明しています。

セマンティック ランカーがシノニム マップを使用する方法

検索インデックス内の フィールドに関連付けられているシノニム マップ のサポートを有効にし、そのフィールドを セマンティック ランカー構成に含める場合、セマンティック ランカーは、再ランク処理中に構成されたシノニムを自動的に適用します。

可用性と料金

セマンティック ランカーは、 選択したリージョンで使用できます。 スタンドアロン機能として、 およびエージェント検索の組み込みコンポーネントとして使用します。

検索サービスのセマンティック ランカーを無効にしたり、無料で制限付きで使用したり、従量課金制の課金でより広範に使用することができます。

Plan Description
Free 無料ティアの検索サービスでは、1か月あたり1,000件のセマンティックランカーリクエストと1か月あたり5,000万個の無料エージェント推論トークンが提供されます。 上位レベルでは、無料プランを使用することもできます。
Standard 標準プランは、毎月の無料クォータが使用されると、従量課金制の価格になります。 最初の 1,000 セマンティック ランカー要求の後、追加の 1,000 件の要求ごとに支払います。 1 か月あたり最初の 5,000 万個のエージェント推論トークンの後、100 万個のエージェント推論トークンごとに名目手数料を支払います。 Free から Standard への移行はシームレスです。 切り替えが発生しても通知されません。 通貨別の料金の詳細については、 Azure AI Search の価格に関するページを参照してください。

Azure AI Search の価格ページでは、さまざまな通貨とサイクル間隔での課金レートが表示されます。

セマンティック ランカーの料金は、クエリ要求に queryType=semantic が含まれており、検索文字列が空でない場合 (たとえば、 search=pet friendly hotels in New York) に発生します。 検索文字が空の場合 (search=*)、queryType が semantic に設定されていても課金されません。

セマンティック ランカーの使用を開始する方法

  1. リージョン別の提供状況を確認する

  2. Azure portal にサインインします

  3. 価格プランを選択して、検索サービスのセマンティック ランカーを構成します。 無料プランが既定です。

  4. 検索インデックスでセマンティック ランカーを構成します

  5. セマンティック キャプションとハイライトを返すようにクエリを設定します

  6. 必要に応じて、セマンティック回答を返します

こちらも参照ください