Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】LLMs do know what they're going to say

2025年09月28日に「Dev.to」が公開したITニュース「LLMs do know what they're going to say」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

LLMは次に何を言うか知らないと思われがちだが、実は全ての応答候補とその確率を静的に知っている。多様な出力は、人間が設定する「サンプラー」が、それらの確率の中から次のトークンを確率的に選ぶことで生み出す。LLM本体は決定論的な数学モデルである。

出典: LLMs do know what they're going to say | Dev.to公開日:

ITニュース解説

大規模言語モデル(LLM)の仕組みについて、世間にはいくつかの誤解が広まっている。例えば、LLMは「次に何を言うか、実際に生成するまで自分では知らない」「ただの次の単語のオートコンプリートに過ぎない」といった認識が一般的である。しかし、これはLLMの動作の側面だけを捉えたものであり、より正確な理解とは異なる。実際のところ、LLMは「自身が提供し得るすべての応答と、それぞれの応答に対する固定された確率をあらかじめ知って」おり、テキスト生成の過程で人間がその中から特定のパスを選択していると考えるのが適切だ。

LLMは本質的に、入力に対して出力を行う数学的な計算機である。その内部には、訓練によって一度設定された多数のパラメータが存在し、これらは通常、生成プロセス中に変化することはない。このため、同じ入力が与えられれば、LLM自体は常に同じ確率分布、つまり次に来る可能性のあるトークンとその確度を計算する。この意味で、LLMそのものは非常に決定論的なシステムであると言える。LLMが多様な、あるいは毎回異なるテキストを生成するように見えるのは、人間が設計した「デコーダー」や「サンプラー」と呼ばれる機構が、LLMが提示する確率の候補の中から次のトークンを「選択」する際に、必ずしも最も確率の高いトークンだけを選ばないからである。

LLMにプロンプトが与えられると、それは次に来る可能性のあるトークンそれぞれの生のスコア(Logits)を計算し、それを確率へと変換する。さらにその次のトークン、そのまた次のトークンといった具合に、可能性のあるすべての後続トークンについて確率を計算し続ける。これは、未来へ向かって枝分かれしていく巨大な「生成ツリー」として考えることができる。このツリーの各枝(トークン)には、LLMがそのトークンを選択する「静的な」、つまり固定された確率が割り当てられている。このツリーは深くなるにつれて指数関数的に分岐が増えるが、LLMはこのツリー全体の確率分布を静的に、つまり予め決まった値として認識しているのである。

このLLMの決定論的な性質を実証するため、ある研究者はLLMが生成する確率のツリー構造全体を可視化するカスタムサンプラーを開発した。このデモンストレーションでは、例えば「フランスの首都」というプロンプトに対して生成されたツリーと、「フランスの首都はパリ」という、元のプロンプトにいくつかのトークンを追加したプロンプト(つまり、元のツリーの途中のパスを進んだ状態)に対して生成されたツリーを比較する。その結果、元のプロンプトのツリーにおける特定のパスと、パスを進んだ後のプロンプトのツリーが、それ以降のトークンの確率において完全に一致することが示される。これは、LLMが当初からすべての可能性とそれらの確率を知っていたこと、そして追加のトークンが与えられても、その時点での「知識」が変化しないことを明確に裏付けている。

LLMが決定論的であるにもかかわらず、私たちが日常的に体験するLLMの出力が毎回異なるのは、LLMの確率出力から最終的なトークンを選択する「サンプラー」または「デコーダー」の働きによる。サンプラーは、必ずしもLLMが最も高い確率を与えたトークンだけを選ぶわけではない。この選択メカニズムが、多様な、時には予期せぬ、しかしLLMが認識している「可能性のある」応答を生み出す源となる。つまり、LLMは「何を言いたいか」をすべて知っているが、最終的にどのパスを通って完成された応答を生成するかは、人間が設計したサンプラーの役割に委ねられているのである。

LLMの基本的な内部動作は、まず入力テキストの各単語(トークン)を「埋め込み(Embeddings)」と呼ばれる数値のリストに変換するところから始まる。この数値リストは、LLMの中核部分である「トランスフォーマー」に渡される。トランスフォーマーは、その訓練を通じて獲得した知識を用いて、トークン間の関係性(「Attention」と呼ばれるメカニズム)を分析し、学習済みの知識や意味をエンコードする。このプロセスは複数の層で繰り返し行われる。この一連の処理を通じて、各入力トークンはモデル内で常に洗練された内部表現を持つようになる。これらの数値表現は、モデルの「潜在空間(Latent Space)」におけるユニークな位置を示し、最終的に次に来るトークンの確率を決定する。これらの値は、特定の入力と設定に対して常に同じである。

サンプラーによる非決定論性の注入方法には、いくつかの詳細な設定が存在する。LLMが計算する直接の出力は「Logits」と呼ばれる生のスコアであり、これらはまだ確率ではない。サンプラーはまず「Softmax」という数学的な変換を用いて、これらのLogitsを合計が1になる適切な確率に正規化する。次に、多様性を制御するための設定が適用される。「Temperature」は確率分布を「平坦化」または「尖鋭化」させる設定で、高い値は多くのトークンが同程度に選択される可能性を高め、低い値は最も確率の高いトークンが選択されやすくなる。また、「Top-k」は確率の高い上位K個のトークンのみを候補とし、残りを破棄する。「Top-p」は確率の合計が特定の値Pを超えるまで、確率の高い順にトークンを候補リストに追加する。最終的に、「Seed」という乱数生成器の初期値が使われ、これらの設定に基づいて候補リストから次のトークンが確率的に選択される。この確率的な選択プロセスによって、同じプロンプトであっても毎回異なる出力が生成されるのである。

ただし、大規模なシステムや異なるハードウェア、ソフトウェア環境では、浮動小数点演算の微妙な丸め誤差や、ごく稀に複数のトークンの確率が完全に一致した場合のタイブレーキング戦略の違いにより、出力される確率にごくわずかな差異が生じることがある。しかし、これらは通常、LLMの出力の全体的な意味にはほとんど影響しないほど微細な違いであり、特定のアプリケーションで完全に決定論的な挙動が必要な場合を除けば、問題となることは稀である。

このように、大規模言語モデル自体は、可能なすべての応答とその確率を静的に把握している決定論的な数学機械である。その多様な出力は、人間が設計し、様々なパラメータで制御されるサンプリング戦略によって生み出されているのである。

関連コンテンツ

関連IT用語

関連ITニュース