Hallucination (in LLMs)
LLMのハルシネーションとは、流暢で確信に満ちているものの、誤っている、または情報源に裏付けられていない出力です。モデルがハルシネーションを起こす理由と、検索や回答の保留がどう役立つかを解説します。
大規模言語モデル (LLM)におけるハルシネーションとは、流暢で自信に満ちた表現でありながら、誤っている、モデルの出典による裏付けがない、または入力内容と矛盾している生成コンテンツです。ハルシネーションには、架空の引用や誤った日付から、出典文書にない主張を加えた要約まで、さまざまなものがあります。誤った回答も正しい回答と同じ口調で示されるため、見抜くのは困難です。2023年のMata v. Avianca事件では、ChatGPTが捏造した裁判例6件を引用した書面を提出したとして、米国連邦裁判所が弁護士2人に制裁を科しました。モデルが知識の空白をもっともらしいテキストで埋めることから、一部の研究者は同義語として「作話」を好んで使います。
ハルシネーションの種類#
- 内在的ハルシネーション: 提供された出典と矛盾する出力です。たとえば、要約対象の文書とは異なる承認年を示す要約が該当します。Jiらによるサーベイでは、要約、対話、翻訳の誤りを分類するために、この用語と次の用語が使われています。
- 外在的ハルシネーション: 出典では確認できない情報を追加する出力です。追加された情報は、真実である場合もそうでない場合もあります。
- 自由形式の回答における事実誤認: 出典がない状態で、モデルが誤った事実を述べたり、参考文献を捏造したり、複数の人物の情報を混ぜて1人の人物紹介を作ったりします。
- パッケージ・ハルシネーション: コードアシスタントが存在しないライブラリをインポートします。16個のモデルから生成された576,000件のコードサンプルを調査した研究では、商用モデルが提案したパッケージの少なくとも5.2%、オープンソースモデルが提案したパッケージの21.7%が捏造されたものでした。攻撃者が悪意のあるコードを登録できる、重複のない偽のパッケージ名は205,474件に上りました。
- 物体ハルシネーション: 視覚言語モデル (VLM)が、画像に存在しない物体を説明します。
LLMがハルシネーションを起こす理由#
LLMは、事実データベースとの照合機能を内蔵せず、事前学習で学んだ確率に基づいて次のトークンを予測し、テキストを生成します。OpenAIのKalaiら (2025)は、ハルシネーションの原因を2つの統計的要因に結び付けています。事前学習では、珍しい人物の誕生日のように一度しか見られない事実を確実に学習できません。学習データに含まれる誕生日の事実の20%が1回しか現れない場合、ベースモデルは誕生日に関する質問の少なくとも20%でハルシネーションを起こすと想定されます。学習後の多くのベンチマークでは、回答を正誤で評価し、「わかりません」には点数を与えません。そのため、推測するモデルは回答を控えるモデルより高得点になり、後処理学習によってモデルは自信を持って推測するようになります。
ほかにも要因があります。温度を高く設定したサンプリングや幅の広い核サンプリングでは、確率の低い続きが選ばれることがあります。関連する事実が長い入力の中に埋もれると精度が落ち(コンテキスト劣化)、人間の承認に基づいて学習したモデルは質問に含まれる誤った前提を受け入れやすくなります。これはAIのおべっかの一種です。
ハルシネーションの検出と低減#
- 検索拡張生成 (RAG): 信頼できるコレクションから文章を検索し、その文章に基づいて回答するようモデルに指示します。リランキングモデルを使うと、プロンプトに含まれる文章の選定を改善できますが、モデルがその文章を誤読したり無視したりする可能性は残ります。
- 引用を用いたグラウンディング: 各主張に検索した文章を引用させ、チェッカー(多くの場合、別のモデル)がその文章によって主張が裏付けられていることを確認します。
- 意味エントロピー: 同じ質問に対するモデルの回答を複数回取得し、意味に基づいて分類します。分類間のエントロピーが高い場合は、作話の可能性が高いと判断できます。
- 検証チェーン (CoVe): モデルが回答案を作成し、自身の主張を検証する質問を書き出して、それぞれに独立して回答した後、回答案を修正します。
- 回答を控えることへの報酬: RLHFなどを使って、自信を持った誤答に「わかりません」より大きなペナルティを与えるフィードバックで学習し、評価も同じ基準で行うことで、推測する動機をなくします。
グラウンディングされた質問応答システムでは、こうした検証方法をいくつか組み合わせて反復処理します。
ハルシネーションと関連概念の比較#
- AIのバイアス: 特定のグループを優遇するなど、出力に生じる体系的な偏りです。バイアスがなくてもハルシネーションを起こす回答や、事実として正しくてもバイアスのある回答があります。
- 過学習: 汎化性能を犠牲にして学習例を記憶することです。ハルシネーションはしばしばその逆の状況で起き、モデルが記憶するには少なすぎる回数しか見ていない事実を補完します。
- モデル崩壊: 生成データでモデルを学習する際に、希少な知識が失われることです。その結果、後続のモデルはロングテールの事実について、より多くのハルシネーションを起こす可能性があります。
視覚言語モデルにおける物体ハルシネーション#
VLMは言語の事前知識に依存するため、キャプション生成モデルは、訓練データのキャプションでフォークが皿の横によく登場することから、フォークがない食卓にもフォークがあると言及する場合があります。画像キャプション生成における物体の幻覚は、キャプションに記述された物体のうち、画像の正解アノテーションには存在しない物体の割合を示すCHAIR指標で測定します。VLMが代わりにボックスを描画する場合、幻覚した物体はそれぞれ偽陽性になります。VLMベンチマーク結果では、実世界の検出データセットにおける各モデルの適合率を報告します。対策の一つは、検出器が実際に検出した物体のリストを言語モデルに渡すことです。以下のコードは、画像に対してYOLO26を実行し、検出結果をプロンプト制約に変換します。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Per-class detection counts as text, used as facts the language model must stay within
detections = result.verbose()
prompt = f"Describe this image. Mention only these detected objects: {detections}"
print(prompt)result.verbose()は検出されたクラスごとの個数を返すため、プロンプトで指定されるすべての物体にバウンディングボックスが対応します。それ以外の物体に言及する回答は、ユーザーに届く前に検出できます。










