RAG ハイブリッド検索:検索結果と根拠の確認

執筆:Ai Flowi · 公開日

RAG ハイブリッド検索は、単語や正確な用語を使う語彙検索と、埋め込みで表した意味を使う意味検索を組み合わせます。統合した候補は、検索拡張生成の根拠になります。正確な識別子を含む質問と言い換えた質問を別々に評価し、両方の種類の根拠が選択後も残るかを確認します。

この提案した確認経路で使う AI Flowi Workflow の OpenSearch、Prompt Template、Language Model コンポーネントは、カタログに記載されていますが、Ai Flowi が本番環境で検証したものではありません。OpenSearch の説明にはハイブリッド検索への言及がありますが、エクスポートされたインターフェースでは、クエリの構築、検索信号の統合、外部インデックスの設定は確定できません。このガイドが提供するのはテスト設計であり、標準機能による検証済みのハイブリッド検索レシピではありません。

1. 検索信号の違いが分かるコーパスを作る

明示的な識別子、自然言語の説明、似ているが適用できないレコードを含む架空の文章を準備します。ある文章には架空の機器コードを使い、別のテストではその用途を説明する質問を使います。回答の流暢さを信用するのではなく、どの根拠が返されたか確認できるよう、版と文章の識別子を見える形にします。

ハイブリッド検索用コーパスの設計
文章の特徴質問の形式期待する根拠
正確な機器コードそのコードの機器の手順を尋ねます。検索されたテキスト内で、対象のコードを識別できる状態を保ちます。
平易な言葉による手順同じ作業を異なる言い回しで尋ねます。同じ表現を繰り返さなくても、手順を見つけられます。
似たコードの別の項目元のコードについて尋ねます。近い識別子に黙って置き換えられません。
規則と適用条件特定のケースに規則が適用されるか尋ねます。回答生成で、規則と適用条件の両方を利用できます。

これらは提案したケースであり、記録された検索結果ではありません。試行前に、必要な文章にラベルを付けます。コードの検索には識別子の正確さが、言い換えには概念の網羅が必要なので、組み合わせをこの2つの要件に照らして判断します。両方の信号があれば、文脈が完全で正しいとは考えないでください。

関連情報:RAG チャンク分割。

2. 外部検索の設定を前提条件として扱う

クエリ実行が許可された OpenSearch サービス、準備したコーパスを含むインデックス、対象の操作に権限を限定した認証情報、適切な埋め込み接続が必要です。回答を生成する前に、Language Model の接続手順に従い、必要なプロバイダーアカウントとキーを用意します。モデルのプロバイダーと外部検索サービスの料金は、ワークフローの実行料とは別です。

検索サービスの管理者に、比較に使う実際の語彙検索、意味検索、統合検索の設定を文書化してもらいます。外部設定には、OpenSearch のハイブリッド検索の公式ドキュメントを参照してください。そのドキュメントは、このオフラインの草稿では検証していません。このページでは、対応クエリ、プロセッサー、エンジンの動作について、特定のバージョンに関する主張をしません。

開始点として選ぶ前に、ユースケースの一覧で Hybrid Search RAG スターターの前提条件を確認します。そのスターターを、以下の OpenSearch 設計の実行時テストと見なしてはいけません。この手順では、エクスポートされた OpenSearch の仕様を使い、サービス設定とビルダーのフィールド設定を分けて扱います。

3. コンポーネントが実際に公開している仕様を確認する

OpenSearch のカタログ説明には、意味検索とキーワード検索の機能が併記されています。そのため、ここではコードの質問と言い換えた質問を比較します。検索入力には search_query、index_name、number_of_results、embedding、filter_expression が含まれます。出力は、JSON の search_results、Table の dataframe、VectorStore の vectorstoreconnection です。

エクスポートには、ハイブリッドモード、語彙検索の重み、融合規則、正規化パイプラインという名前の入力はありません。engine には選択肢がありますが、エンジン名だけでは、語彙検索と意味検索の結果の統合方法は確定できません。存在が確認されていないハイブリッド切り替えを作り出したり、文書化されていない構造化クエリ構文を search_query に入れたりしてはいけません。このフィールドは Message 接続を受け入れます。

4. 準備済みインデックスへの確認経路を設定する

準備済みインデックスの確認:設定例であり、記録されたテストではありません

準備済みインデックスの検索試行
コンポーネント設定するカタログ入力続行前の確認
OpenSearchopensearch_url:利用が許可されたサービス。index_name:準備済みのテスト用インデックス。auth_mode:設定に応じて "basic" または "jwt"。use_ssl:true。verify_certs:true。認証情報の値を公開せず、エンドポイントへのアクセスと証明書の有効性を検証します。
OpenSearch の検索設定search_query:ラベルを付けた質問を1つ。number_of_results:5。embedding:必要な場合は設定済みの Embeddings 接続。vector_field:管理者が確認したフィールド。5 は例として要求する結果数であり、プロバイダーの上限や標準のハイブリッド設定ではありません。
Prompt Templatetemplate:確認済みの根拠テキスト、元の質問、ソースに基づく回答の指示。最初の確認では、根拠を手動で入力します。動的なバインディングには、エディターでの検証が必要です。
Language Modelinput_value:Prompt Message。model:設定済みの LanguageModel。system_message:渡された根拠だけから回答する指示。回答は、検索の試行とは別に確認します。

この提案した検索専用の試行では、ingest_data を未設定にします。空にしておけば意図的な取り込み要求は避けられますが、認証情報が許可する操作を制限することはできません。権限は外部サービスで制御します。実データを使う前に、JWT フィールドの意味も含め、認証要件を管理者に確認します。

5. 実際の語彙検索・意味検索・統合検索の結果を比較する

すべての検索設定で、同じコーパスのスナップショットと質問セットを使います。外部のテスト環境から、語彙検索のみ、意味検索のみ、統合検索の結果を、それぞれ区別できる形で取得します。検証済みの設定でビルダーからそれらのモードを選べない場合は、同じ呼び出し3回を別の実験として扱わず、その制約を記録します。

各質問について、返された文章の識別子、順序、適用されるフィルターを保存します。コードの取り違え、言い換えた質問での検索漏れ、条件を示す文章の欠落を確認します。各観測結果とともに、実際のサービス設定を記録します。統合した実行であることは、そのサービス設定で確認します。コンポーネントの説明文も、返された一覧も、信号の重み付けを証明しません。

外部サービスの権限は、信号比較の実験と分けて扱います。ナレッジベースのガイドでは、より単純な検索の基準を準備する方法を説明しています。

語彙検索、意味検索、統合検索を比較する際は、対象として許可されたソースの集合を一定に保ちます。そうしなければ、新たに利用可能になった文章が、見かけ上の検索改善の原因かもしれません。各実行について、管理者が確認した設定と対象コーパスの両方を記録します。エクスポートされた filter_expression フィールドには文法が示されておらず、どのフィルターが実際に実行されたかも証明できません。

6. 回答を下書きする前に根拠を確認する

検索した根拠を生成に使う形に整える際は、ナレッジベースのチャットボットとPrompt Template リファレンスにある、書式の境界に関する確認に従います。

ハイブリッド検索に特有の有用な比較では、同じ架空の項目について、正確な機器コードを指定する質問と、コードを使わず用途を説明する質問を組にします。各外部設定で、両方の質問の後にどのソース ID が残るか記録します。コードを指定した質問では似た別の項目が返り、言い換えた質問では成功する場合、両者の平均では識別子の不具合が隠れます。確認ではこの組を一緒に扱い、モデルの言い回しで取り違えが見えにくくなる前に、統合された根拠を確認します。

期待する回答では、主張が返されたソースの文章に結び付き、根拠が足りない箇所は明示されます。要求された識別子を正確に保持する必要があります。文章の網羅性と根拠への忠実さには、RAG 評価を使います。候補の順序が残る問題であれば、RAG リランキングを検討します。リランキングは後段の選択処理であり、ハイブリッド検索が設定された証拠ではありません。

7. ハイブリッド検索が不要な場合はいつですか?

単純な検索経路で質問セットを満たせる場合は、外部検索の基盤を追加しないでください。ハイブリッド検索では、ソース文書の欠落、曖昧な識別子、不適切に準備されたテキストは修復できません。文書化された対象範囲がコーパスに合う場合は、ナレッジベース検索のガイドが、より小さな開始点になります。

この提案は、ホストされたインデックスの提供、標準のモード制御、エンジンの互換性、クエリの文法、自動障害復旧を確立するものではありません。エクスポートには、実測した遅延や品質の比較もありません。ビルダーでの実行をハイブリッド検索と呼ぶ前に、外部設定を確認し、その出力を確認します。検索が失敗した場合は、エラーペイロードから回答を作らず、生成を切り離したままにします。

ハイブリッド検索の利用量の前提

プラン:Goは年払いで月額USD8から(月払いUSD10)、Plusは月額USD16から(月払いUSD20)、Pro 100は月額USD80から(月払いUSD100)、Pro 200は月額USD160から(月払いUSD200)、Pro 500は月額USD400から(月払いUSD500)。毎月5,000~250,000 Flowi Tokensが含まれ、追加購入も可能です。ノード実行1回につき1トークン。サードパーティのAPIとモデルの利用料金は含まれません。

外部インデックス作成、埋め込み、検索比較、モデルによる生成には、別々に予算を見積もります。要求する結果数だけでは、検索サービスの課金方法は分かりません。