Transformer Block:残差与 LayerNorm 的骨架
本文基于模型知识整理(生成时未联网核对),Block 结构建议对照原论文 §3.1 与 GPT-2/Llama 实现复核。
一句话定义
Transformer Block 是堆叠的基本单元:注意力(混合 token 间信息)→ 残差 → FFN(逐 token 加工)→ 残差,每个子层前/后配 LayerNorm(位置由 kp-007 讨论)——残差连接是信息与梯度的高速路,让几十上百层的堆叠成为可能。
为什么重要
Block 是"可复制粘贴"的容量单元:GPT-3 堆 96 层、Llama-2 70B 堆 80 层——堆叠能成立的全部功劳归残差与归一化。理解 Block 内的信息流(注意力混合、FFN 加工、残差保底),就理解了"深度"在 Transformer 中的含义:每过一层,表示被精化一次。
前置知识
kp-002/003(注意力)、残差网络概念(ResNet 的直觉:恒等捷径)。
核心概念
- Block 公式(Post-LN 原版):
$$x_1=\text{LN}(x+\text{Attn}(x)),\quad x_2=\text{LN}(x_1+\text{FFN}(x_1))$$
- 残差的两大功能:
1. 梯度高速路:反向传播时梯度可直接流过恒等捷径,缓解深层梯度消失(ResNet 的核心遗产); 2. 增量学习:每个子层学的是"对输入的修正量"(残差)而非全新表示——默认什么都不做(输出≈输入),训练稳定。
- 注意力的角色:token 间信息混合(空间维度);FFN 的角色:逐 token 独立加工(通道维度,两层 MLP+非线性,kp-008)——"混合-加工"交替是信息精化的节奏。
- 残差流视角(可解释性):把残差路径视为"信息主干道",每个子层向主干道"读写"信息(加法注入)——可解释性研究(residual stream 框架)的基本图像。
- 堆叠:L 个 Block 串联,输入嵌入(token emb+位置编码 kp-009)、输出经最终 LayerNorm+投影头(词表 logits)。
原理与机制
为什么残差让深度的含义改变:无残差时,每层是对输入的非线性重写——深层信息被反复"覆盖",梯度经连乘衰减;有残差时,第 L 层输出 = 输入 + Σ(各层修正)——信息是累加的,梯度对恒等项直通(偏导≈1)。深度从"重写深度"变为"修正深度"——百层网络因此可训。
为什么"注意力+FFN"是必要配对:只有注意力则 token 间信息混合但无逐 token 的非线性加工(表达能力受限,理论上有"注意力是低通滤波"的分析);只有 FFN 则 token 互不相通。两者交替=「先开会交换信息,再各自消化」的节奏,缺一不可(消融实验:去 FFN 或去注意力都显著掉点)。
LayerNorm 的角色:稳定各层激活的尺度(均值/方差归一)——深度网络中激活尺度漂移是训练不稳定的来源之一;Pre/Post 位置的差异是 kp-007 的专题。
图示
x ─┬─► LN ► Attn ─┐
└──────────────+──► h₁ (残差: x + Attn)
h₁ ─┬─► LN ► FFN ─┐
└─────────────+──► h₂ (残差: h₁ + FFN)
×L 层堆叠 → 最终LN → 词表投影
残差 = 信息主干道 ; 子层 = 向主干道写入修正
直观类比
残差像"文档保留修订痕迹":每一层不重写全文,只在旁边加批注(修正量)——正文永远是"原文+所有批注"的累积,任何一层的信息都可无损追溯。注意力批注是"跨段落引用",FFN 批注是"逐段润色"。
实例或案例
- 规模对照:GPT-2 small(12 层×768)到 GPT-3(96 层×12288)——同一 Block 模板的纯堆叠。
- 去残差实验:移除残差的 Transformer 数层内即训不动——残差是深度的开关。
- 可解释性应用:logit lens(直接读残差流中间状态)——残差流视角的实用产出。
常见误区
- 误区一:"FFN 与注意力必须这个顺序"。顺序可换(有研究互换仍可训);不变的是"每个子层都带残差+归一化"。
- 误区二:"残差只是防止梯度消失的小技巧"。它是"增量式表示学习"的结构承诺——影响信息流、可解释性与训练动力的全方位设计。
- 误区三:"层数越多一定越好"。固定参数预算下深度/宽度有最优配比(缩放定律 kp-015 的分配结论)。
与其他知识点的关系
自测题
- 写出 Post-LN Block 的公式并指出残差位置。
答:x₁=LN(x+Attn(x));x₂=LN(x₁+FFN(x₁))——残差在 LN 之前相加。
- 为什么说残差让"深度=修正深度"?
答:输出=输入+各层修正之和(累加而非重写);信息可无损追溯,梯度经恒等路径直通。
- 注意力与 FFN 在 Block 中各自负责什么?
答:注意力做 token 间信息混合(序列维度);FFN 做逐 token 独立非线性加工(通道维度)——混合与加工交替。
延伸阅读
- He 等, "Deep Residual Learning"(2015,残差源头)。
- Elhage 等, "Transformer Circuits"(残差流框架)。
- Xiong 等, "On Layer Normalization in the Transformer Architecture"(2020,Pre/Post-LN,kp-007)。