チャプター 13 · ハルシネーション · 9 min
なぜLLMは作り出すのか
キャリブレーション、誤った確信、対策。最も多い批判の裏にある構造的メカニズム — そしてそれに対して何ができるのか。
最も頻繁な批判
LLM にニッチなテーマについて質問する。モデルは自信たっぷりに答える——書誌情報、日付、引用文。確認してみる。その本は存在しない。日付は間違っている。引用は捏造だ。
この現象には公式な名前がある——ハルシネーション——そして、これはおそらく LLM に対して人々が真っ先に向ける批判だ。たまに起こるバグではない。構造的な性質だ。なぜそうなのかを理解するには、モデルがどのように学習されたかに立ち戻る必要がある。
組み合わさる 3 つのメカニズム
1. クロスエントロピーは不確実性を報酬としない。 事前学習中(第 06 章)、目的は正しいトークンの負の対数確率を最小化すること——言い換えれば、そのトークンに割り当てる確率を最大化することだ。モデルが「わからない」と言うことを学ぶ瞬間は一度もない——常に何かを、できる限りもっともらしく予測することを学ぶ。正しい答えが重みの中になければ、モデルは無知の告白ではなく、最ももっともらしく聞こえる文字列を生成する。
2. RLHF は正直さよりも自信を報酬とする。 アラインメント中(第 08 章)、人間が応答をランク付けする。平均すれば、人間は「確信がない」よりも、自信に満ちて言い回しの良い回答を好む。報酬モデルはこのバイアスを学び、LLM は——実際にはそうでなくても——確信があるように見せることを学ぶ。
3. 内部の検証ループがない。 引用を捏造する人間は立ち止まり、疑い、確認しに行く。トークンごとに生成する LLM にはそのようなメカニズムはない。外部のチェックなしに前進し、各トークンは同じもっともらしさの論理のもとで次のトークンを生む。
ハルシネーションはバグではない。常にもっともらしいテキストを生成するように学習されたシステムが、その重みの中に答えがない問いに出会ったときに起こることだ。
キャリブレーションの問題
よくキャリブレーションされたモデルとは、表明する自信が正解する確率と一致するモデルのことだ。「80 % 確信している」と言うなら、約 80 % の確率で正解しているはずだ。
素の LLM(RLHF 前)は、内部確率について驚くほどよくキャリブレーションされている。しかしアラインメントはモデルを脱キャリブレーションする——自信を報酬とすることで、モデルを自分自身の予測の統計的な真実から引き離してしまう。
これが「自信たっぷりにハルシネーションを起こす」モードの説明になる——モデルが自分が知らないことを知らないわけではない。学習プロセスがその不確実性を隠すようモデルを押しやったのだ。
下から質問をひとつ選び、2つの数字を比べてみよう。モデルが表明する自信と、実際に正解している確率だ。まずは素のモードのままで見て、それから + RAG や + 推論 を有効にして、ギャップの動き方を見てほしい。
モデルは自分の発言ひとつひとつに確率を割り当てる。誤っているが文脈的にもっともらしい主張は、しばしば高いスコアを得る:これがハルシネーションの構造的なメカニズムであり、パッチで直る単発のバグではない。
この2つの数字のギャップこそが、この章のすべてだ。よくある事実質問では、ギャップはほとんどない——モデルは知っていて、自信もそれを反映している。答えが重みの中にない質問では、実際の確率が崩れ落ちる一方で、表明される自信は高いままだ。それがまさに、内側から見たハルシネーションだ。そして気づくはずだ。対策はギャップを縮めるが、決して閉じきることはない。この点を覚えておいてほしい。この先すべてを支配する事実だ——ハルシネーションは消せない。封じ込めるものだ。
4 つの対策ファミリー
ハルシネーションはより良いアラインメントでは消えない。それらは構造的だ。実際に減らすには、より良いモデルだけでなく、システム的なてこが必要だ。
1. モデルをツールに接続する(第 11 章)
ルール——LLM が苦手なものはすべて、決定論的なシステムに委ねる。導関数を計算する? コードインタープリタ。株価を取得する? API。ファイルが存在するか確認する? ファイルシステムツール。モデルはもう結果を推測しようとしない——それを観察する。
効果——ツールがカバーする領域でのハルシネーションは激減する。ただし完全には消えない。モデルは呼び出しを誤って組み立てたり、結果を読み違えたりしうるからだ。それ以外の領域でのハルシネーションは残る。
2. RAG(第 10 章)
あるテーマについてモデルが覚えていることを尋ねるのではなく、応答時に信頼できる情報源を提供する。書誌的・事実的なハルシネーションは大きく減る。なぜならモデルは想像することではなく、読んでいることを引用できるからだ。
限界——情報源が悪いか、うまく取得されなかった場合、モデルはその内容についてハルシネーションを起こす。良い情報源があっても、過剰に外挿することがある(「情報源は X と言っている、だから必然的に Y だ」)。
3. 拡張された推論(第 17 章)
応答する前に下書きを検証する時間を取るモデルは、間違いが少ない。推論モデルは不可視の思考の連鎖を生成し、その中で再計算したり、あるステップを否定したり、別の道を取り直したりできる。o1 と DeepSeek-R1 が2024〜2025年に道を開き、今日では主要なモデルのすべてがこの種のモードを提供している。
これは不完全だ——モデルは推論の中でもハルシネーションを起こしうる——が、ステップを展開するという単純な行為だけで、エラーのかなりの部分が捕まえられる。
4. 不確実性に対して明示的にファインチューニングする
研究側で最も有望な角度——モデルに棄権を学習させる。(質問, 応答) のペアを提示する。そこでは内部確率が低いとき、正しい応答は「わからない」や「その情報は持っていない」だ。モデルは自分自身の自信レベルを認識し、それを伝えることを学ぶ。
論文「Why Language Models Hallucinate」(OpenAI、2025年)は、この行き詰まりの説明を広く知らしめた。私たちの評価は二値——正解か不正解か——であり、「わからない」には一点も与えない。だから当て推量は、常に棄権より得をする。それ以降、棄権とキャリブレーションの学習は大手ラボ(OpenAI、Anthropic、DeepMind)のポストトレーニングのレシピに組み込まれた。進歩は測定可能だが、問題は解決していない。ベンチマークがはったりに報いる限り、モデルははったりを続ける。
実際にハルシネーションを検出する
ユーザー側で役に立つヒューリスティックをいくつか。
- 情報源を求める。 モデルが情報源を引用できなかったり、捏造したりするなら、その応答は怪しいものとして扱う。
- 具体的なものを確認する。 固有名詞、日付、正確な数字、引用はリスクゾーンだ。一般的な内容はたいてい大丈夫。
- 質問を別の言い方で言い直す。 捏造しているモデルは、同じ質問を言い直されたとき一貫した応答をすることが多い——しかしまったく違う言い回しに対しては一貫しない応答をする。
- モデルに自信レベルを尋ねる。 不完全だが、特に最近のモデルでは実際の応答品質と相関している。
- 別のモデルとクロスチェックする。 ハルシネーションがモデル間で同じであることはめったにない。異なるファミリーの2つのモデルが一致する応答は、正しい確率がはるかに高い。
押さえておくべきこと
3 つだ。
一つ。 ハルシネーションはモデルの欠陥ではない——その学習目的の帰結だ。表面的なファインチューニングではどれも消えない。
二つ。 本番環境で機能する対策はシステム的なもの(RAG、ツール、推論、棄権)だ。単独で完璧なものはない——組み合わせれば、ほとんどのケースでハルシネーション率を許容できるレベルまで下げられる。
三つ。 エンドユーザーにとって、最良の防御は、特に具体的な詳細(情報源、日付、数字)について、盲目的に信用しないことだ。LLM が自信たっぷりに答えてくれることは、それが正しいことの証拠ではない。
LLM に「確かか?」と尋ねるのは検証ではない。それはもっともらしいテキストの、もう一回の生成に過ぎない。
この4つの対策のうち、モデル自体に手を入れるものはひとつしかない——再学習だ。棄権であれ何であれ、それは同じことだ。ところが700億パラメータのモデルを丸ごと再学習させるには数万ドルかかる。口調を調整したり、ある分野をカバーしたりするためにそんなことをする者はいない。では、モデルに本当に触れることなく、どうやって専門化させるのか。次の章が答える。
更新日