LESSON 30分

ストーリー

田中VPoE
Step 3で検索パイプラインの基本を構築した。Step 4ではそのパイプラインの「検索精度」を徹底的に最適化する
あなた
現状でも動くパイプラインはできていますが、まだ改善の余地があるんですね
田中VPoE
大いにある。特にユーザーのクエリがそのままでは検索に適していないケースが多い。「なんか最近のRAGの話」のような曖昧なクエリ、「先月の会議のあれ」のような文脈依存のクエリ、「RAGのメリットとデメリットを比較して」のような複合的なクエリ
あなた
クエリを検索に適した形に変換するんですね
田中VPoE
それがクエリ変換だ。Query Rewriting、HyDE、Multi-Query、Step-back Prompting — 4つの主要手法を学ぼう

Query Rewriting(クエリ書き換え)

基本概念

ユーザーの元のクエリをLLMが検索に適した形に書き換える手法です。

Query Rewritingの流れ:

ユーザーのクエリ: 「なんか最近のRAGの話ってどうなってる?」
    ↓ LLMで書き換え
書き換え後: 「RAGシステムの最新動向と技術トレンド 2025年以降」

ベクトル検索(書き換え後のクエリで実行)

書き換えパターン

パターン元のクエリ書き換え後
曖昧→具体化「あの認証の仕組み」「OAuth 2.0認証フローの実装方法」
口語→検索用語「DBが重い」「データベースのパフォーマンス低下の原因と対策」
省略→展開「k8sのHPA設定」「Kubernetes Horizontal Pod Autoscalerの設定方法」
文脈付加「エラーの対処法」「Pythonアプリケーションの一般的なエラーハンドリングの方法」

HyDE(Hypothetical Document Embeddings)

基本概念

LLMで「仮の回答」を生成し、その仮回答のEmbeddingを使って検索する手法です。

HyDEの流れ:

ユーザーのクエリ: 「RAGの検索精度を上げるには?」

[Step 1] LLMで仮の回答を生成
「RAGの検索精度を向上させるには、以下の手法が有効です。
 1. Query Rewritingでクエリを最適化する
 2. Rerankingで検索結果を再順位付けする
 3. ハイブリッド検索で意味検索とキーワード検索を組み合わせる...」

[Step 2] 仮回答のEmbeddingを生成

[Step 3] 仮回答のEmbeddingでベクトル検索

実際のドキュメントがヒット(仮回答と類似した本物のドキュメント)

なぜ有効か

理由説明
表現ギャップの解消クエリ(質問形式)よりも仮回答(説明形式)の方がドキュメントの表現に近い
コンテキストの拡張短いクエリよりも、仮回答の方が多くの関連語を含む
セマンティックの強化仮回答にはトピックに関連する用語が自然に含まれる

HyDEの注意点

注意点対策
LLM呼び出しのレイテンシ追加軽量モデル(Haiku等)を使用、キャッシュ活用
仮回答がハルシネーションを含む仮回答は検索用であり、最終回答には使わない
コスト増加全クエリではなく、精度が低い場合のフォールバックとして使用

Multi-Query(マルチクエリ)

基本概念

1つのクエリから複数の異なるクエリを生成し、それぞれで検索して結果を統合する手法です。

Multi-Queryの流れ:

ユーザーのクエリ: 「RAGのメリットとデメリットを教えて」
    ↓ LLMで複数クエリを生成
├── Q1: 「RAGシステムを導入するメリットと利点」
├── Q2: 「RAGシステムのデメリットと課題、制約事項」
└── Q3: 「RAGとFine-tuningの比較、それぞれの長所短所」
    ↓ 各クエリで検索
├── Q1の検索結果
├── Q2の検索結果
└── Q3の検索結果
    ↓ RRFで統合
統合された検索結果

効果

効果説明
多角的な検索複数の視点からドキュメントを検索
Recall向上単一クエリでは見つからない関連ドキュメントを発見
曖昧なクエリへの対応複数の解釈を並行して検索

Step-back Prompting

基本概念

具体的なクエリを一段抽象化し、より広い概念で検索する手法です。

Step-back Promptingの流れ:

ユーザーのクエリ: 「QdrantのHNSWパラメータのef値を128にしたらどうなる?」
    ↓ LLMで一段抽象化
Step-backクエリ: 「ベクトルDBのHNSWインデックスのパラメータチューニング方法」
    ↓ 両方のクエリで検索
├── 元のクエリ → 具体的な設定値に関する情報
└── Step-backクエリ → HNSWの一般的なチューニングガイド
    ↓ 結果統合
具体的な回答 + 背景知識

「クエリ変換は”ユーザーが本当に知りたいこと”を推測する技術だ。ユーザーの質問が完璧であることは稀だ。システム側がフォローする仕組みを入れろ」 — 田中VPoE


4つの手法の比較と使い分け

手法レイテンシ影響精度向上効果適するケース
Query Rewriting小(1回のLLM呼び出し)曖昧・口語的なクエリ
HyDE中(1回のLLM呼び出し + Embedding)クエリとドキュメントの表現ギャップが大きい場合
Multi-Query大(N回の検索)複合的なクエリ、Recallを最大化したい場合
Step-back中(1回のLLM呼び出し + 追加検索)中〜高具体的すぎるクエリ

まとめ

ポイント内容
Query Rewritingクエリを検索に適した表現に書き換える
HyDE仮の回答を生成し、そのEmbeddingで検索する
Multi-Query複数の異なるクエリで並行検索し、結果を統合
Step-backクエリを抽象化して、より広い概念で検索

チェックリスト

  • Query Rewritingの効果と適用パターンを理解した
  • HyDEの仕組みと注意点を理解した
  • Multi-Queryの効果と使いどころを理解した
  • Step-back Promptingの概念を理解した

次のステップへ

次は「Reranking手法」を学びます。検索結果の再順位付けにより、Precisionを大幅に向上させる手法を理解しましょう。


推定読了時間: 30分