ハルシネーション検出(ハルシネーションケンシュツ)
LLMが生成する事実と異なる情報(ハルシネーション)を自動的に検出・評価する技術。参照文書との整合性チェック(Faithfulness)、外部知識ベースとの事実確認(Factuality)、自己矛盾の検出(Consistency)の3つのアプローチがあり、RAGパイプラインの品質保証に不可欠である。
ハルシネーション検出とは
ハルシネーション検出(Hallucination Detection)は、LLMが生成したテキスト中の事実と異なる情報を自動的に識別する技術である。LLMのハルシネーション(幻覚)は、モデルがもっともらしいが事実無根の情報を生成する現象で、医療・法律・金融など正確性が重要なドメインでは深刻な問題となる。
GPT-4oクラスのモデルでもハルシネーション率は5〜15%とされ、事実確認が必要な用途ではハルシネーション検出は品質保証の必須コンポーネントである。特にRAG(Retrieval-Augmented Generation)パイプラインでは、検索されたコンテキストと生成された回答の整合性検証が重要となる。
ハルシネーションの分類
| 種類 | 定義 | 例 | 検出難易度 |
|---|---|---|---|
| Intrinsic | ソース文書と矛盾する情報 | RAG回答がコンテキストに反する | 中程度 |
| Extrinsic | ソース文書にない情報の追加 | コンテキストにない数値の捏造 | 高い |
| Factual | 世界知識と矛盾する事実 | 「東京タワーは500mの高さ」 | 中〜高 |
| Faithfulness | 指示やコンテキストの無視 | 要約で原文にない内容を追加 | 中程度 |
Intrinsicハルシネーションは参照文書との照合で比較的検出しやすいが、Extrinsicハルシネーション(ソースにない情報の追加)はモデルの内部知識と外部知識の区別が困難なため検出が難しい。
検出手法
NLI(自然言語推論)ベース
テキストのペア(前提文と仮説文)の含意関係を判定するNLIモデルを使用する。生成文をソース文書に対する「仮説」として扱い、「含意(Entailment)」「矛盾(Contradiction)」「中立(Neutral)」を判定する。DeBERTa-v3-largeベースのNLIモデルが広く使われている。
LLM-as-Judge
別のLLMに「この回答はコンテキストに基づいているか」を判定させる方式。自然言語で判定理由も出力されるため、デバッグに有用。ただし、ジャッジLLM自体がハルシネーションを起こすリスクがある。
SelfCheckGPT
外部参照なしでハルシネーションを検出する手法。同じプロンプトで複数回サンプリングし、回答間の一貫性を評価する。ハルシネーションの場合はサンプリングごとに異なる情報が生成される傾向があるため、一貫性の低い部分をハルシネーションと判定する。
評価メトリクス
| メトリクス | 測定対象 | ツール |
|---|---|---|
| Faithfulness | コンテキストとの整合性 | RAGAS, TruLens |
| Answer Relevance | 質問への関連性 | RAGAS |
| Factual Consistency | 事実との一致度 | FActScore |
| SelfCheck Score | サンプリング間の一貫性 | SelfCheckGPT |
| G-Eval | LLM判定による総合スコア | DeepEval |
RAGASフレームワークはRAGパイプライン専用の評価ツールで、Faithfulness(忠実性)・Answer Relevance(回答関連性)・Context Precision(コンテキスト精度)・Context Recall(コンテキスト再現率)の4メトリクスを提供する。
プロダクション環境での実装
本番環境でのハルシネーション検出は、リアルタイム検出とバッチ検出の2パターンがある。
リアルタイム検出: 各LLM応答に対してNLIモデルまたはLLM-as-Judgeを実行し、ハルシネーションスコアが閾値を超えた場合に応答をブロックまたは警告を付与する。レイテンシが100〜500ms増加する。
バッチ検出: 定期的に生成ログを分析し、ハルシネーション率の推移を監視する。急激な増加はモデル劣化やRAGインデックスの品質低下を示唆する。
よくある質問
Q1: ハルシネーション率をゼロにすることは可能ですか?
現在の技術では不可能である。RAGの活用でハルシネーション率を大幅に低減できるが(30〜50%→5〜10%程度)、完全にゼロにすることはできない。重要な用途では人間によるレビューを併用するか、「確信度が低い場合は回答しない」という保守的な設計にすることを推奨する。
Q2: RAGを使えばハルシネーションは防げますか?
RAGはハルシネーションの低減に効果的だが、完全な防止にはならない。検索されたコンテキストが不適切な場合(検索品質の問題)、コンテキストに含まれない追加情報をLLMが生成する場合(Extrinsicハルシネーション)、コンテキスト自体に誤りがある場合は、RAGを使用してもハルシネーションが発生する。
Q3: ハルシネーション検出にかかるコストは?
NLIベースの検出はDeBERTaなどの小型モデルを使用するため、GPU推論でも1リクエスト数ms・コストはほぼゼロである。LLM-as-Judgeの場合、GPT-4o-miniで$0.001〜$0.005/リクエスト程度。高頻度な本番環境ではNLIベースを一次フィルタ、LLM-as-Judgeを二次確認とするハイブリッド方式がコスト効率に優れる。