第4章 — Transformer アーキテクチャ
LLM Primer I: How Generative AI Works を章ごとに紹介するシリーズ、第4回です。前回は、Self-Attention がなぜ言語に対する主流アーキテクチャの座を Recurrence(再帰)から奪ったかを確認しました。今日は、その Self-Attention を「気の利いたアイデア」から「現代のあらゆる LLM の土台」へと押し上げた、具体的な設計 — Transformer 本体 — を、一緒に開いてまいります。
Transformer は「スタック」である
Transformer を語るうえで、まず押さえておきたいのは「モジュラーである」ということ。アーキテクチャの実体は、1種類のビルディングブロック — Transformer 層、あるいは Transformer ブロックと呼ばれるもの — を、ひたすらスタックとして積み重ねたものです。現代のLLMでは、これが 32 〜 100 層以上、上にどんどん重なっている。内部構造はどの層もまったく同じで、変わるのは「各層が学習で何をできるようになったか」だけです。
このスタックは、いわば「精製パイプライン」。下のあたりの層はトークンの素性や基本的な構文関係といった低レベルのパターンを、中ほどは句単位の意味、参照関係、ちょっとした推論といった、もう少し抽象的な構造を、上のほうは全体のトピックやトーン、タスクの枠組みといった、かなり抽象的な関係を扱う傾向があります。テキストがスタックを通り終わるころには、それぞれのトークンが、入力全体から拾ってきた文脈で豊かに上書きされている、というイメージです。
ブロックの中身: Attention と Feedforward
各 Transformer ブロックには、主要な部品が2つあります。1つ目は Multi-Head Self-Attention。複数の Attention 計算を並列に走らせ、それぞれが違う種類の関係に注目するように学習されていきます。あるヘッドは主語と動詞の一致を追い、別のヘッドは「どの代名詞がどの名詞を指しているか」を追い、また別のヘッドは話題の一貫性を追う、といった具合に。誰かが「お前はこれを学べ」と仕込んだわけではなく、学習の副産物として、こうした役割分担が自然と立ち上がります。
2つ目は Feedforward ネットワーク。各トークンを個別に処理する、ごく普通の小さなニューラルネットです。Attention がトークン間で情報を混ぜ合わせたあと、ここで各トークンの豊かになった表現に、もうひと押しの変換を加える。役割としてはそんなところです。
この2つは、安定性のための工夫 2つ — 残差接続と層正規化 — で包まれます。残差接続は、情報が各部品を迂回して前へ流れる「抜け道」を作り、層正規化は深いスタックでも数値が暴れない範囲に保つ。これらがないと、LLM 規模の深さでは学習がそもそも収束しません。
Self-Attention、もう少しだけ正確に
第4章では、Self-Attention にふさわしい丁寧さ — 数式を含めて — で扱いますが、直感のレベルでも十分に語れます。各トークンが、Query、Key、Value という3つのベクトルを発するわけです。Query は「自分は何を探しているか」、Key は「自分は何を表しているか」、Value は「役に立つと判断されたら、何を差し出すか」を表します。
Attention の実体は、各トークンの Query を、他のすべてのトークンの Key と突き合わせて、類似度スコアの行列を作ること。それを softmax で合計が1になる重みに変え、各トークンの新しい表現を、すべての Value の重み付き和として書き換える。式に落ちれば、数行の行列演算で済んでしまう操作です。
本書は、この計算を6行ほどのコードスケッチとしてもお示しします。式だけだと「いまひとつピンと来ない」読者でも、コードで見ると一発で像が結ぶ、ということがよくあるからです。次元の平方根でスケーリングする理由、softmax を挟む理由、Query/Key/Value を別物として扱う理由まで、ひとつずつ「なぜそうしているのか」を解いてまいります。
モデルは「語順」をどう知るのか
Self-Attention には、無害そうに見えて実はそうでもない性質があります。そのままでは「順序」を符号化しないのです。数学的には、文は順序のないトークンの集合のように見えてしまう。手当をしなければ、「犬が人を噛む」も「人が犬を噛む」も、モデルにとっては同じものになってしまいます。
これを救うのが位置エンコーディング。各トークンに「列のどこにいるか」の情報をタグ付けします。元の Transformer は、異なる周波数のサイン波・コサイン波を使う巧妙な工夫で対応していました。最近のバリエーションでは、学習済みの位置 Embedding や、RoPE(Rotary Positional Embedding)といった手法で、長いコンテキスト長もスマートに扱います。細部は違っても、原理は同じです。
Encoder か、Decoder か、それとも Decoder だけか
初期の Transformer 研究は、3つのバリエーションを生みました。BERT のような Encoder のみのモデルは、テキストを読んで深い表現を作るのが得意で、分類や Embedding 生成、検索などに向きます。GPT のような Decoder のみのモデルは、1トークンずつ生成することに特化していて、いわゆるチャット系のLLMの多くがここに属します。Encoder–Decoder モデルは両方を組み合わせ、Encoder で入力を消化し、Decoder で出力を生成する。翻訳や、構造化されたタスクで活躍するタイプです。
今、消費者向けのAI市場で主役になっているのは、Decoder のみのモデルです。プロンプトの読み取りと応答の生成を、同じ機構でまとめてさばけるからです。とはいえ、用途に合わせてモデルを選ぶ局面では、この区別はいまも有効。本書ではそれぞれの型が「いつ正しい道具なのか」を整理してまいります。
スケールの物語、そしてなぜ機能するのか
第4章の締めくくりは、Transformer のスケーリングの話。パラメータ、学習データ、計算資源を、調整した比率で同時に増やしていくと、モデルの性能は驚くほど予測どおりに改善していきます。「スケーリング則」と呼ばれるこの経験則が、ここ数年の巨額の投資を正当化してきました。ある範囲内では、Transformer のパラメータを倍にすると損失がだいたい半分になる。あまりに一貫しているので、学習を始める前から性能を予測できてしまうほどです。
本書はその一方で、スケーリング則が「教えてくれないこと」も丁寧に書きます。創発的に見える能力の正体、追加スケールの限界効用、「大きいほど良い」という単純なナラティブが壊れる場面。現代のフロンティア開発の中心は、もはや力技ではなく、データ品質、Mixture-of-Experts のような構造的トリック、賢い学習レシピへと移っております。その話は、後の章でじっくり扱ってまいります。
第4章を通して、得られるもの
第4章を読み終えるころには、現代のLLM論文や技術発表を読んで、それぞれの主張を適切な位置に置けるようになっているはずです。Transformer ブロックの構成要素、それぞれがそこにある理由、設計が「表現力と効率のあいだ」のどこに線を引いているか — 一通り見えてくる。残りの本は、ここを再解説せず、前提として進んでまいります。
次回 — 第5章: 大規模モデルの学習。 アーキテクチャを実際にどう学習させるか、その現場を覗いてまいります。データはどこから来るのか、どんなハードウェアが回しているのか、最適化のプロセスは実務でどう見えるのか、そしてフロンティアモデルの学習が、なぜ「数か月」と「数億ドル」を要するようになったのか。