AIうぉ--!(ai-wo-katsuyo-shitai !)

AIを上手く使ってみせたい!!自分なりに。

AIでハルシネーションが発生する本質的原因をできるだけ技術的に説明する

AI(特に大規模言語モデル、LLM)において「ハルシネーション(hallucination)」が発生する根本的・本質的な原因は、モデルの学習原理と推論手法そのものにあります。 以下に、できる限り技術的・構造的に詳しく説明します。


✅ 定義:AIにおける「ハルシネーション」とは?

モデルが実際には存在しない、事実に反する、または文脈と無関係な情報を生成してしまう現象

例:

  • 架空の論文やURLを「もっともらしく」提示
  • 存在しないAPI名や関数を返す
  • 歴史的事実を捏造する(例:日本の総理大臣の名前を間違える)

🔍 技術的に詳解:ハルシネーションの本質的原因


① モデルの目的関数:次単語予測(言語モデリング

LLMは以下のような学習目標で訓練されます:

🔧 損失関数(例:クロスエントロピー

P(w₁, w₂, ..., wₙ) ≈ ∏ P(wᵢ | w₁, ..., wᵢ₋₁)

→ これは「正しい情報を出す」ためではなく、「文脈上もっともらしい単語を予測する」ことに最適化されている。

❗ 結果:

  • モデルは「事実性」ではなく「言語的自然さ(尤度)」を追求
  • よって、もっともらしいけど間違っていることを言う

② 記憶と構成の混在(parametric knowledge)

モデルが持つ知識は、以下のようにパラメータの中に「暗黙に」埋め込まれています:

知識 ≠ 明示的なDB
知識 ≈ 膨大な文脈の統計的パターン
  • → 例:数百万件の事例から「平均的にこう書くことが多い」から生成する
  • 例:あるAPIの正しい使い方ではなく、「似たようなAPIの使い方」を合成する

❗ 結果:

  • 実在しない構造を合成する能力=創造性=ハルシネーションの温床
  • 記憶ベースではなく「再構成ベース」

③ 学習データのバイアス・ノイズ・欠落

❗ 根本原因のひとつ:

  • 学習データに正確な情報が含まれていない、または矛盾している

例:

  • Webデータの中に間違った情報が存在
  • Wikipediaとフォーラム情報が矛盾
  • 特定の専門用語やAPIについてデータ量が少ない

→ モデルは「中間的に見える答え」を合成して出してしまう


④ 推論時の非決定性(sampling)

生成時には確率分布に基づいてトークンがサンプリングされます:

  • temperature, top-k, top-pnucleus sampling)などの設定により、**確率的に「多少ずれた選択」**が行われる
# 温度が高いほど、低確率トークンも選ばれやすくなる
token = sample(P(token | context), temperature=0.9)

❗ 結果:

  • 安定性や事実性が犠牲になる
  • 複数回問い合わせると違う出力になるのもこのため

⑤ トレーニングと実行の文脈不一致

学習時:巨大なデータコーパス 実行時:人間が短いプロンプトだけを与える

  • 例:「このコードを説明して」と聞かれても、そのコードの来歴や周辺文脈はモデルは知らない

→ 文脈不足から補完的に「ありそうな説明」を捏造する


⑥ モデルのスケーリングの副作用

大規模化(数千億パラメータ〜兆単位)によって:

  • 言語の「構文・語彙・関連性」は非常に正確に生成されるようになったが、
  • 「事実性」や「情報の正確さ」のチェック機構が存在しない

❗ 結果:

  • ハルシネーションの**「もっともらしさ」だけが増す**

🔧 対策・緩和策(技術)

手法 説明
RAG(Retrieval-Augmented Generation) 外部の正確な情報(例:検索エンジン、社内DB)を取り込み、生成時に参照させる
ファクトチェックモデルとの統合 生成後に別のモデルで事実性をチェックし、フィルタ
プロンプトエンジニアリング 「正確な情報だけを出して」「出典を付けて」など明示する
ファインチューニング/インストラクションチューニング ハルシネーションを抑えるように追加学習
モデルの温度調整 temperature=0 で決定的に(ただし創造性は低下)

✅ まとめ:ハルシネーションの本質

要因 説明
モデルの目的 文の尤度(自然さ)を最大化しているだけ
知識の表現 統計的・再構成的な「平均知識」しか持たない
推論の仕組み 確率的であり、検証や参照を伴わない
文脈の限界 学習時とのギャップにより補完的に捏造
出力の制御 ユーザの意図や事実性をチェックしない

もしご興味があれば、「RAGを使ったハルシネーション抑制の実装方法」や、「OpenAIがどうハルシネーション低減に取り組んでいるか」などもご紹介できます。

この記事すべてChatGPTが作成した文書です