大きな画面での利用をおすすめします — アニメーションと操作がより快適になります。
入力

Transformer ブロック

Transformer ブロックは自己注意と位置ごとの順伝播ネットワークで token ベクトル列を更新します。本課は pre-norm で、各サブレイヤーの前に正規化し、出力を残差ストリームへ加えます。

共有の草稿へ修正を足すイメージです。注意が文脈の修正、FFNが各位置の修正を書き、次のブロックへ渡します。入力は展開した和に明示的な項として残りますが、後の修正は打ち消しもできます。スキップ接続だけで可逆な情報保持を保証はしません。

残差ストリームの二更新

残差ストリームは各 token のベクトルを持ちます。

  1. 正規化したコピーで注意を計算し Δ_attn を得て、x = x + Δ_attn。
  2. 再び正規化し、二層フィードフォワードネットワークで拡張、ReLU、元次元へ縮小して Δ_ffn を得て、x = x + Δ_ffn。

このブロックでは注意が token 間を混合し、FFNは同じ関数を各位置に独立に適用します。

x = x + attention(norm(x))

x = x + ffn(norm(x))

h = embed(tokens) + positional
for _ in range(num_layers):
    h = block(h)

N ブロック後は x_N = x₀ + Σ Δ で、各 Δ 自体も前状態に依存します。pre-norm は一般的な選択です。2017 年の元構造は加算後の正規化なので、同じ未変換の累積和では表せません。位置加算も一例で、相対位置や回転を使うモデルもあります。

ステップ実行

既定は by the river bank の bank、三ブロック、残差オンです。手設定の四次元を「地理、金融、機能語、bank の識別」と読みます。教材の意味づけで、実モデルの座標の共通名ではありません。

  1. 入力:x₀ = [0.3,0.3,0,1.0]。最初の二成分は曖昧で、第 4 に識別信号があります。
  2. ブロック 1 の注意:river を多く参照し、修正約 [0.7,−0.3,−0.2,0] を足して [1.0,0.0,−0.2,1.0]。第 4 は 1 です。
  3. ブロック 1 の FFN:約 [0.3,−0.1,−0.2,0.2] を足し [1.3,−0.1,−0.4,1.2]。
  4. ブロック 2:正規化、注意、加算、FFN、加算を繰り返し、約 [2.3,−0.6,−0.6,1.4]。
  5. ブロック 3:約 [3.4,−1.2,−0.8,1.5]。地理成分は 0.3 → 1.3 → 2.3 → 3.4、識別成分は 1 付近です。
  6. 和の確認:入力と六修正、各ブロック二項の和です。深さマップはこの和を描きます。スレート色の x₀ リボンは右端まで途切れず、各ブロックの緑の棒はそこまでに加わった補正の大きさ(‖stream − x₀‖)に応じて伸びます。補正が上に積み重なり、入力は下に残ったままです。

Residual を切ると x = x + Δ が x = Δ になり、明示的な入力加算を失います。深さ 6 の本例では、x₀ リボンは入口で切れ、各ブロックの小さな赤い棒は最新の出力の大きさだけを示し、最後の小修正が主に残ります。ただし修正も入力の関数であり、式に x₀ + がないだけで全入力情報の消滅は証明できません。

残差が役立つ理由

スキップは明示的な恒等経路を設け、x+F(x) のヤコビ行列は I+J_F です。深い最適化を助けますが、合計導関数は相殺・縮小・増幅もありえます。勾配消失を必ず防ぐわけでも、非残差ネットワークが必ず記憶を失うわけでもありません。

本例でオフにしても正規化がサブレイヤー入力を整え、長さは約 0.4 にとどまり、ゼロへ落ちません。しかし最後の修正の尺度であり、教材の識別情報は弱まります。ノルムと内容は別の量で、正規化とスキップは代替できません。

一ブロックでは本例の差は小さいものの、残差は一つでも影響しえます。深さの効果はパラメータ、訓練、課題次第です。本課は学習しないので、全深ネットワークの学習量をこの対照から予測しません。

境界ケース

  • 一ブロック:選んだ例の差が小さいだけで、残差が無効とは示しません。
  • FFN は語を混ぜない:位置ごとに同関数を独立適用し、このブロックの語間交換は注意です。
  • 安定した大きさ:残差なしでも長さは保て、識別情報の保持とは別です。
  • 重み共有:本課は手設定の重みを全ブロックで共有します。多くの実モデルは層別に学習しますが、共有構造もあります。
  • 順序:位置を含まない注意は置換同変です。+ positional は一方法で、実モデルでは注意スコアや Q/K 回転へ入ることもあります。

よくある間違い

  • 加算なら原情報を必ずそのまま残すと思う。恒等項はありますが修正で既存成分を打ち消せます。
  • ブロックを注意だけと考え、FFN、残差、正規化を落とす。
  • 残差を速度の工夫だけと考える。情報・勾配経路を変える助けですが、全モデルの必要十分条件でもありません。
  • 正規化と残差を同じものと扱う。一方は尺度、他方は恒等経路です。
  • 多く重ねれば必ず改善と思う。本課は状態更新機構で、学習や課題性能の測定ではありません。

モデルの範囲

四次元、単一ヘッド、小 FFN、ブロック間で手設定重みを共有し、正規化は成分別でなくラベル付き段階として表示します。実モデルのヘッド数、次元、FFN 幅、活性化、dropout、共有、深さ、位置機構は多様です。エンコーダ、因果マスク付きデコーダ、エンコーダ–デコーダを分けず、pre-norm 出力を残差ストリームへ足す機構を示します。