RAGにおける幻覚とは?情報の過不足を防ぎ生成精度を高める設計法|LLM入門 7.1

7.1 情報の過不足とLLMの「幻覚」対策

RAG(Retrieval-Augmented Generation)は、「LLMに適切な文脈(Context)を与えることで、正確な回答を引き出す」ための設計手法です。しかし実際には、誤った回答、事実でない内容、文脈に沿わない応答が発生することがあります。

この現象は、LLM特有の「幻覚(hallucination)」と呼ばれます。とくにRAG構成においては、Retrieverとプロンプト設計の工夫によって幻覚の発生を減らすことができますが、それでも完全には防げません。

本セクションでは、幻覚の原因とその発生メカニズムを整理し、RAGにおける現実的な幻覚対策の考え方を紹介します。

 

幻覚とは何か?なぜ発生するのか?

幻覚とは、モデルが与えられた情報に基づかず、もっともらしく“創作”する応答を指します。

例:

  • 【Retrieverに渡された文書】「任意継続制度は最長2年間適用される」

  • 【ユーザーの質問】「任意継続は3年間できますか?」

  • 【LLMの応答】「はい、最大で3年間可能です」

このような誤答は、モデルが自らの学習知識や文脈推測に基づいて「妥当と思われる答え」を生成してしまうことに起因します。

主な原因:

  1. 情報不足(Retrieverが必要な文書を拾えていない)

  2. 情報過多(不要な文書を混在させたことで文脈があいまいになる)

  3. 曖昧なプロンプト(どの文書に基づくべきかがモデルに伝わらない)

  4. LLMの事前学習知識が干渉してしまう(とくにChatGPTなどパブリックLLM)

 

幻覚を減らすための3つの原則

原則①:Retrieverの精度を高める

  • 類似度スコアだけでなく、意味・時制・出典などを加味したフィルタリングを行う

  • 可能なら質問カテゴリ別の文書絞り込み(スコープ制御)を実施

  • Retrieval段階で、情報の過不足を制御できる構成が重要

原則②:プロンプトで「出典を限定」する

  • System Promptに明示的に指示を含める:

以下に示す文書のみに基づいて、質問に答えてください。
文書にない場合は「情報が見つかりません」と答えてください。
  • 文書チャンクを【文書1】【文書2】などで構造化し、「与えられた情報だけ」を参照するよう誘導する

原則③:応答に出典を含める形式にする

  • 出力形式に制約を加える:

回答:
〜〜〜〜〜〜〜〜〜〜〜〜

参考文書:
文書2(任意継続制度の期間に関する記述)
  • LangChainやLlamaIndexでは return_source_documents=True によって、どの文書に基づいた回答かを明示することが可能

 

幻覚を検知・抑止するための補助技術

文書照合によるフィードバックループ(RAG評価)

生成された回答とRetrieverの出力を突き合わせ、「文書に基づいていない情報を含んでいるか」を判定するフィルタを設ける。評価モデルやルールベースの照合を用いて、幻覚の自動検出も可能。

Post-RAG Verification(事後検証)

生成後に別のLLMで「この回答は文書に基づいていますか?」と再評価させるステップ。
これにより、信頼度の低い回答をユーザーに見せる前に差し替えたり、警告を添えるといった措置が可能になる。

 

幻覚は“ゼロにはできない”が、“減らすことはできる”

LLMは「言語のパターン予測モデル」であり、常に“それらしく答える”という性質を持っています。したがって、幻覚を完全に防ぐことはできません。

しかし、RAG構成を通じて以下の3点を設計で制御すれば、その発生頻度と影響は大きく抑えることができます:

  1. 必要な情報を確実に渡す(情報の欠損を防ぐ)

  2. 余計な情報を渡さない(情報の混乱を防ぐ)

  3. モデルに「何を使うべきか」を明示する(出典の指定)

 

ハイブリッド検索・Multi-Vector RAGとは

このセクションでは、RAGにおける幻覚のメカニズムと、それを抑止するためのRetriever設計・プロンプト構造・出力制御の考え方を紹介しました。
次のセクション「7.2 ハイブリッド検索・Multi-Vector RAGとは」では、意味検索とキーワード検索を組み合わせた「ハイブリッド検索」や、複数の視点から情報を取得する「Multi-Vector RAG」という発展的構成に進んでいきます。

公開日: 2025-03-04
最終更新日: 2025-05-25
バージョン: 3

下田 昌平

開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。

チーム

任 弘毅

株式会社レシートローラーにて開発とサポートを担当。POSレジやShopifyアプリ開発の経験を活かし、業務のデジタル化を促進。

下田 昌平

開発と設計を担当。1994年からプログラミングを始め、今もなお最新技術への探究心を持ち続けています。