パニックなしで理解するハルシネーション
でっち上げをする言語モデルは故障しているのではなく、作られたとおりに動いているだけです。なぜハルシネーションが起き、どう管理するかを解説します。
「ハルシネーション」とは、言語モデルが偽りを完全な自信をもって述べるときの言葉です——存在しないもっともらしい引用、きれいに聞こえるが間違った事実、誰も口にしていない引用句。この言葉は、それを不具合、たまに暴走する何かのように聞こえさせます。違います。ハルシネーションはこれらのモデルの仕組みから予測可能に生じる結果であり、それを理解することが、恐れることと管理することの分かれ目です。
この解説は、注意を取り除かずにパニックを取り除くことを目指します。でっち上げをしうるモデルは、場面を誤れば本当に危険です。しかしその振る舞いがどこから来るかが見えれば、リスクは理解可能で制御可能です。
モデルが実際にしていること
言語モデルは、データベースがレコードを保存するようには事実を保存しません。膨大な量のテキストからパターンを学び、何らかの入力が与えられると、それらのパターンに最も整合する続きを生み出します。その核心的な能力はもっともらしさ——たいていそういうテキストの後に続くようなテキストを生成することです。
ほとんどの場合、もっともらしさと真実は一致します。真実の言明が学習テキストにありふれているからです。しかしモデルは真実ではなくもっともらしさを最適化しており、この2つは端のほうで乖離します。乖離したとき、モデルはもっともらしさに従います。なぜならそれが、モデルがそもそも追跡するよう作られた唯一のものだからです。でっち上げた引用は本物とそっくりに見えます。間違った日付は、正しいものと同じくらい滑らかに文の中に収まります。流暢さは正しさの証拠ではありません。それは生産物そのものなのです。
自信に満ちたでっち上げは、後付けではなく作り込まれている
ここに居心地の悪い核心があります。正しい回答を生み出すのと同じ機構が、ハルシネーションを生み出します。たまにスイッチが入る別個の「でっち上げ」モジュールなどありません。モデルがパターンをよく知っていれば、正しい回答が得られます。知らなければ——情報が稀だった、欠けていた、あるいは学習されなかったために——モデルは止まりません。それでも最ももっともらしく見える続きを、同じ流暢な自信をもって生成します。なぜなら、その基本動作には「これを知っている」と「これは回答が取るであろう形だ」を区別するものが何もないからです。
だからハルシネーションは完全にはパッチできません。それは、常に何かを生み出し、自らの知識の境界の感覚を内蔵していないシステムの性質です。減らし、封じ込め、検出することはできますが、将来のモデルがそれを排除済みだと仮定することはできません。なぜならそれは、モデルがそもそも生成する仕方に織り込まれているからです。
これを、人間が自分の知識の端をどう扱うかと対比すると役立ちます。半ば覚えていることを尋ねられると、私たちは不確かさを感じ——その感覚が、言葉を濁したり、留保をつけたり、調べたりするよう促します。モデルには、「今は当て推量をしている」を確実に示す同等の内的シグナルがありません。それは確かな根拠の上にいようと即興していようと、次のもっともらしいトークンを生成し、両者の移行は内側からは継ぎ目がありません。知識が尽きたときに鳴る内部アラームが存在しないのです。その欠けたアラームこそが、どんな単一の誤りよりも、問題の根源です。
なぜ自信こそが危険な部分なのか
ハルシネーションが不確かに聞こえれば——言葉を濁し、ためらい、目に見えて自信なさげなら——はるかに害は少ないでしょう。危険なのは、でっち上げた回答が、正しい回答と同じ落ち着いた権威ある声で届くことです。モデルのトーンはその信頼性のシグナルではありません。正しかろうと間違っていようと自信ありげに読めます。なぜなら自信は流暢なテキストの特徴であって、内的な確信の読み出しではないからです。
これは人間が絶えず頼っている習慣を壊します。私たちは他人のためらいを、念のため確認する合図として使います。モデルはその合図を剥ぎ取ります。実践上の帰結はこうです。モデルのトーンを、信頼すべきかどうかの判断材料に使うことはできません。 滑らかで具体的でよく構造化された回答は、不格好な回答とまったく同じくらいでっち上げである可能性があり——時にはそれ以上です。具体性こそが、でっち上げを説得力あるものにする要素の一部だからです。
ハルシネーションが悪化するとき
ハルシネーションは一様ではありません。予測可能な条件下で跳ね上がり、それを知ることでいつ注意すべきかが分かります。
- マイナーで稀な話題。 学習でのカバーが薄いほど、モデルはより即興しています。
- 具体的な詳細。 正確な数字、日付、名前、引用、引用句は高リスクです。もっともらしいが間違った変種が多く、「だいたい合っている」では済まされないからです。
- 誤った前提を含む質問。 存在しないものについて尋ねると、モデルは反論するのではなく、自信ありげな説明をでっち上げることがよくあります。
- 答えるよう迫る圧力。 「分かりません」と言う許可がないまま断定的な回答を要求するプロンプトは、でっち上げを起こりやすくします。
共通する糸は、質問が要求するものとモデルが確実に知っていることのギャップです。そのギャップが広いほど、そして枠組みが断固たる回答を迫るほど、でっち上げの余地が大きくなります。
もっと巧妙な引き金もあります。回答が長く凝っているほど、迷い込んだでっち上げの詳細が紛れ込む機会が増えます。短い事実の返答には誤りの表面積がほとんどありません。具体情報に満ちた、何段落にもわたる広範な回答にはそれが大量にあり——各具体情報が、当たるかもしれないし外れるかもしれない小さな賭けです。だからモデルは、ある話題についておおむね正しくありながら、周囲の散文に自信ありげな小さな誤りを撒くことがあるのです。全体の形は正しく、装飾は当てになりません。長く詳細で権威ありげに聞こえる回答ほど、より少ない吟味ではなく、より多くの吟味に値します。
どう管理するか
ハルシネーションを排除するのではなく、その周りを設計します。長持ちする手法は次のとおりです。
- 供給した材料にモデルを根拠づける。 関連する文書を与え、そこからのみ答えるよう指示します。これが最も効果的な単一のレバーです。「記憶からの想起」を「証拠からの読み取り」に置き換えるからです(検索拡張生成の核心的な発想です)。
- 「分かりません」を許す。 材料に答えが含まれないとき、モデルが断ることを明示的に許し、報います。でっち上げの多くは、常に何かを生み出せという暗黙の要求から来ます。
- 出典を求める。 引用や使った具体的な一節を要求すれば、回答が検証可能になり——でっち上げた裏付けが露呈します。
- 重要なものは検証する。 高リスクの具体情報については、出力を信じるべき事実ではなく、確認すべき下書きとして扱います。
- 設計でリスクを下げる。 間違った回答を捕まえて直すのが安く済む場面でモデルを使い、そうでない場面では人間のレビューを加えます。
これらのどれもモデルを真実に変えはしません。誤りを捕まえられるようにするのであり、それが達成可能なゴールです。
人間の判断がなお属する場所
正しい姿勢は、退けることでも盲信でもありません。モデルは、もっともらしく、有用で、おおむね正しいテキストの並外れた生成器であり——どの部分が正しいかについては当てにならない裁定者です。だから、間違うことが高くつく場所——医療、法律、財務、安全に関わるもの、あるいは再確認なしに公開・実行されるあらゆるもの——にこそ、人間をループに残します。低リスクで、容易に検証でき、探索的な作業では、稀な自信ありげな誤りは許容できるコストです。信頼の度合いを、間違うことのコストに合わせること——それがこの規律のすべてです。
まとめ
ハルシネーションは過ぎ去るのを待つバグではありません。検証された真実ではなく、もっともらしいテキストを生み出すために作られたシステムの影の側面です。正しく答えるのと同じ機構が、同じ自信ある声でもでっち上げをし、モデルは自らの知識がどこで尽きるかの感覚を内蔵していません。だから流暢さを信頼性と読むのをやめましょう。実際の材料にモデルを根拠づけ、「分かりません」と言う許可を与え、出典を求め、重要なものを検証する。ハルシネーションを既知の性質として——冷静に——管理すれば、これらのモデルは、不意打ちで自信たっぷりに嘘をつく者ではなく、強力な道具になります。
