ハルシネーション

ハルシネーションとは

ハルシネーション(幻覚)は、[[生成AI・LLM]] が事実と異なる内容を、もっともらしい文章で自信たっぷりに生成してしまう現象です。存在しない論文を引用したり、架空の法律条文を答えたり、実在しない API の関数名を提示したりします。

厄介なのは、間違いが流暢で自然な文章として出てくることです。読み手が知識を持っていないと、正しい情報と見分けがつきません。

なぜ起きるのか

ハルシネーションはバグではなく、LLM の仕組みに由来する構造的な現象です。

  • LLM は「事実を検索して答える」のではなく、次に来る確率が高いトークンを予測することで文章を作っています。もっともらしさを最適化しているのであって、正しさを保証する仕組みではありません
  • 学習データに含まれない情報(知識のカットオフ以降の出来事や社内情報)は、そもそも知りようがありません
  • 「わかりません」と答えるより、それらしい答えを生成する方向に働きやすい性質があります

対策

完全になくすことはできませんが、減らす・影響を抑える方法はあります。

対策内容
[[RAG(検索拡張生成)]]信頼できる資料を検索して渡し、資料に基づいて回答させる
プロンプトの工夫「不明な場合は不明と答える」「出典を示す」などを指示する([[プロンプトエンジニアリング]])
出典の確認生成された引用・URL・数値は必ず一次情報で検証する
人によるレビュー重要な用途では最終判断を人間が行う体制にする

初学者向けポイント

  • 「AIが言ったから正しい」は禁物です。特に固有名詞・数値・引用・法律や医療の情報は要注意です
  • プログラミングでも、存在しないライブラリ関数を提示されることがあります。実行やドキュメント確認で必ず検証しましょう
  • どのくらいハルシネーションが起きるかはモデルや使い方で異なります。[[モデル評価と指標]] の観点でも重要なテーマです

関連技術とのつながり

  • [[生成AI・LLM]] — ハルシネーションは LLM の仕組みに由来する現象
  • [[RAG(検索拡張生成)]] — 根拠となる資料を渡すことでハルシネーションを抑える代表的手法
  • [[プロンプトエンジニアリング]] — 指示の工夫でリスクを減らせる
  • [[モデル評価と指標]] — 回答の正確性を測る評価の観点
  • [[推論パラメータと出力のばらつき]] — 確率でトークンを選ぶ仕組みそのものの解説
  • [[LLMアプリの評価とテスト]] — 実際に出た誤りを評価セットに入れて再発を検知する
Q: ハルシネーションの説明として正しいものはどれ?
- [x] 事実と異なる内容をもっともらしい文章で生成してしまう現象
- [ ] LLMの応答速度が低下する現象
- [ ] 学習データが増えすぎてモデルが壊れる現象
解説: 存在しない論文や架空の情報を、自然で流暢な文章として出力してしまうのがハルシネーションです。

Q: ハルシネーションが起きる根本的な理由はどれ?
- [ ] サーバーの性能不足
- [x] LLMは事実の検索ではなく、確率の高い次のトークンを予測して文章を作っているから
- [ ] インターネット接続が不安定だから
解説: LLM はもっともらしさを最適化する仕組みであり、正しさを保証する仕組みではないため、構造的にハルシネーションが起こります。

Q: ハルシネーション対策として適切なものはどれ?
- [ ] AIの回答をそのまま信じて使う
- [ ] 出典の確認を省略して作業を高速化する
- [x] RAGで信頼できる資料を渡し、生成された出典や数値を一次情報で検証する
解説: 根拠資料を与えて回答させ、重要な情報は必ず人間が検証することが基本的な対策です。