第6章 — Transformer ブロック
『LLM Primer II: 数学で読み解く言語モデル』を章ごとに紹介していくシリーズ、第6回です。今回は Attention 1 層からひと呼吸引いて、Transformer ブロック全体を眺めなおします。そして「このブロックを積んだとき、いったいどんな関数まで届くのか」という、もう少し奥の問いに踏み込んでまいります。
この章の問い
第4章と第5章で、Attention と位置をそろえました。これは Transformer ブロックの、ちょうど半分にあたります。もう半分 — フィードフォワード(FFN)層 — は世間の記事では脇に置かれがちですが、それはちょっともったいない扱いかと思います。Attention だけで組んだ Transformer は、思いのほか非力な計算機です。FFN こそが、各ブロックに芯の通った力を与えています。
第6章は、その対を原理から組み立て直し、そのうえでもう一歩奥の問いを置きます。このブロックを積み上げたとき、どんな関数まで表現できるのか。答えは、安心させるところと、すこしだけ驚かされるところが、両方そろっています。
6.1 Transformer のなかのフィードフォワード網
Transformer ブロックのなかにある FFN サブ層は、ごく小さな2層ニューラル網です。トークンごとに独立に作用します。一段目で広い次元へ線形に持ち上げ、非線形を一回かけ、二段目でまた線形に戻してくる。それだけです。
6.1 節では、次元の取り方を丁寧に追いかけます。内側の次元は、モデル次元の4倍にされることが多い。この比率は魔法ではなく、表現力と計算量のあいだの、経験的に何度も確かめられたほどよい折り合いです。章のなかでは、それぞれの行列がなにをしているのか、なぜトークン単位ではなく系列単位ではないのか、そして FFN が第4章で出会った残差ストリームとどう交わるのかを、ひとつずつ確かめてまいります。
6.2 活性化関数と非線形性
6.2 節は短いのですが、置き方が大事です。FFN のなかの非線形 — かつての ReLU、最近の GELU や SwiGLU — は、線形の積み重ねが別の線形にならないようにするための、ささやかだけれど決定的な一手です。
節のなかでは、その理由を導出します。非線形がなければ、2つの線形層を重ねても結局1つの線形層と等価で、ネットワークは数学的にはロジスティック回帰以上の力を持てません。非線形がひとつ挟まるだけで、原理的には微分可能な関数の宇宙全体が射程に入ります。どの非線形を選ぶかは、学習の動き方、勾配の通り方、最終的な品質に影響しますし、章のなかでは、なぜ歴代の流行が次々に置き換わってきたのかを、控えめに追いかけてまいります。
6.3 なぜ「Attention + FFN」が効くのか
6.3 節は、章のなかで少しだけ野心的な節です。Attention と FFN は、たまたま隣り合って便利な2つのモジュール、ではなく、深いところで補いあう関係にある、というお話を試みます。
Attention は、トークン表現の構造化された加重平均を計算します。それ自身では、任意の非線形変換はできません。FFN は、1つのトークンに対して任意の非線形変換を施せますが、トークンのあいだで情報を行き来させることはできません。Attention と FFN を層ごとに交互に置くと、両者は役割を交換しあって、できあがったブロックは単独のどちらよりも、ぐっと表現の幅が広がります。
章のなかでは、これを小さな例で素描してみました。素の Attention では原理的に解けない課題、素の FFN では原理的に解けない課題、そして両者を組ませたブロックがどちらにも届く様子 — そのあたりを、ささやかに並べてあります。
6.4 Transformer の表現力
6.4 節は、この問いを数学的な結論まで運びます。Transformer ブロックを積み重ねたとき、近似できる関数のクラスはどこまで広がるのか。
節のなかでは、文献の主な結果をひととおり辿ります。適当な条件のもとで、十分に深い Transformer は系列から系列への普遍関数近似器になる、というのが大筋です — くだけて言えば「気長に与えれば、計算できるものは何でも計算できる」というお話です。証明は技巧的ですが、章のなかでは直観をほどいてあります。Attention が経路を、FFN が計算を担い、その積み重ねは事実上どんなアルゴリズムでも実装しうる、という構図です。
この結果は、軽やかに抱えておいていただきたい類のものです。普遍近似は「原理的に可能」を語ってくれますが、「実際に学べる」「効率がよい」「汎化する」については何も語りません。拙著では、その境界線を踏み外さないよう気をつけたつもりです。
6.5 深さ、幅、そして普遍近似
章の結びには、技術者が必ずぶつかる現実的な問いを置きました。計算予算が決まっているとき、深くて細いモデルを組むか、浅くて広いモデルを組むか。
6.5 節では、その天秤の数学を並べます。幅は層内の表現力を買ってくれます。次元が増えれば、トークンが情報を畳み込んでおける方向が増える。深さは合成を買ってくれます。各層は前の層が用意したものをさらに磨ける。両者にはトレードオフがあり、文献はおおむね、両者を釣り合わせる形へと収束してきました。章のなかでは、第8章で出会うスケーリング則が最適な形状について何を含意するのか、そして計算が安くなるにつれてその答えがどう動いてきたのかを、控えめに追いかけてまいります。
この章を踏まえて
第6章を読み終えるころには、Transformer ブロックの全体像 — Attention、FFN、残差、正規化 — がそろい、それをいくつも積むことで数学的に何が手に入るのか、感触が残っているはずです。ここから第II部は、これらのブロックが実際のハードウェアに出会うとき、何が起きるのかという1章を残すのみとなります。
次回 — 第7章: 効率と Transformer の派生。 Attention は系列長について O(n²) です。現代の長文脈ではこれが効いてきます。GPU のメモリとスループットの数学をたどり、FlashAttention を原理から導出し、マルチクエリ、低ランク、ゲート付きといった派生たちを、控えめに見渡してまいります。