ハルシネーション(幻覚)─ LLMが「嘘をつく」メカニズムと対策
結論から言うと、ハルシネーション(幻覚)とは LLM がもっともらしい口調で事実と異なる情報を生成してしまう現象のこと。「架空の論文を引用する」「存在しない統計を述べる」「でたらめな URL を答える」といった形で現れる。完全に防ぐことは現時点では難しいため、「起きる前提でシステムを設計すること」が実践的なアプローチとされる。
なぜ LLM は「嘘をつく」のか
LLM はテキストから「次に来そうなトークン(単語のかけら)」を予測するよう学習している。モデルは「文脈に自然に続く文字列を生成すること」が得意であり、「その内容が正しいかどうかを検証する」機能は持っていない。
さらに、トレーニングデータにはインターネット上の誤情報や都市伝説も含まれているため、モデルは「よく見る誤解」をそのまま学習することがある。TruthfulQA(Lin ら、2021年)の研究では、**「最大サイズのモデルが最も嘘をつきやすかった」**という直感に反する結果が示されている。スケールアップが必ずしも正確さを保証しないのだ。
ハルシネーションの2つの種類
ハルシネーションには大きく2種類あるとされる(Huang ら、2023年のサーベイより)。
事実的ハルシネーション:現実に存在しない・実際とは異なる事実を述べるもの。例として、架空の論文を自信満々に引用するケースがある。
忠実性ハルシネーション:与えられた文脈や指示と矛盾した内容を生成するもの。例として、要約しないよう指示したのに要約してしまうケースがある。
エージェントが自律的に動く場面では一つの誤情報が連鎖的に広がるため、どちらも深刻なリスクになりうる。
実用的な対策
RAG(検索拡張生成)
正確な情報を外部ストアから検索してコンテキストに挿入する。モデルが「記憶に頼らず検索結果を根拠にする」状況を作れる(レッスン06参照)。
出典の要求
「主張には必ず引用元を付けること」とシステムプロンプトに書く。出典を明示させることで事後検証がしやすくなる。
自己検証(リフレクション)
エージェントに自分の出力を批評させ、「この情報に確信があるか」を再確認させる手法(レッスン12参照)。
構造化出力+確信度スコア{"answer": "...", "confidence": 0.9} のように JSON で返させ、低確信度の項目に人間がフラグを立てる。
Temperature の調整
Temperature を下げると出力のランダム性が減り、より保守的な回答になる傾向があるとされる。ただし万能ではない。
まとめ
ハルシネーションはLLMの構造的な特性から生まれるため、完全になくすことは現時点では難しい。大事なのは「ハルシネーションが起きても被害を最小化できる設計」。RAG・出典要求・自己検証・構造化出力を組み合わせた多層防御を築くことが、信頼性の高いエージェントを作るうえで実践的なアプローチとされる。