LLM基礎 レッスン 3 / 3

ハルシネーション

このレッスンで学ぶこと

LLMは時々、自信満々に完全に間違った情報を出力します。これを「ハルシネーション(幻覚)」と呼びます。なぜこれが起こるかを理解することは、AIを安全に使うために不可欠です。

なぜLLMはハルシネーションを起こすのか

思い出してください:LLMは最も確からしい次のトークンを予測します。「真」か「偽」かの概念はなく、学習データに基づいてどのパターンがもっともらしいかを判断しているだけです。

重要なポイント:LLMは何かを知らないとき、「わかりません」とは言いません。もっともらしい答えがどう見えるかを生成します—なぜならそれがテキストとして妥当に見えるからです。

よくあるハルシネーションの種類

  • 存在しないAPI:実在しないが、ありそうに見える関数やメソッド
  • 偽の引用:存在しない論文やドキュメントへの参照
  • 間違ったファイルパス:コードベースにないファイルやディレクトリの提案
  • 自信満々の誤り:間違った事実を完全な自信を持って述べる

ハルシネーションの見分け方

以下の警告サインに注意:

  • あなたが提供していない非常に具体的な詳細(名前、数字、パス)
  • ファイルを読まずにコードベースについて主張する
  • 見たことのないAPIコールやライブラリ関数
  • 不確実なはずのことに対する過度に自信満々な説明

基本ルール:あなたが提供していない具体的な情報をモデルが出してきたら、検証してください。特にファイルパス、関数名、外部参照は要注意です。

ハルシネーションを防ぐ方法

  • ソースを提供する:説明ではなく、実際のコードを渡す
  • 確認を求める:「このファイルが存在するか確認してから修正して」
  • タスクを制限する:小さく具体的なタスク = 創作の余地が減る
  • 根拠を求める:「コードのどこでこれを見つけたか教えて」

Claude Codeの場合、ReadGlobなどのツールを使って実際にコードベースを調べさせると、ハルシネーションは大幅に減ります—推測ではなく実データで作業するからです。

まとめ

  • ハルシネーション = もっともらしいが間違った出力
  • LLMは知らないことを知らない—確からしく見えるものを生成するだけ
  • 具体的な主張(ファイルパス、API、事実)は常に検証する
  • 実際のコンテキストを提供して推測を減らす