Shikata Ga Nai

Private? There is no such things.

第37回:RAGが間違う理由と「ハルシネーション」の防ぎ方

Hello there, ('ω')ノ

「あれ?それ、ちょっと違うんじゃ…」

RAG(検索拡張型生成)を使っていて、
「それっぽいけど、間違った答えが返ってきた」
「出典と内容が食い違っているように見える」
といった経験、ありませんか?

こうした現象は、生成AIにおける“ハルシネーション(hallucination)”=事実と異なる情報をあたかも正しいように生成することが原因で起こります。

今回は、RAGでも起きてしまう“間違った回答”のパターンと、その防ぎ方・対処法についてわかりやすく解説します。


💡 なぜRAGなのに間違うの?

「RAGは社内データを使うんだから、間違うはずないのでは?」と思われがちですが、実際には以下のような理由で誤答が起こることがあります。


✅ 理由①:検索された情報が間違っている or あいまい

  • 古い資料、誤記のある文書がチャンクとして使われている
  • 関連しそうだけど質問意図とズレたチャンクが選ばれている

検索の精度不足・データの品質が原因


✅ 理由②:AIが足りない情報を“想像”で補ってしまう

  • 回答に必要な情報が見つからない(空白)
  • 「あいまいな質問」や「ざっくりした問いかけ」に対して、LLMが“うまく作ろうとして”しまう

生成AI特有の「もっともらしいけど根拠がない」答えが出やすい


✅ 理由③:プロンプトが甘く、制約が足りない

  • 「出典以外の情報は使うな」といった明示的な制限がない
  • 回答の形式やトーンが曖昧で、AIの裁量が広すぎる

プロンプト設計次第で“答えの信頼性”が左右されます


🚨 ハルシネーションの例

例1:

質問:「有給休暇の繰越期間は?」
AIの回答:「有給休暇は翌年度に120日まで繰り越せます。」

👉 実際は「2年」で、日数制限は社内規定次第。事実ではない数字を生成してしまっている。


例2:

質問:「研修制度の対象者は?」
AIの回答:「新卒社員と中途社員が対象です(出典:人事マニュアル)」

👉 出典の該当箇所には「新卒のみ」と書かれていた。“中途社員も対象”とAIが勝手に解釈・補完してしまった。


✅ ハルシネーションを防ぐには?


「出典に基づいてのみ回答せよ」のプロンプト設計

以下の情報(コンテキスト)をもとにのみ回答してください。
不明な場合や情報が不足している場合は、「判断できません」と返してください。
想像や一般知識で補わないようにしてください。

➡ 生成の自由度をあえて制限することが信頼性向上につながります。


コンテキストに入れる情報の精度を上げる

  • 意味が近いだけで不要なチャンクが入っていないか見直す
  • チャンクサイズを調整し、1チャンク=1意味単位になるよう最適化
  • 上位数件(3~5件)だけ使うようにすることで、ノイズを減らす

出典表示と引用元のトレースを徹底する

  • どの文書のどこから抽出されたかを回答に含める
  • メタデータに「ファイル名/章番号/作成日」などを付けておく

📌 出典を明示できる設計にしておくことで、誤答の検証と修正がしやすくなります。


「わからない」と言わせる勇気を持つ

※該当情報が見つからない場合、「この情報では判断できません」とだけ答えてください。

➡ これを設定しておくことで、AIに「知らないことを無理に答えさせない」安全弁を持たせられます。


🧠 ハルシネーション対策のまとめ表

対策 内容
🔧 プロンプト強化 「出典のみを使う」「不明なら無理に答えない」と明記する
📄 データ整備 チャンクサイズの最適化/情報の正確性チェック
📌 出典管理 メタデータ設計で“答えの根拠”を可視化
🧪 テスト運用 現場の質問例で精度・再現性を検証する

まとめ:「正しさ」は技術+設計でつくるもの

  • RAGを使っても、検索精度・プロンプト設計・データの質によって誤答は起こりうる
  • ハルシネーションは「うまく作る力が強すぎる」AIゆえの副作用
  • 回答の信頼性を高めるには、出典管理・制約付きプロンプト・コンテキスト設計が不可欠
  • 「答えない勇気」と「仕組みの作り込み」で、安心して使えるAIへ!

Best regards, (^^ゞ