ハルシネーションとは?AIの『もっともらしい誤回答』を防ぐ考え方

生成AIの回答は、自然で、自信がありそうに読めます。そのため、間違っていても、そのまま信じてしまいがちです。このような「もっともらしい誤り」は、ハルシネーションと呼ばれます。この記事では、どんな誤りなのか、どの段階で入り得るのか、どう確認すればよいのかを、図で説明します。

この記事でわかること
  1. ハルシネーションは、もっともらしいが、根拠のない出力。文章の滑らかさでは見抜けない
  2. 誤りは、質問・検索・資料・生成・回答の、どの段階でも入り得る
  3. RAGや調整は助けになるが、単独では防げない。根拠・原典・人の確認を組み合わせる

ハルシネーションはどんな誤り?

OpenAIは、ハルシネーションを、言語モデルが生成する、もっともらしいが誤った文、と説明しています。OWASPのLLM向けセキュリティ一覧も、LLMが、信頼できそうに見える誤った情報や、誤解を招く情報を出力することを、誤情報(Misinformation)のリスクとして挙げています。

1存在しない出典実在しない論文や判例を挙げるもっともらしい2誤った数値・日付金額や期限をそれらしく答えるもっともらしい3資料にない断定資料に書いていないことを言い切るもっともらしい4古い・ずれた情報前提が違う内容を現在の話として答えるもっともらしい共通点:自然な文章で、根拠がないまま言い切る
図1 ハルシネーションの例(もっともらしいが、根拠のない出力)
種類どんな出力か
存在しない出典実在しない論文、判例、記事などを、根拠として挙げる
誤った数値・日付金額、期限、バージョンなどを、それらしく答える
資料にない断定渡した資料に書いていないことを、書いてあるかのように言い切る
古い・ずれた情報前提の違う情報や、更新前の情報を、現在の話として答える

OWASPは、実際の例として、ChatGPTが架空の判例を作り、法廷で問題になったことを挙げています。

なぜ「流暢さ」で見抜けない?

自信満々に話す人の説明でも、契約の条件や日付は、原本で確かめます。AIも同じです。LLMは、前の言葉に続く、自然な言葉を選んで文章を作ります。仕組みは、別の記事で扱いました。そのため、根拠があるかどうかに関係なく、文章は滑らかになります。

どちらも、同じように自然な文章「〇〇の期限は、△日前です。」根拠のある答え「〇〇の期限は、△日前です。」根拠のない答え≒LLMは、前の言葉に続く、自然な言葉を選んで文章を作る文章の滑らかさと、内容の正しさは、別のもの見た目では区別できないので、確かめる手段が必要
図2 文章の滑らかさは、正しさの証明にならない

OpenAIは、誤りが残る理由の1つとして、評価のしかたを挙げています。正解率だけで評価すると、分からないと答えるよりも、推測して答えるほうが有利になります。標準的な学習や評価が、不確かさを認めることより、推測を報いてしまう、という説明です。

一方で、OpenAIは、不確かなときは、答えないことも可能だと述べています。「分からない」と言えるようにすることが、対策の方向になります。

どの段階で誤りが入り得る?

誤りは、LLMが文章を作る段階だけで起きるわけではありません。資料を探して答える仕組み(RAG)を含めて、流れに沿って整理します。

質問検索・資料生成回答1あいまいな質問前提が足りない2検索で外れる古い資料が出る3資料の読み違い推測を言い切る4そのまま信じる確認されずに使われる誤りは、どの段階でも入り得る段階ごとに、確認するポイントが違う
図3 質問から回答までの流れと、誤りが入り得る場所
段階起こり得ること確認すること
1 質問質問があいまいで、前提が足りず、別の意味で答える条件や範囲を、質問に書く
2 検索・資料検索で外れた資料が選ばれる。古い資料が出る参照元の資料と、更新日を確かめる
3 生成資料を読み違える。資料にないことを、推測で言い切る回答の根拠の箇所を確かめる
4 回答確認されずに、そのまま使われる用途に応じて、人が確認する

RAGで、検索が外れる、資料から読み取れない、といった失敗が起きる点は、別の記事で扱いました。

RAGやファインチューニングの限界

RAGは、根拠になる資料を渡すことで、誤回答を減らす助けになります。OWASPも、信頼できる外部の情報源から取り出した内容で回答を支える方法として、RAGを挙げています。ファインチューニングは、形式や振る舞いを揃える助けになる場合があります。

RAG助けになること資料を渡して、根拠を与える残る課題検索の外れ・古い資料・読み違いは起きるファインチューニング助けになること形式や振る舞いを、安定させる残る課題事実の更新や、根拠の提示は別に必要どちらも、単独では、誤回答をなくす方法ではない
図4 RAGと調整は助けになるが、誤回答をなくす方法ではない

ただし、どちらも、単独で誤回答をなくす方法ではありません。RAGでは、検索の外れや古い資料、読み違いが起きます。ファインチューニングは、最新の情報を扱う検索の代わりにはなりません。それぞれの詳細は、別の記事で扱いました。

誤回答を減らす実践的な確認

Claudeのドキュメントは、ハルシネーションを減らす方法を、いくつか挙げています。そのうえで、これらの方法は、ハルシネーションを大きく減らすが、完全にはなくせない、と述べています。重要な情報は、必ず確かめる前提で使います。

1分からないと言ってよい指示に書いておく2根拠の箇所を示させる出典・引用を付ける3原典と照合数値・日付・名前4用途に応じて人が確認重要なものほど必ず確認の手間は、間違えたときの影響で決めるアイデア出しは軽く、数値・契約・手順・出典は、原典まで確かめる
図5 誤回答を減らす4つの確認
確認やり方
分からないと言ってよい「分からない場合は、分からないと答えてください」と、明示的に許可する。Claudeのドキュメントは、これだけで誤情報を大きく減らせる場合がある、としている
根拠の箇所を示させる長い文書では、先に、該当箇所をそのまま引用させてから答えさせる。主張ごとに、引用や出典を付けさせる方法もある。裏付けとなる引用が見つからない主張は、取り下げさせる
原典と照合する数値、日付、固有名詞、出典は、元の資料やサイトで確かめる。AIが示した出典が、実在するかも確かめる
用途に応じて人が確認するOWASPも、重要な情報には、人による確認と事実確認の仕組みが必要としている

確認の手間は、間違えたときの影響で決めます。アイデア出しなら軽くて構いません。数値、契約、手順、出典を含むものは、原典まで確かめます。

AIセキュリティの学習へつなぐ

ここまでの誤回答は、悪意がなくても起きる、モデルの誤りです。一方、悪意ある入力や、権限の問題によるリスクは、別に扱います。OWASPの一覧でも、誤情報(LLM09)と、プロンプトインジェクション(LLM01)、機密情報の漏えい(LLM02)、過剰な権限(LLM06)は、別の項目です。

誤回答(この記事)悪意はなく、モデルが誤る存在しない出典資料にない断定古い情報の言い切り確認する:根拠・原典・人AIセキュリティ(別の記事)悪意ある入力や、権限の問題プロンプトインジェクション情報漏えい権限の逸脱守る:入力・権限・出力の制御
図6 誤回答と、AIセキュリティは区別して考える
観点誤回答AIセキュリティ
きっかけ悪意がなくても起きる悪意ある入力や、権限の設定の問題
例存在しない出典、資料にない断定プロンプトインジェクション、情報漏えい、権限の逸脱
主な対策根拠の確認、原典との照合、人の確認入力・権限・出力の制御と監視

誤回答への確認と、セキュリティへの対策は、どちらも必要です。後者は、別の記事で扱います。

ご注意

この記事は、OpenAIやAnthropic、OWASPなどの公開資料をもとに書いています。読み違いや誤りが含まれる可能性があります。また、サービスの仕様や研究の状況は変わりやすく、記事の情報が古くなっている場合もあります。実際に利用するときは、必ず最新の公式資料で確認してください。

コメント