Transformer ブロック
Transformer ブロックは自己注意と位置ごとの順伝播ネットワークで token ベクトル列を更新します。本課は pre-norm で、各サブレイヤーの前に正規化し、出力を残差ストリームへ加えます。
共有の草稿へ修正を足すイメージです。注意が文脈の修正、FFNが各位置の修正を書き、次のブロックへ渡します。入力は展開した和に明示的な項として残りますが、後の修正は打ち消しもできます。スキップ接続だけで可逆な情報保持を保証はしません。
残差ストリームの二更新
残差ストリームは各 token のベクトルを持ちます。
- 正規化したコピーで注意を計算し
Δ_attnを得て、x = x + Δ_attn。 - 再び正規化し、二層フィードフォワードネットワークで拡張、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 の識別」と読みます。教材の意味づけで、実モデルの座標の共通名ではありません。
- 入力:
x₀ = [0.3,0.3,0,1.0]。最初の二成分は曖昧で、第 4 に識別信号があります。 - ブロック 1 の注意:river を多く参照し、修正約
[0.7,−0.3,−0.2,0]を足して[1.0,0.0,−0.2,1.0]。第 4 は 1 です。 - ブロック 1 の FFN:約
[0.3,−0.1,−0.2,0.2]を足し[1.3,−0.1,−0.4,1.2]。 - ブロック 2:正規化、注意、加算、FFN、加算を繰り返し、約
[2.3,−0.6,−0.6,1.4]。 - ブロック 3:約
[3.4,−1.2,−0.8,1.5]。地理成分は0.3 → 1.3 → 2.3 → 3.4、識別成分は 1 付近です。 - 和の確認:入力と六修正、各ブロック二項の和です。深さマップはこの和を描きます。スレート色の
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 出力を残差ストリームへ足す機構を示します。
続けて学ぶ
同じ手法につながるレッスンや、次の概念への入口です。
鍵マークのあるレッスンの操作には有料アクセスが必要です。解説はすべて無料で読めます。
誤りや気になる点を見つけましたか? フィードバックを送る。