DIVE

Part 7: 確率とAI・LLM

第 21 章

Transformer — 『注意』こそが、すべてを変えた

長い旅も、ついに最終章にたどり着いた。第1章で「0と1は電圧の高低だ」と始めた私たちは、トランジスタ、機械語、カーネル、ネットワーク、GPU、そしてニューラルネットを経て、今——現代AI革命の震源地の前に立っている。

その名は Transformer。2017年、Googleの論文『Attention Is All You Need(必要なのは注意だけ)』で発表され、ChatGPTもGeminiもClaudeも、現代のほぼすべての大規模言語モデル(LLM)がこの上に建っている。そのタイトルが宣言する通り、核心は一つの機構——Self-Attention(自己注意)にある。この最終章で、AIの心臓を解体し、21章の旅を締めくくろう。


逐次処理という限界 — 歴史の必然

Transformer以前、文章を扱うAIの主流は RNN(再帰型ニューラルネット)だった。RNNは文を単語ごとに、順番に処理する。「私」→「は」→「猫」→…と、前の単語の情報を引き継ぎながら一つずつ読む。

これには二つの致命的な問題があった。

  1. 並列化できない: 順番に処理するため、前の単語が終わるまで次に進めない。第16章のGPUの超並列を活かせない。学習が遅い。
  2. 長距離の依存を忘れる: 文が長くなると、遠く離れた単語の関係を保持できない。「その本は、去年パリで買ったもので、とても……それが気に入っている」——「それ」が何を指すか、遠すぎて見失う。

Transformerの革命は、この「順番に読む」という縛りを完全に捨てたことだ。文中の全単語を同時に見渡し、どの単語とどの単語が関係するかを一度に計算する。逐次処理の鎖を断ち切り、GPUの並列性を最大限に引き出した。この設計転換が、モデルの巨大化——そしてLLMの爆発——を可能にした。


厨房のアナロジー — 全員の会話に同時に耳を澄ます

満席の宴会場で、ホールを任されたと想像してほしい。RNN方式なら、テーブルを1卓ずつ順番に回り、前の卓の話を覚えたまま次へ進む。遠くの卓の会話は、着く頃には忘れている。

だが熟練したホール責任者は違う。全テーブルの会話に、同時に注意を張り巡らせる。そして「今、最も注目すべきはどこか」を瞬時に判断する。「5番テーブルが手を挙げた——あれは3番の追加注文と関連している」と、離れた卓同士の関係も一度に捉える。「誰に、どれだけ注意を向けるか」を、全体を見渡して重み付けする。

私が飲食店の忙しいフロアで培った最も高度な感覚がこれだった。個々の卓を順番に処理するのではなく、フロア全体を一枚の絵として捉え、注意の配分をリアルタイムで最適化する。Self-Attentionがやっているのは、まさにこの「全体を見渡し、注意を賢く配る」という技術そのものだ。


Self-Attention — 「どの単語に注目するか」

Self-Attentionの目的はこうだ。文中の各単語が、他のどの単語に、どれだけ「注目」すべきかを計算し、その注目度に応じて情報を混ぜ合わせる。

例文「その動物は疲れていたので、それは渡らなかった」で、「それ」を理解するには「動物」に強く注目する必要がある。Self-Attentionは、この「それ→動物」への注目を、計算で自動的に見出す。

これを実現するのが QKV という3つの役割だ。各単語のベクトル(第20章のembedding)から、3種類のベクトルを作る。図書館の検索に例えると分かりやすい。

役割意味(図書館の比喩)
Q(Query, クエリ)「私が探しているのは何か」という問い合わせ
K(Key, キー)「私はこういう情報を持っている」という見出し・目印
V(Value, バリュー)実際の中身・情報

処理の流れはこうだ。ある単語の Q(問い)を、全単語の K(見出し)と照合し、どれだけマッチするかを測る。マッチ度が高い単語の V(中身)を、多く取り込む。

そして——ここが全21章の伏線の回収だ——この「Qと Kのマッチ度」を測るのは、第17章で学んだ内積なのだ。

注目度ij=qi⃗⋅kj⃗\text{注目度}_{ij} = \vec{q_i} \cdot \vec{k_j}

第17章で「内積は似ている度」と述べた。Attentionは、その内積で「単語 ii の問いと、単語 jj の見出しが、どれだけ合うか」を測っている。AIの心臓部は、ベクトルの内積だったのだ。


Attentionの数式 — 一枚の式に凝縮される

Self-Attention全体は、有名な一本の式にまとまる。QKVをそれぞれ行列(全単語分をまとめたもの)として:

Attention(Q,K,V)=softmax ⁣(QK⊤dk)V\text{Attention}(Q, K, V) = \text{softmax}\!\left( \frac{QK^{\top}}{\sqrt{d_k}} \right) V

一つずつ、これまでの章の言葉で読み解こう。

Self-Attention の流れ:
  各単語 → Q, K, V を生成
       │
       ▼
  QとKの内積 (QKᵀ) → 「注目度の表」        ← 第17章の内積・行列積
       │
       ▼
  softmax → 合計1の「注意の重み」に変換
       │
       ▼
  重み × V → 情報を混ぜ合わせる
       │
       ▼
  各単語が「文脈を織り込んだ」新しいベクトルに生まれ変わる

決定的なのは、この計算が全単語ペアで同時に行える点だ。RNNの逐次処理と違い、巨大な行列積一発で済む。だからこそ第16章のGPUで超並列に計算でき、モデルを途方もない規模まで巨大化できた。「Attention Is All You Need」——並列化を阻む再帰をすべて捨て、注意機構だけで組んだことが、革命の本質だった。


位置エンコーディング — 「順序」をどう教えるか

だが、全単語を同時に見る設計には、一つ抜け落ちるものがある。語順だ。「犬が人を噛む」と「人が犬を噛む」は、同じ単語の集合だが意味は正反対。順番に読まないなら、順序情報が失われてしまう。

これを補うのが位置エンコーディング(Positional Encoding)だ。各単語のベクトルに、「文中の何番目か」を表す位置情報を足し込む。単語の意味(embedding)に、位置の情報を重ねるのだ。

入力i⃗=embedding(単語i)⃗+位置(i)⃗\vec{\text{入力}_i} = \vec{\text{embedding}(\text{単語}_i)} + \vec{\text{位置}(i)}

これにより、Transformerは「全体を同時に見る」利点を保ちつつ、「順序」も理解できる。全テーブルを一望しながらも、「入店順」を把握しているホール責任者と同じだ。


マルチヘッド — 複数の視点で同時に注目する

もう一つの工夫がマルチヘッド Attentionだ。注目の仕方を一種類に限らず、複数の「注意の頭(ヘッド)」を並列に走らせる。

あるヘッドは「文法的な関係(主語-述語)」に注目し、別のヘッドは「意味的な関係(代名詞の指す先)」に、また別のヘッドは「隣接する単語」に注目する——というように、異なる観点から同時に文を分析する。それらを統合することで、豊かな文脈理解が生まれる。

料理人が味を見るとき、甘さ・塩気・食感・香りを別々の感覚で同時に評価し、総合するのに似ている。単一の視点より、複数の専門的な視点を束ねる方が、はるかに精密だ。

Transformerは、この「マルチヘッドSelf-Attention」と、第19章で見た通常のニューラルネット層(+活性化関数)を何十層も積み重ねて作られる。層を経るごとに、単語の理解は浅い文法から深い意味へと洗練されていく。


そしてLLMへ — 「次の単語」を予測し続ける

このTransformerを、途方もない量のテキスト(インターネット規模)で、途方もない数のパラメータ(数百億〜数兆)で学習させたものが、大規模言語モデル(LLM)だ。GPT、Gemini、Claude——すべてこの系譜にある。

その学習タスクは、拍子抜けするほど単純だ。「次に来る単語を予測する」。

入力: 「今日はいい天気なので、公園へ」
   Transformerが全文脈にAttentionを張り、次の単語を予測
   ▼
予測: 「散歩」(確率40%), 「行こう」(30%), 「出かけ」(20%)...

第19章で見た通り、予測がずれれば損失を計算し、第18章の勾配降下法でパラメータを調整する。これを天文学的な回数繰り返すうちに、モデルは文法・知識・推論の萌芽までを獲得していく。文章を生成するときは、予測した単語を末尾に付け足し、それを新たな入力としてまた次の単語を予測する——この繰り返し(自己回帰)で、長い文章を紡ぎ出す。

あなたがChatGPTと対話するとき、その裏では——第20章のembeddingで言葉がベクトルになり、位置エンコーディングで順序が刻まれ、マルチヘッドSelf-Attentionが内積で注意を配り(第17章)、それをGPUが超並列で計算し(第16章)、学習済みの重みが次の単語の確率を弾き出している。この21章で解体してきたすべてが、たった一つの「返答」の中で、同時に動いているのだ。


まとめ — 「おまじない」の消し方

  1. 逐次処理を捨てた:RNNの「順番に読む」縛りを断ち、全単語を同時に見渡すことで並列化と長距離理解を両立
  2. Self-Attentionが心臓:各単語が他のどの単語に注目すべきかを、QKVの照合で計算する
  3. その核心は内積:Qと Kの内積(第17章)で注目度を測り、softmaxで重みにし、Vを混ぜる
  4. 位置エンコーディングとマルチヘッド:順序情報を足し込み、複数の視点から同時に文脈を分析する
  5. LLMは次単語予測の巨大化:Transformerを超大規模に学習させ、「次の単語」を予測し続けることで文章を生成する

「ChatGPTはどうやって言葉を紡ぐのか」——その答えは、全体を見渡して注意を賢く配る、一つの機構にあった。


旅の終わりに — 0と1から、知能まで

第1章で、私たちは「0と1は電圧の高低にすぎない」と学んだ。そこから始まった旅は、トランジスタが論理を生み(Part 1)、機械語がメモリの上で踊り(Part 2)、カーネルが幻想を作り(Part 3)、サーバーが大量の要求を捌き(Part 4)、信頼できない世界の上に通信を築き(Part 5)、GPUと数学がAIの土台を据え(Part 6)、そしてニューラルネットが言葉を理解し、注意を配ることで知能の萌芽に至った(Part 7)。

すべては地続きだった。ChatGPTの流暢な返答も、辿れば電圧の高低であり、トランジスタのスイッチであり、内積の足し算だ。魔法は、どこにもなかった。あったのは、先人たちが壁にぶつかるたびに積み上げてきた、単純な仕組みの、気の遠くなるような積み重ねだけだ。

この本の目的は、あなたの中の「おまじない」を消すことだった。もう、ブラックボックスはない。あなたは今、0と1からTransformerまでを貫く一本の線を、自分の目で見ている。ここが終わりではなく、あなた自身が次の一層を積み上げる、始まりであることを願って。

Dive complete. Welcome to the depths.


「十分に発達した技術は、魔法と見分けがつかない。だが、その魔法を一枚ずつ解体し、仕組みとして理解したとき——人はもう、魔法の観客ではない。魔法を書く側に立っている。」