全体像: ChatGPT は内側で何をしているのか
ChatGPT のチャット欄に 「東京の天気は?」 と打ち込んで、Enter を押す。 1〜2秒後、「東京の今日の天気は晴れ、最高気温は…」という文字列が、1文字ずつ流れるように返ってくる。
入力1文と、出力1文。それだけ。 この間に、機械は何をしているのか?
本書の旅は全部で 13 章あるが、その全てはこの「1 入力 → 1 出力」の 間で起きている工程の話 だ。 細かい話に踏み込む前に、まずは内側のパイプラインを 1 枚の地図 として通しで眺めておきたい。 それが本章のゴールだ。
内側で起きていること — 5 つの工程
機械が「東京の天気は?」を受け取って「晴れです」と返すまでに、内側ではざっくり 5 つの工程 が走っている。
ひとつずつ歩いてみよう。各段の最後に、その話を腑に落とすために読むべき章を示す。
① 文字列を「単位」に切る — トークン化
機械が最初にやることは、入力された文字列を小さな単位に切り分ける ことだ。
"東京の天気は?"
↓
[東京, の, 天気, は, ?]
切り方には自由度がある。「東京 / タワー」と切るか「東 / 京 / タワー」と切るかで、後の全工程で見える世界が変わる。 切ったあとの 1 単位を トークン と呼び、現代の LLM では サブワード分割(BPE) という賢い切り方が使われている。
ここで「分かち書き」「形態素解析」を思い出した人もいるかもしれない。あれの LLM 時代版が、トークン化だ。
→ 詳しくは 第1章「トークン化」 で。
② 各トークンに「座標」を与える — 埋め込み
切ったあとのトークンは、まだ単なる 背番号 だ。たとえば「東京 = 4218」「天気 = 7301」。 この状態だと、機械は「東京と大阪が似ている」ことも「天気と気温が関係している」ことも何も知らない。
そこで各トークンに 数百次元のベクトル(数の並び) を割り当てる。 このベクトルが上手く設計されていると、
- 「東京」と「大阪」のベクトルが 近く に住む
- 「猫」と「犬」のベクトルも 近く に住む
- 「東京」と「バナナ」は 遠く
という、意味の幾何学 が成立する。これが 埋め込み (embedding) だ。 言葉が「空間内の座標」になった瞬間、機械は意味の 構造 を扱えるようになる。
→ 詳しくは 第2章「埋め込み」 で。 第3章 では、「bank」が文脈で「銀行」になったり「土手」になったりする話を扱う。
③ 文脈で意味を混ぜ合わせる — Attention
埋め込みだけでは、各単語は 孤立して意味を持つ だけだ。 だが本当の言葉では、「東京」の意味は その隣に何があるか で変わる。
- 「東京 の 天気」なら、東京は「場所」として効いている
- 「東京 タワー」なら、東京は固有名詞の一部に飲み込まれる
機械にこの 「隣を見て自分の意味を更新する」 仕組みを与えるのが、Attention(注意機構) だ。 Attention は文の中の各単語に対して、「いま自分は他のどの単語に どれくらい注目 すべきか」を計算し、注目した相手の情報を吸い上げて自分のベクトルを更新する。
そして、この Attention だけを部品にして組み上げた怪物が Transformer だ。 2017 年に発表され、現代の LLM はすべてこの構造を背骨に持っている。
→ 詳しくは 第6章「Attention」、第7章「Transformer」 で。 第4-5章 で、Attention 以前の系列モデル(n-gram、RNN)を駆け足で押さえる。
④ 次の1語を予測する — 言語モデル
ここまでで、入力文 "東京の天気は?" は、文脈を吸って意味が濃くなったベクトル列 に変身している。
LLM はこの状態から、次に来るべき 1 トークン を予測する。
"東京の天気は?"
↓ (全工程を経て)
次のトークンの候補と確率:
"晴れ" 32%
"今日" 15%
"東京" 8%
"雨" 6%
...
そして、確率の高いものを 1 つ選ぶ。今回は「晴れ」が選ばれたとする。
この「次の1語を予測する」 — 実はこれだけが、LLM の本質的な仕事だ。
要約も、翻訳も、コード生成も、雑談も、突き詰めれば「次に来る単語を当てる」を巨大な規模で繰り返しているだけ。 これが本書全体を貫く合言葉のひとつだ。
→ 詳しくは 第8章「BERT」(読む側の専門家)と 第9章「GPT」(書く側の専門家)で。
⑤ ④を繰り返して、文を生み出す
1 トークン予測したら終わり、ではない。 予測した「晴れ」を 入力末尾に追加 して、もう一度①〜④を流し直す。
1回目: "東京の天気は?" → "晴れ"
2回目: "東京の天気は?晴れ" → "です"
3回目: "東京の天気は?晴れです" → "。"
4回目: "東京の天気は?晴れです。" → "気温"
...
これを 「文終わり」を示すトークン が出るまで繰り返す。 出力が「1 文字ずつ流れるように」見えるのは、内側で本当に 1 トークンずつ生成しているから だ。
ただし、ここまでで作れるのはあくまで「もっともらしい続き」を書く機械でしかない。 ChatGPT のように 「指示に従う」「対話する」 ようになるには、もう一段の調教が必要だ。 それが Instruction Tuning と RLHF で、これを経て初めて GPT は ChatGPT になる。
→ 詳しくは 第10章「Instruction Tuning と RLHF」 で。
第11章以降は「応用と弱点」
①〜⑤の基本パイプラインに加えて、本書の後半では、LLM を 実世界で使うとき に避けて通れない 3 つのテーマを扱う。
- 第11章 RAG: LLM は学習データの外のこと(今日の天気、社内ドキュメント)を知らない。それを 外から取ってきて文脈に混ぜる 仕組み。
- 第12章 マルチモーダル: 画像も音声も、同じパイプラインの トークンの仲間 として扱う発想。
- 第13章 ハルシネーションと評価: なぜ LLM は 自信満々に嘘をつく のか、どう測ればよいのか。
この地図の使い方
本書のどの章を読んでいても、「いま自分はパイプラインのどこの話を読んでいるか」を、この地図に戻って確認できる。
新しい用語が出てきたら、まず「①〜⑤のどこの工程の話か」を当てはめてみる。 それだけで、細部の話が 全体の中の位置 を持って読めるようになる。
第1章は、いちばん最初の工程 ──「①文字列を単位に切る」── の話から始まる。 たった 1 つの工程に丸ごと 1 章を使うのか、と思うかもしれない。 だがこの「切り方」ひとつで、後の全工程の運命が変わる。
そんなに重い設計判断だということを、第1章で実感してもらうつもりだ。