大規模言語モデル(LLM)の仕組みの詳細解説
LLMの核心メカニズム(次トークン予測、バックプロパゲーションによる学習、ロジットとソフトマックス、温度パラメータの影響、出力の確率的性質)を深く掘り下げます。モデルが幻覚を起こす理由、チェーン・オブ・ソートプロンプティングが精度を向上させる仕組み、モデルが「知っている」ことの実際の意味について説明します。
大規模言語モデル(LLM)—ChatGPT、Gemini、Claudeなど—は、ユーザーがテキストを入力すると、首尾一貫していて知識豊富で、時には不気味なほど人間らしい応答を返します。しかし、その背後にあるメカニズムは、ほとんどの人が想像するよりも単純でありながら奇妙です。この記事では、言語モデルが機械的なレベルで何をしているのか、なぜそのような出力を生成するのか、同じ入力でも実行ごとに異なる出力が得られる理由、そして「温度」が実際に何を意味するのかを解説します。
次トークン予測マシン
大規模言語モデル(LLM)は、最も基本的なレベルでは、トークンのシーケンスを入力として受け取り、その語彙全体にわたって次のトークンが何であるべきかの確率分布を出力する関数です。これが中核操作の完全な説明です。その他すべて—見かけ上の推論、会話能力、コード生成—は、この一つの操作を巨大なスケールで、膨大な訓練データに対して実行することから出現します。
具体的には、モデルに「The quick brown fox」というトークンを入力したとします。モデルは「jumps」という単語を直接生成するのではなく、確率のテーブルを生成します:「jumps」が42%、「sat」が12%、「leaped」が8%、そして語彙内の他のすべてのトークンが残りの確率質量をそれぞれ非ゼロの割合で得ます。モデルはその分布からサンプリングして次のトークンを選びます。そのトークンがシーケンスに追加され、停止条件に達するまでプロセス全体が繰り返されます。これを自己回帰生成と呼びます。生成された各トークンは、次の予測のための入力の一部になります。モデルは常に同じ質問をしています:「これまでに見たすべての情報を基に、次に来る最も可能性の高いトークンは何か?」
訓練が実際に行うこと
モデルは、膨大なテキストコーパス(インターネット上の書き物、書籍、コード、学術論文の大部分)で訓練されることで、これらの確率分布を生成することを学習します。訓練中、モデルはトークンのシーケンスを見て、次のトークンを予測しようとします。間違った場合、誤差信号がネットワークを通じて逆伝播され(バックプロパゲーション)、数十億の内部パラメータ(モデルの「重み」)を、正しい予測がより確からしくなる方向にごくわずかに調整します。
数兆回の更新の後、モデルの重みは注目に値するものをエンコードします。それは、言語がどのように機能するかの圧縮された統計モデルです。モデルは、「The Eiffel Tower is located in」の後には非常に頻繁に「Paris」が続くこと、Python関数定義は「def」で始まること、「To be or not to」で始まる文はほぼ確実に「be」で続くことを学習します。
重要なのは、モデルには個々の訓練例の記憶がないことです。統計パターンを内面化しているのです。これが、未知の入力にも一般化できる理由です。保存された文を検索しているのではなく、学習した分布からサンプリングしているのです。
ロジット、ソフトマックス、そして確率の重要性
モデルがきれいな確率を生成する前に、生のスコア(ロジット)を生成します。ロジットは語彙内の各トークンに対して一つの実数です。これらのロジットは、ニューラルネットワークの最終線形層の生の出力です。ロジットを確率分布に変換するために、モデルはソフトマックス関数を適用します:
P(token_i) = e^(logit_i) / Σ_j e^(logit_j)
ソフトマックスは二つのことを行います。第一に、各ロジットを指数化し、差を拡大します:二倍のロジットは指数関数的に確率が高くなります。第二に、すべてを正規化し、確率の合計が1になるようにします。結果は語彙全体にわたる有効な確率分布です。
例えば、モデルが「The quick brown fox」の次の単語を予測しているとします。四つの単語に対して生のロジットを生成します:「jumps」8.3、「leaped」6.0、「sat」2.1、「sleeps」-1.5。ソフトマックス後、確率はそれぞれ90.7%、9.1%、0.18%、0.004%になります。これがサンプリングの前にモデルが実際に渡す数値です。温度、top-k、核サンプリングの全ドラマはここで、トークンが引き出される前にこの分布を操作することで起こります。
温度
温度はプロンプティングで最も誤解されているパラメータです。一般に「創造性」や「ランダム性」と説明されますが、それは技術的に正しいものの、実際の仕組みを曖昧にします。正確に理解することで、意図的に使用できるようになります。
温度は、ソフトマックスが適用される前にロジットを割るスカラーです:
P(token_i) = e^(logit_i / T) / Σ_j e^(logit_j / T)
T=1.0のときは変化しません。Tを調整することで、分布を「シャープ」または「フラット」にできます。例えば、「jumps」のロジット8.3の場合:T=0.5では確率約99.0%、T=2.0では約67.5%です。一方、確率の低い「sleeps」はT=2.0で0.004%から0.5%に上昇します。T>1.0の場合、確率質量はより均等に広がり、モデルはより驚くべき続きをサンプリングします。
実用的な意味:温度はモデルが知っていることや推論の仕方を変えるのではなく、確率分布のどの領域からサンプリングするかを変えます。低温ではモデルの最も確信のある予測を利用し、高温では分布の裾を探索します。これには有効だが珍しい続きも、支離滅裂なものも含まれます。感覚的なモデルとしては:T=0.0-0.3はコード生成や事実に基づくQ&Aに、T=0.7-1.0はチャットや要約に、T=1.2-2.0はブレインストーミングや創造的執筆に適していますが、高温側では出力の信頼性が低下します。
出力が本質的に確率的である理由
モデルに「2+2は?」と尋ねると、確率質量がそのトークンに集中しているため、毎回「4」が返ってきます。しかし、複数の続きが妥当なプロンプトでは、モデルの出力は確率分布から引き出されます。同じプロンプトを百回実行すると、百のわずかに異なる出力が得られ、時には実質的に異なります。これはバグではなく、訓練の直接的な結果です。訓練データには膨大なバリエーションが含まれており、異なる人々が同じアイデアを何千もの方法で表現しており、モデルはこのバリエーションを学習しています。
この確率的性質にはいくつかの実用的な結果があります:同じプロンプトでも出力構造が常に同じとは限らないため、厳密な出力解析はバリエーションを処理する必要があります。モデルは同一入力でも別々の呼び出しで自己矛盾する可能性があるため、一貫性が必要な場合は温度0を使用するか、検証ロジックを実装します。「間違った答えが出た」と「常に間違った答えが出る」は非常に異なる故障モードであり、プロンプトが機能するかどうかを判断する前に複数回の実行でテストする必要があります。
メタ知識はない
初心者を戸惑わせる点の一つは、モデルが認知的な意味で何を言うかを「決定」していないことです。内なる独白も、応答を書き出す前に概要を計画するステップもありません。各トークンは左から右に一度に一つ生成され、一旦コミットされると以前のトークンを修正する能力はありません。これが「チェーン・オブ・ソートプロンプティング」—最終回答を出す前に段階的に推論するようモデルに求めること—が複雑なタスクの精度を実際に向上させる理由です。中間推論トークンを生成することで、モデルは後続のトークンをその推論に条件付けます。スクラッチスペースは現実的で機能的です:「let me think step by step」と出力に書き込むことは、後続のトークンの分布を正しさの方向に実際に変化させます。これは演出ではありません。
また、モデルが「幻覚」を起こす理由も説明します—自信満々だが誤ったテキストを生成すること。特定の詳細(著者名、統計、URL)を文脈的に期待するプロンプトが与えられると、モデルは学習した分布からもっともらしい続きをサンプリングします。その分布は実際のテキストに基づいて構築されましたが、事実の正確さのために索引付けされたわけではありません。もっともらしいトークンは真実のトークンと同じではありません。
「モデルが知っている」の実際の意味
エンジニアが言語モデルが何かを「知っている」と言うとき、それは訓練コーパスにその情報が文脈で現れた例が多数含まれており、モデルの重みがそれを表現する続きに対する強い事前分布をエンコードしていることを意味します。モデルには事実のデータベースはありません。数百億トークンにわたる共起統計の圧縮された損失のある符号化があります。
実際には:モデルは訓練で何度も見たことに対して自信を持ち首尾一貫しています。まれにしか現れなかったり、一貫性なく表現されたことについては信頼できません。訓練データで過小表現されている領域では、トークン予測機構が「これを学習した」と「もっともらしいものにパターンマッチングしている」を区別しないため、自信を持って詳細をでっち上げます。
これを理解することで、適切なプロンプトを設計できます:常識に基づくタスクにはモデルは強力な加速剤です。正確な事実の想起(特に特定の数字、引用、最近の出来事)が必要なタスクでは、モデルは検証が必要な出発点として扱う必要があります。
結論
言語モデルは、保持されたトークンの予測誤差を最小化することで訓練された次トークン予測マシンです。各ステップで語彙全体の確率分布を出力し、温度はサンプリング前にその分布の尖り具合を制御します。出力が確率的なのは、モデルが人間の言語の自然な変動を学習したからです。これを理解すること—モデルを検索エンジンや知識ベースとして扱うのではなく—が、本番システムでLLMを効果的に使用するための基礎です。