ChatGPT や Gemini のような大規模言語モデル(LLM)は驚異的な文章を生成しますが、平然と事実無根の内容を作り出す「ハルシネーション(幻覚)」という課題も抱えています。なぜ LLM は「知らない」と言えずに、もっともらしい嘘をつくのでしょうか?その答えは、文章を生成する根本的な仕組みにあります。
LLM の基本:確率的に次のトークンを選ぶ
Transformer アーキテクチャを持つ LLM は、次のトークン1を予測するための確率分布を計算する能力を学習時に獲得します。推論時には、入力と現在までの生成結果であるトークン列 \((\,t_1, t_2, \ldots, t_{k-1}\,)\) をもとに、次のトークン \(t_k\) の候補に関する条件付き確率分布 \(p(\,t\, |\, t_1, t_2, \ldots, t_{k-1})\) を算出します。次のトークン \(t_k\) は、その確率分布に基づいて選択されます。
サイコロを振って次のトークンを決めるようなもの
これは、特定の目が出やすくなるようにしたサイコロを何回も振って文章を生成しているようなものです。もっとも、私たちがよく知る6面のものではなく、語彙の数だけ何万もの面を持つ特別なサイコロですが。
しかも、トークンを生成するごとに別の目が出やすくなるようにサイコロを作り替えているのです。いわば、LLM は「巧妙なサイコロ製造機」です。
サイコロを振って決めるだけなので、トークン列が入力されれば出力されます。そこに知らないという術はありません。
なぜ「知らない」と言えないのか?
では、この仕組みがどのようにハルシネーションを生むのでしょうか。
例えば、あなたが自身の専門外の分野について、少し踏み込んだ質問をしたとします。それは、歴史上のマイナーな出来事かもしれませんし、ある専門分野で使われていそうな学術用語かもしれません。
たとえその出来事や用語が実際には存在しなくても、LLM は困りません。質問に含まれるキーワード(人名、時代、専門分野など)を拾い上げ、確率的に最も繋がりやすい言葉を紡ぎ合わせて、さも実在するかのような解説を創作してしまうのです。
LLMの目的は真実を語ることではなく、与えられた文脈に、確率的にもっともらしく続く単語を生成すること。これがハルシネーションの源泉です。
まとめ:その回答、あなたは検証できますか?
LLM を「賢者」ではなく「巧妙なサイコロ製造機」と理解した上で、私たちはもう一歩踏み込む必要があります。生成される文章が自然だからといって、私たちはその内容が正しいと判断することはできません。
この意味するところは、LLM の真の利用価値は、ユーザー自身が回答を論理で検証できる分野、あるいは、適切さで判断できる分野に限定されるということです。
-
価値の高い使い方:
- 論理で検証ができる: プログラミングコードの生成、数式の展開、長文の要約など。生成された結果の論理が正しいかどうかを、自分の知識で追うことができる。
- 適切さで判断ができる: アイデアの壁打ち、文章のドラフト作成、クリエイティブな文章の生成など。「正解」がなく、自分の目的に合っているかどうかで判断できる。
-
リスクを伴う使い方:
- 真偽がわからない事実の調査: 歴史上の出来事や専門分野の知識で、自分で直に調べるのが困難な事柄について質問すること。もっともらしい嘘を事実として受け入れてしまうリスクが非常に高い。
結局のところ、LLM は私たちの知識を「拡張」するツールではありますが、私たちの知識を「代替」するものではありません。最終的な事実確認や利用価値の検証は、常に人間が担う。この原則を理解し、自分の検証能力をコンパスとして LLM を使いこなすことこそが、この新しい技術を最大限に活用する鍵です。
-
LLM が文章を扱う最小単位。多くは単語そのものですが、「走ります」が「走り」と「ます」に分かれるように、より細かく分割されることもあります。ちなみに、LLMが扱える全トークンをまとめて「語彙(vocabulary)」と呼び、高性能なモデルでは数万〜数十万にもなります。 ↩︎