AI · AIの基礎
大規模言語モデル(LLM)の仕組みとは?
結論
大規模言語モデル(LLM)は、それまでのトークン(テキストの小さな断片)から次のトークンを予測するよう学習したニューラルネットワークです。回答するときは、プロンプトをトークンに分け、次に来うるすべてのトークンにスコアを付けて1つを選び、テキストに加えます。これを止まるまで繰り返します。指示や人間のフィードバックによる追加学習で、この予測器が役に立つアシスタントになります。
ひとことで言うと:とても優秀な「次の言葉」当て
LLMがやっていることは、1つの作業の繰り返しです。ここまでのテキストを見て、次に来る断片それぞれの確率を見積もります。そして1つ選んで末尾に付け足し、また見直します。300語の回答は、こうした小さなステップを数百回重ねたものです。
これだけで文章やコード、翻訳まで書けるのは単純すぎるように思えます。力の源は規模です。モデルは学習で調整される数値であるパラメータを数十億個持ち、非常に大量のテキストで学習しています。それだけの量のテキストで次の言葉を精度よく当てるには、文法、知識、推論のしかた、コードの構造を身につけるしかありません。
ChatGPT、Claude、Gemini、DeepSeek、QwenなどのチャットAIは、LLMを核にした製品です。製品側がチャット画面、見えないシステムプロンプト、安全ルール、そしてWeb検索などのツールを加えています。中心にあるのは、あくまで次トークンの予測です。
メッセージがたどる道のりをステップごとに見る
The capital of France is というプロンプトを例に、モデルが何をするか見てみましょう。
- トークン化:テキストをトークンに分割します。一般的なトークナイザーでは、このプロンプトは The、capital、of、France、is の5トークンになります(多くは先頭の空白を含みます)。
- 埋め込み:各トークンを、長い数値の並び(埋め込みベクトル)に置き換えます。意味の近いものが近くに並ぶ空間に、トークンを配置するイメージです。
- アテンション:埋め込みは数十層のトランスフォーマー層を通ります。各層のアテンションで、すべてのトークンが先行するトークンを見て、関係のある情報を取り込みます。
- スコア付け:最後の層が、語彙に含まれるすべてのトークン(多くは10万個以上)にスコアを付けます。スコアは確率に変換されます。
- サンプリング:その確率とサンプリング設定に従って、トークンを1つ選びます。
- 繰り返し:選んだトークンをテキストに加え、次のトークンのために全体をもう一度処理します。停止トークンが出るか、長さの上限に達するまで続きます。
次のトークンの確率は、たとえば次のようになります。数字は説明用で、実際のモデルの値ではありません。
| 次トークンの候補 | 確率(説明用) | コメント |
|---|---|---|
| Paris | 0.92 | 期待される答え |
| a | 0.03 | 「a city of ...」と続く可能性 |
| the | 0.02 | 「the city of ...」と続く可能性 |
| located | 0.01 | 文法的には成り立つが珍しい |
| Lyon | 0.001 | 間違いだが、選ばれる可能性はゼロではない |
この表から2つのことがわかります。1つ目は、モデルはデータベースの項目を引いているのではなく、最もありそうな続きを作っているということです。2つ目は、間違ったトークンにも必ず多少の確率があることで、これがモデルが誤りを述べることがある理由の1つです。
アテンション:モデルが意味を追いかける方法
アテンションは、2017年に発表されたトランスフォーマーの中心的なアイデアです。モデルは各トークンについて、意味を組み立てるときに先行する各トークンをどれだけ重視するかを計算します。
The trophy did not fit in the suitcase because it was too big. という文を考えてみましょう。it が何を指すかを理解するには、suitcase ではなく trophy と結びつける必要があります。big を small に変えると、it はスーツケースを指すようになります。アテンションは、周囲の言葉から、この結びつきを何層にもわたって磨きながら見つけ出します。
アテンションは各トークンを先行するトークンと比べるため、テキストが長くなるとコストが急に増えます。どのモデルにもコンテキストウィンドウ、つまり一度に考慮できるトークン数の上限があるのはこのためです。
LLMはどう学習するか:3つの段階
素の次トークン予測器は、まだ役に立つアシスタントではありません。質問すると、インターネット上の文章にもありそうな形として、さらに質問を続けてしまうことがあります。現代のアシスタントは、いくつかの段階の学習を経ています。
| 段階 | 学習データ | モデルが学ぶこと | 結果 |
|---|---|---|---|
| 事前学習 | 大量の公開テキストとコード | 言語、知識、パターン、推論のしかた | どんなテキストにも続きを書けるベースモデル |
| 指示チューニング | 人が書いた、プロンプトと良い回答の例 | 指示に従うときの形式 | だらだら続けず、質問に答えるモデル |
| 選好チューニング(RLHFなど) | 人またはモデルが複数の回答を順位づけする | 人が好む回答(役に立つ、正直、安全) | 一貫した文体と、断り方を持つアシスタント |
InstructGPTの研究では、この方法で学習した小さなモデルのほうが、事前学習だけの非常に大きなモデルよりも、ユーザーに好まれることが示されました。執筆時点では、回答する前に問題を段階的に考えるための追加学習を受けたモデルも多く、製品では「思考」や「推論」モードとして表示されることがよくあります。
学習は、公開前に一度だけ、多大なコストをかけて行われます。モデルとチャットしている間、パラメータは変わりません。会話の中でその場で学習することはありませんが、提供元の方針で許されていれば、会話を後のバージョンの学習に使うことはあります。
回答を変えるサンプリング設定
モデルは確率からサンプリングするため、同じプロンプトでも答えが変わることがあります。APIを使えば、この動作を調整できます。範囲やデフォルト値は提供元によって異なります。
| 設定 | 働き | 変更するタイミング |
|---|---|---|
temperature | 低いと最上位の候補が選ばれやすくなり、高いと確率が平らになってばらつきが増える | 抽出やコードでは低め、アイデア出しでは高め |
top_p | 確率の合計がpになる最小のトークン集合からだけサンプリングする | 通常はtemperatureとどちらか一方だけ調整する |
max_tokens | 出力の長さに上限を設ける | 文の途中で切れるときは上げる |
| 停止シーケンス | 現れた時点で生成を終わらせるテキスト | 構造化出力、テンプレート |
| システムプロンプト | 会話の前に置かれる、見えない指示 | 役割、口調、形式、ルールを一度で設定する |
temperatureを下げると、回答は安定します。ただし、正確になるわけではありません。最もありそうな続きが間違っていれば、temperatureが低いほど、毎回同じように間違えます。
LLMがやらないこと
意外な失敗の多くは、仕組みを思い出すと納得できます。
- 文字は見えていません。モデルが見るのはトークンなので、strawberry のような単語は st、raw、berry のような3つの断片で届くことがあります。文字数を数えたり単語を逆順にしたりするのが難しいのはこのためです。
- 過去のチャットを自力で覚えてはいません。アプリのメモリ機能は、メモを保存してプロンプトに差し込むことで実現しています。
- 最近の出来事は、アプリが検索結果や文書をコンテキストに加えない限り知りません。
- 事実を確認しません。次トークン予測には、出力を現実と照らす仕組みがないため、流暢な文章が誤りであることもあります。
- ツールを呼び出さない限り、コードの実行や正確な計算はしません。テキストだけの長い掛け算は間違えやすいです。
優れた製品は、電卓、コード実行、Web検索、手元の文書からの検索といったツールでこの穴を埋めます。穴があると知っていれば、ツールを頼むべき場面や、自分で答えを確かめるべき場面がわかります。
LLMの仕組みから導かれる実践のコツ
- 材料はプロンプトに入れる。文書について答えてほしいなら、関係する部分を貼り付けます。モデルは、学習時のあいまいな記憶よりも、目の前のテキストのほうがはるかにうまく扱えます。
- 出力を具体的に指定する。形式、長さ、読者、言語を伝えます。指定がなければ、モデルは最もありがちな選択で埋めます。
- 難しい問題では手順を書かせる。途中経過を書くと、答えを決める前にモデルが使えるトークンが増えます。
- 新しい作業は新しいチャットで始める。古い無関係なメッセージもコンテキストに残り、回答を脇道にそらすことがあります。
- 名前、数字、引用、リンクは確認する。これらは、最もでっち上げられやすい細部です。
よくある質問
大規模言語モデルは、自分の言っていることを理解しているのですか?
意味を豊かに内部表現として組み立てており、それによって多くの場面で回答、翻訳、推論ができます。ただし経験や目的は持たず、人間には当たり前の簡単なタスクで失敗することもあるため、これを「理解」と呼べるかは今も議論されています。
同じ質問なのに、AIの答えが毎回違うのはなぜですか?
モデルは確率分布から次のトークンをサンプリングするので、回答の早い段階の小さな偶然が、後の言い回しの違いにつながります。temperatureを下げると、再現しやすくなります。
GPTは何の略ですか?
GPTはGenerative Pre-trained Transformerの略です。大量のテキストで事前学習され、テキストを生成するトランスフォーマーモデルという意味です。
LLMはインターネットにつながっていますか?
モデル自体はつながっていません。知っているのは、ある時点までの学習データだけです。アプリによってはWeb検索ツールを追加し、結果をコンテキストに貼り付けます。最近の出来事に触れられるのはそのためです。
LLMのパラメータとは何ですか?
パラメータは、ネットワーク内部にあり、学習で調整される数値の1つです。モデルには数十億個あり、全体としてモデルが学んだ内容を符号化しています。パラメータが多いほど多くのパターンを保持できますが、動かすコストも増えます。