チャプター 05 · アーキテクチャ · 14 min
Transformerの全体像
ピースを組み合わせる:マルチヘッドアテンション、フィードフォワード、正規化、残差接続。
すべてはこのために
これでパズルのピースがすべて揃った:
- テキストがトークンになる(第2章)。
- トークンが意味の空間のベクトルになる(第3章)。
- アテンションが各ベクトルに他のベクトルを見て自己再構成させる(第4章)。
残るのは、これらのピースを完全なモデルに組み立てる方法の理解だ。答えはエレガントなほどミニマリスト:積み重ねるだけだ。
基本ブロック
現代のトランスフォーマーは同じ小さなブロックをN回繰り返したものだ。このブロックは2つのサブモジュールを含む:
- マルチヘッドアテンション層——トークンが互いに通信できる。
- フィードフォワードネットワーク(FFN)——非線形性で区切られた2つの線形変換——各トークンを独立して変換する。
これら2つのサブモジュールの周りに、2つの固定構造がある:
サブブロックにマウスを重ねるとその役割が見える:Attention はトークン間で情報を拡散し、Feed-Forward はそれを局所的に変換し、正規化と残差は全体を安定化させる。これを 32 回または 96 回積み重ねると GPT-4 や Claude になる。
残差接続がすべてを変える理由
これはおそらく10年間で最も重要なアーキテクチャのトリックだ。残差接続なしで96の連続したブロックを積み重ねることは、96の連鎖した変換を通じてシグナルを通過させることを意味する。勾配(学習シグナル)は各パスで薄まる。数層後には、学習するものが何も残らない。
残差接続があれば、ブロックは全変換ではなく修正を学ぶ:output = input + f(input)。元のシグナルはネットワーク全体を常にそのまま通過し、各ブロックはそれを少し豊かにする。
残差なしでは、深いトランスフォーマーは訓練できない。残差があれば、100層以上積み重ねても問題ない。
FFN、忘れられた半分
アテンションについてはよく話される。2倍のパラメータを含むFFNについてはあまり話されない。
各層で、アテンションの後、各トークンはMLPを通過する:
FFN(x) = Linear_2(GELU(Linear_1(x)))
Linear_1はベクトルを4倍広い中間次元に射影する(GPT-2 smallでは通常4 × 768 = 3072)。Linear_2は元の次元に戻す。この拡張してから収縮させる過程で、モデルの事実知識の大部分——固有名詞、学習された関連性、繰り返しパターン——が格納される。
モデルの「750億パラメータ」について話す時、大部分はFFNに存在する。
位置と因果性
まだ言及していない2つの詳細:
位置エンコーディング。 アテンションは置換不変だ——文章のトークンをシャッフルしても、アテンションは同じ結果を返す(シャッフルされるだけで)。それは求めていない。LLMが「猫が魚を食べる」と「魚が猫を食べる」が異なることを知るために、各埋め込みベクトルに位置情報を注入する(位置エンコーディング、RoPE、ALiBi……)。今日、RoPE(回転位置埋め込み)が標準だ。
因果マスク。 第4章で見たように、生成モデルでは各トークンは先行するトークンしか見られない。因果マスクはアテンション行列に適用される——ソフトマックスの前に将来の位置が−∞に設定される。これがモデルにコピーではなく予測を強制する。
何ブロックが必要か
GPT-2からGPT-4まで、アーキテクチャは同じだ。変わるのはスケール:
| モデル | ブロック数 | 次元 | ヘッド数 | パラメータ数 |
|---|---|---|---|---|
| GPT-2 small | 12 | 768 | 12 | 117M |
| GPT-2 XL | 48 | 1600 | 25 | 1.5B |
| GPT-3 | 96 | 12288 | 96 | 175B |
| Llama 3 70B | 80 | 8192 | 64 | 70B |
ブロックが多い=より多くの合成的推論が可能(各層が前層の抽象化の上に構築できる)。次元が大きい=各トークンの容量が多い。ヘッドが多い=より多くの同時「質問」。
出力:ベクトルから分布へ
この段階で、最終ブロックは各位置について数千次元のベクトルを返してくれる。これをどうやって語彙上の分布に戻すのか?
ステップは1つだけだ。このベクトルに (d_model × |vocab|) の次元を持つ行列 W_out を掛け、ソフトマックスを適用する。結果:各位置について、語彙の約5万個のトークンに対する確率分布が得られる。これがLLMの出力だ——分布である。
エレガントなディテール:ほとんどのモデルでは、W_out は入力の埋め込み行列と重みを共有している(weight tying)。トークン5234をベクトルに写す変換が、逆向きに動かせば、ベクトルをトークン5234の確率に写すのだ。パラメータの節約になり、汎化性能も向上する。
Mixture of Experts:すべてのパラメータが発火するわけではない
最近のモデルで支配的になったアーキテクチャのバリアントがある:Mixture of Experts(MoE)。Mixtral、DeepSeek、Llama 4、GPT-4、Gemini——すべて採用している。
アイデア:ブロックごとに単一のFFNを置く代わりに、複数を並列に配置する(典型的には8〜128個のエキスパート)。各トークンに対して、小さなルーティングネットワーク(ルーター)が2〜4個を選択する——そのトークンに最も関連性の高いものを。それらのエキスパートだけが発火する。
結果:モデルは「総計」4000億パラメータを持っていても、トークンあたりわずか500億しかアクティブにしない可能性がある。大きなモデルの容量、小さなモデルの計算コスト。 これがMixtral 8×7B(470億パラメータ)を、はるかに大きな密なモデルと推論時に競争力を持たせている理由だ。
トレードオフ:VRAMはすべてのエキスパートを収容しなければならない(さもなくばスワップする必要がある)し、ルーティングは訓練に不安定さの層を加える。今も活発な研究領域だ。
シンプルさという奇跡
この建造物全体は、繰り返され、正規化され、自己に加算される単一のパターンに依拠している。文法のための特定の構造はない。意味論のための分離したモジュールもない。ハードコードされた言語規則もない。
トランスフォーマーは言語について何も知らない。ただ、誰が誰に似ているかを見ながらベクトルを混ぜる方法を知っているだけだ。
すべての複雑さは訓練から出現する——それが次の章のテーマだ。
更新日