ハルシネーション
このレッスンで学ぶこと
LLMは時々、自信満々に完全に間違った情報を出力します。これを「ハルシネーション(幻覚)」と呼びます。なぜこれが起こるかを理解することは、AIを安全に使うために不可欠です。
なぜLLMはハルシネーションを起こすのか
思い出してください:LLMは最も確からしい次のトークンを予測します。「真」か「偽」かの概念はなく、学習データに基づいてどのパターンがもっともらしいかを判断しているだけです。
重要なポイント:LLMは何かを知らないとき、「わかりません」とは言いません。もっともらしい答えがどう見えるかを生成します—なぜならそれがテキストとして妥当に見えるからです。
よくあるハルシネーションの種類
- 存在しないAPI:実在しないが、ありそうに見える関数やメソッド
- 偽の引用:存在しない論文やドキュメントへの参照
- 間違ったファイルパス:コードベースにないファイルやディレクトリの提案
- 自信満々の誤り:間違った事実を完全な自信を持って述べる
ハルシネーションの見分け方
以下の警告サインに注意:
- あなたが提供していない非常に具体的な詳細(名前、数字、パス)
- ファイルを読まずにコードベースについて主張する
- 見たことのないAPIコールやライブラリ関数
- 不確実なはずのことに対する過度に自信満々な説明
基本ルール:あなたが提供していない具体的な情報をモデルが出してきたら、検証してください。特にファイルパス、関数名、外部参照は要注意です。
ハルシネーションを防ぐ方法
- ソースを提供する:説明ではなく、実際のコードを渡す
- 確認を求める:「このファイルが存在するか確認してから修正して」
- タスクを制限する:小さく具体的なタスク = 創作の余地が減る
- 根拠を求める:「コードのどこでこれを見つけたか教えて」
Claude Codeの場合、ReadやGlobなどのツールを使って実際にコードベースを調べさせると、ハルシネーションは大幅に減ります—推測ではなく実データで作業するからです。
まとめ
- ハルシネーション = もっともらしいが間違った出力
- LLMは知らないことを知らない—確からしく見えるものを生成するだけ
- 具体的な主張(ファイルパス、API、事実)は常に検証する
- 実際のコンテキストを提供して推測を減らす