- ハルシネーションは確率的なトークン生成の副作用で、LLMが次の単語を「もっともらしく」選ぶ過程で事実と異なる出力が生まれる
- 種類は入力矛盾型・文脈矛盾型・事実矛盾型の3つに分類でき、それぞれ発生メカニズムと影響が異なる
- RAGで外部知識を注入し、プロンプトで回答範囲を制約し、モデルを適切に選ぶという3層の対策が有効
ハルシネーションとはどんな現象か
ChatGPTに「〇〇という論文の著者は誰ですか?」と聞いたら、実在しない著者名を自信満々に答えてきた、という経験はないでしょうか。LLMが事実と異なる情報を、さも正確であるかのように生成するこの現象をハルシネーション(hallucination:幻覚)と呼びます。
ハルシネーションが厄介なのは、モデルが「わからない」と言わずに、もっともらしく聞こえる誤情報を生成してしまう点です。誤字や文法ミスとは違い、表面上は正確な文章として出力されるため、利用者が誤りに気づきにくい特徴があります。医療・法律・科学など正確性が求められる分野での活用では特に注意が必要です。
ハルシネーションは単なるバグではなく、LLMの動作原理に深く根ざした現象です。どのモデルも程度の差こそあれ発生するため、完全な排除は難しいとされています。まずは「どんな種類があるか」を把握することが対策の出発点となります。
ハルシネーションの3つの種類
研究者はハルシネーションを大きく3つのカテゴリに分類しています。カテゴリによって原因も対策も異なるため、種類を把握しておくことには実践的な価値があります。

入力矛盾型
ユーザーが与えた情報と矛盾する出力を生成するパターンです。たとえば「AさんはBという会社に勤めている」と伝えたにもかかわらず、後続の文章でCという会社を想定した回答をしてしまうケースが該当します。プロンプトや文書の内容を正確に読み取れていないことが主な原因です。
このタイプは与えた情報が長くなるほど発生しやすくなります。LLMはコンテキスト(文脈ウィンドウ)の全体を均等に参照するわけではなく、特定の部分に注意が偏る傾向があるためです。
文脈矛盾型
同一の回答の中で、前の文と矛盾する内容を生成するパターンです。「最初の段落ではAと説明したのに、3段落目ではBと書いている」というケースが典型例です。長い文章を生成するほど、モデルが自身の出力の整合性を追いきれなくなります。
特に、手順を追って説明させる場合や、条件分岐が多い回答で起こりやすい傾向があります。
事実矛盾型
現実世界で確立されている事実と異なる情報を生成するパターンです。「エジソンが電話を発明した」「東京都の人口は5000万人である」といった、既知の事実に反する誤情報が出力されます。3種類の中で最も広く認知されており、一般的に「AIが嘘をつく」と表現される場合のほとんどはこのタイプです。
学習データに含まれる誤情報の反映、カットオフ日時以降の知識の欠如、さらにはモデルが持つ知識の不確かさが複合的に絡み合って発生します。
なぜハルシネーションは起きるのか
ハルシネーションの原因は一つではありません。LLMの根本的な動作の仕組みと、それに付随するいくつかの要因が組み合わさって生じます。
確率的なトークン生成の仕組み
LLMはテキストを「次のトークン(単語やサブワード)を予測する」という処理を繰り返すことで文章を生成します。各ステップで、次に来る可能性のあるトークン全体に対して確率分布を計算し、その中からサンプリングして選択します。

この「確率的な選択」こそがハルシネーションの根本にある仕組みです。モデルは事実が正しいかを論理的に検証するのではなく、「文脈的にもっともらしいトークンを選ぶ」という処理を繰り返します。そのため、文章の流れとして自然であっても、事実として誤った内容が生成されることがあります。
たとえば「ノーベル物理学賞を受賞した〇〇は…」という文頭に続くトークンとして、確率的に「アインシュタイン」や「キュリー」などが選ばれやすいだけで、実際にその人物がその賞を受賞しているかどうかは別の話です。
学習データの偏りと知識の限界
LLMは大量のテキストデータを学習していますが、そのデータは必ずしも正確とは限りません。インターネット上には誤情報や偏った見解が多く含まれており、これらを学習することで誤った知識がモデルに刷り込まれることがあります。
また、LLMには学習データの締め切り日(ナレッジカットオフ)があるため、それ以降に起きた出来事については正確な情報を持っていません。この知識の空白を埋めようとする際に、推測や「もっともらしい補完」が混入してハルシネーションが生じます。
さらに、あるトピックに関する学習データが少ない場合、モデルはその分野について過度に自信を持った不正確な情報を生成しやすくなります。これは「知らないことを知らない」という状態に近く、モデルが不確かさを自覚できないことが問題の核心です。
ハルシネーションへの実践的な対策
ハルシネーションを完全になくすことは現時点では難しいものの、適切な対策を組み合わせることで発生頻度と影響を大幅に抑えられます。
RAGで外部知識を補完する
最も効果的な対策のひとつがRAG(Retrieval-Augmented Generation:検索拡張生成)です。RAGはユーザーの質問に関連する文書を外部のデータベースから検索し、その内容をプロンプトに添付してからLLMに回答させる手法です。

RAGを使うと、LLMは学習時の知識だけに頼らず、正確な一次ソースを参照して回答を生成できます。社内文書、最新の研究資料、マニュアルなど、信頼性の高い情報源をナレッジベースとして整備することで、ハルシネーションが起きにくい環境を作れます。
RAGはすでに多くのAIサービスに組み込まれており、ChatGPTのWeb検索機能やPerplexityのような検索連動型AIもこの考え方を応用しています。自社システムに組み込む場合は、LangChainやLlamaIndexといったフレームワークが広く使われています。
プロンプト設計で出力を制約する
プロンプト(AIへの指示文)を工夫することでも、ハルシネーションを減らすことができます。いくつかの実践的な手法を紹介します。
- 不確かさを表明させる: 「わからない場合は『わかりません』と答えてください」と明示する
- ソース明示を求める: 「回答の根拠となる情報源を示してください」と指示する
- 出力範囲を限定する: 「以下の文章のみを参考に回答してください」と文書を提示する
- 温度パラメータを下げる: APIを使う場合は
temperatureを低く設定し、確率的な揺れを抑える - 段階的に考えさせる: Chain-of-Thought プロンプティングで推論過程を明示させると誤りが混入しにくくなる
これらを単独で使うより、複数を組み合わせる方が効果的です。
モデルと検証の選び方
モデルの選択もハルシネーション対策の重要な要素です。一般に、パラメータ数が大きいモデルほど知識量が多く、事実矛盾型のハルシネーションが少ない傾向があります。ただしタスクの種類によってもパフォーマンスは変わるため、ハルシネーション発生率を測定するベンチマーク(TruthfulQAなど)の結果を参考にしながら用途に合ったモデルを選ぶことが大切です。
また、LLMの出力を別のAIや外部ツールでファクトチェックする「検証パイプライン」を構築することも実用的なアプローチです。なお、Signal CEOのMeredith Whittakerも指摘するように、AIが自信を持って話すスタイルは利用者に誤った信頼感を与えます。重要な情報は必ず一次ソースで確認する習慣を持つことが、根本的な安全策です。
ハルシネーションと向き合う視点
ハルシネーションはLLMの弱点であると同時に、確率的な生成モデルが持つ本質的な特性です。現在の研究では、より事実に忠実な学習手法の開発や、モデルが自身の不確かさを認識して表明する「キャリブレーション」の改善が進んでいます。
実際の利用場面では「完璧なモデルを待つ」のではなく、RAGやプロンプト設計、出力の検証といった複数の対策を重ね合わせることが現実的なアプローチです。医療診断・法的助言・財務報告など正確性が特に求められる場面では、AIの回答はあくまで参考情報として扱い、専門家による確認を必ず挟む設計にすることをお勧めします。
どのモデルもハルシネーションのリスクはゼロにならないという前提でシステムを設計することが、AIを安全に活用するための第一歩です。