AI・機械学習
上級

HyDE(Hypothetical Document Embeddings)(ハイドハイポセティカルドキュメントエンベディングス)

RAG改善技術。クエリに対してLLMが仮想的な回答ドキュメントを生成し、その埋め込みベクトルで検索することで関連文書の召喚精度を向上させる手法。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
RAG
HyDE
埋め込み検索
LLM
検索精度改善
ベクトル検索

HyDE(Hypothetical Document Embeddings)とは

HyDE(Hypothetical Document Embeddings)は、2022年にLuyu Gaoらが論文「Precise Zero-Shot Dense Retrieval without Relevance Labels」で提案したRAG(Retrieval-Augmented Generation)の検索精度改善手法である。従来のRAGにおける検索クエリの埋め込みベクトルではなく、LLMが生成した「仮想的な回答ドキュメント」の埋め込みベクトルを使用して知識ベースを検索する。

従来のRAGとの違い

従来のRAG検索フロー:

  1. ユーザークエリ → 埋め込みベクトル化
  2. ベクトルデータベースで類似文書検索
  3. 検索文書をコンテキストとしてLLMに渡す
  4. LLMが最終回答を生成

HyDEのフロー:

  1. ユーザークエリ → LLMが仮想的な回答ドキュメントを生成(まだ事実確認なし)
  2. 仮想ドキュメント → 埋め込みベクトル化
  3. ベクトルデータベースで類似文書検索(仮想ドキュメントのベクトルで)
  4. 検索文書をコンテキストとしてLLMに渡す
  5. LLMが最終回答を生成

なぜ有効か:意味空間の問題

ユーザーのクエリ(質問文)と正解文書(回答文)は、意味空間上で必ずしも近くに位置しない。たとえば「Transformerの仕組みは?」というクエリと「Self-Attentionはクエリ・キー・バリューの行列演算で…」という文書は、意味は近いが表現形式が異なる。

HyDEでは、LLMがクエリに対して「回答らしいテキスト」を先に生成することで、文書と同じ意味空間・表現形式に変換し、ベクトル空間での類似度を高める。これによりゼロショットでの高精度検索が実現する。

実装例

from openai import OpenAI

client = OpenAI()

def hyde_search(query: str, vector_store) -> list:
    # Step 1: 仮想回答ドキュメントを生成
    hypothetical_doc = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": "以下の質問に対する回答を1段落で生成してください。"},
            {"role": "user", "content": query}
        ]
    ).choices[0].message.content
    
    # Step 2: 仮想ドキュメントの埋め込みベクトルを生成
    embedding = client.embeddings.create(
        model="text-embedding-3-small",
        input=hypothetical_doc
    ).data[0].embedding
    
    # Step 3: ベクトルDBで類似文書検索
    results = vector_store.similarity_search_by_vector(embedding, k=5)
    return results

利点と欠点

利点:

  • ゼロショットで高精度検索が可能(ファインチューニング不要)
  • 特に短い・曖昧なクエリに効果的
  • 言語間検索(日本語クエリ→英語文書)での精度向上

欠点:

  • 仮想ドキュメント生成のLLM呼び出しコスト増加
  • 生成した仮想ドキュメントが誤った方向に引っ張る「幻覚リスク」
  • レイテンシ増加(追加のLLM推論ステップ)

他のRAG改善手法との比較

手法アプローチ主な改善点
HyDE仮想ドキュメント埋め込み検索クエリの意味表現
RAG-Fusion複数クエリ + RRF検索の網羅性
Adaptive RAG検索要否の自動判断検索コスト効率
RAPTOR階層的要約ツリー長文書の構造把握

LangChain、LlamaIndex等のRAGフレームワークに実装済みであり、実運用環境での採用事例が増加している。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7