同一个 block,LayerNorm 放在残差相加之后(Post-LN)、模块输入之前(Pre-LN),还是模块两端各一次(Peri-LN),会改变前向方差与反向梯度。
QK-Norm 则把归一化推进 attention 内部,直接压住 q·k 的 logits 尺度。
本页按五篇原文核对公式、放置、规模实验与各自的失败条件,并用一个可手算的残差链示意解释三种放置的取舍。
Post-LN 是原始 Transformer 的写法:y = Norm(x + Module(x))(Vaswani §3.1)。相加发生在 Norm 里面,前向方差被压住;代价是反向梯度每层都要穿过 LN。
原始配方用 4000 步 warmup;Xiong et al. 把 warmup 的必要性归因到初始化时输出端附近的梯度尺度(§3.3)。
Pre-LN 把 Norm 挪到模块入口:y = x + Module(Norm(x)),并在预测前加 final LN。残差干道变成恒等路径,warmup 可以去掉;但模块输出未经归一化就进入干道,方差会在训练中累积。
Peri-LN 再在模块输出上加一次 Norm,把乘法增长改成加法增长(§3.3, Eq. 4)。
QK-Norm 是另一条轴:它不碰残差干道,只在 softmax 前压住 q·k。Henry et al. 用 ℓ2 normalization + 可学习温度 g;ViT-22B 用 LayerNorm 处理 q、k。
没有 QK normalization 时,ViT-22B 在 8B 模型上看到 attention logits 增长到 50000 以上,softmax 接近 one-hot(Appendix B)。
下面的数字卡分别标出 Post-LN 的 warmup 成本、去掉 warmup 后的 BLEU 损失,以及 Peri-LN 在 3.2B 规模上的平均分。三种残差放置与 QK-Norm 的口径不同,不能把某一组的增益直接搬到另一组。
先分清两件事:残差干道跨层累积什么,attention 内部的 logits 又由什么控制;Post/Pre/Peri 改的是前者,QK-Norm 改的是后者。
一个 Transformer block 由 attention 和 FFN 两个子层组成,每个子层都带一条残差连接。把 LayerNorm 放在 residual add 之前、之后,还是在模块输出上再加一次,是三种不同的计算图;公式只差括号的位置,但括号决定了哪一段被归一化、哪一段保持裸露。
Post-LN 写成 y = Norm(x + Module(x))(Vaswani §3.1;Peri-LN §3.1, Eq. 1)。相加发生在 Norm 里面,所以每个 block 的输出在进入下一层前已经被归一化;跨层残差干道携带的是归一化后的状态,未归一化的和只存在于 block 内部。
容易记反的一点是:Post-LN 的残差干道并不跨层累积未归一化和,真正把未归一化模块输出留在干道上的是 Pre-LN。Post-LN 的代价在反向:主干梯度每层都要穿过 LN。
Xiong et al. 的均值场分析给出,初始化时最后一层 FFN 权重的梯度上界是 O(d√ln d),不随层数 L 下降(§3.3, Theorem 1);实验中 6–14 层 Post-LN 的该梯度范数维持在 1.6 左右(Figure 3)。
这也解释了原始 Transformer 为什么需要 warmup:没有 warmup 时,IWSLT14 De-En 的 BLEU 只有 8.45,有 warmup 时约 34(§3.2)。
Pre-LN 写成 y = x + Module(Norm(x)),并在预测前加一次 final LN(Xiong Table 1;Peri-LN §3.1, Eq. 2)。LN 只碰模块输入,残差干道是恒等路径;模块输出未经归一化就直接加进干道。
初始化时方差大致随深度线性增长,训练开始后可能转为指数增长(Peri-LN §3.2, Figure 1)。论文的措辞是:一旦参数更新放大了输入,Pre-LN 的 hidden-state variance 会指数累积。
大激活因此可以沿残差路径一路保留到深层;在 3.2B 模型上,Pre-LN 的 top-100 绝对激活在 0.5B token 左右就超过 FP16 上限 65,504(§7.2, Appendix K)。
QK-Norm 是另一条轴。即使残差干道稳定,attention 内部的 q·k 仍可能变大;softmax 只看差值,logits 一大就接近 one-hot。
Henry et al. 给了一个可手算的例子:softmax([760,752,750]) = softmax([12,4,2]) = [0.99962, 0.00034, 0.00005](§3)。
ViT-22B 在 8B 模型上观察到,没有 QK normalization 时 attention logits 会增长到 50000 以上,softmax 变成 one-hot;同一段落还报告,loss 在 2000 步内开始持续上升(Appendix B)。
所以「归一化放哪」不是一个问题,而是两个:残差干道要不要在跨层时被压住,attention logits 要不要在 softmax 前被压住。Post/Pre/Peri 回答第一个,QK-Norm 回答第二个;把两者混为一谈,就会把某一处的收益错记到另一处。
三条路线各自解决了上一节的一个失败模式,但都没有同时处理「残差方差」和「logit 尺度」;Peri-LN 是把第三种植入方式补上分析。
原始 Transformer 的每个子层都是 Norm(x + Sublayer(x))(§3.1)。前向方差被压住,但优化依赖 warmup:原文用
4000 步线性 warmup,Adam 的 β2 设为 0.98(§5.3)。
Xiong et al. 后来把这种依赖归因到输出端附近的梯度尺度(§3.3)。
把 LN 挪到模块输入,残差路径保持恒等;预测前再加 final LN(Table 1)。论文证明初始化时 Pre-LN 的梯度尺度不随深度放大(Theorem 1),并在 IWSLT14、WMT14、BERT 上验证 warmup 可以去掉(§4)。 代价是模块输出未经归一化就进入残差干道。
Henry et al. 把 q、k 在 head 维上做 ℓ2 normalization,用 cosine similarity 替代 dot product,再乘一个可学习的 g;
g 初始化为 log2(L² − L),L 取训练集序列长度的 97.5 百分位(§3)。
ViT-22B 改用 LayerNorm 处理 q、k,再除以 √d(§2)。两者都只改 attention 内部。
Gemma、OLMo 等开源模型已经在模块输出上加 LN,但缺少统一分析;Peri-LN 把这种做法命名为「模块周围」的归一化,写成
y = x + Norm(Module(Norm(x)))(§3.3, Eq. 3)。它保留 Pre-LN 的直通残差,同时把模块输出先压住再汇入。
三条残差路线并不是互斥的标签:Post-LN 把 LN 放在主路径上,Pre-LN 把它放在模块分支上,Peri-LN 在模块分支的两端各放一个。QK-Norm 则可以和其中任何一种叠加,因为它不碰残差干道。 下一节的公式只差括号位置,但括号决定了哪一段被归一化。
记住每条公式里 Norm 作用在哪一段:Post 作用于「x + 模块输出」,Pre 只作用于模块输入,Peri 作用于模块输入和模块输出。
三者的差别可以压缩成一句话:Post-LN 归一化「和」,Pre-LN 归一化「输入」,Peri-LN 归一化「输入和输出」。 因此 Post-LN 的跨层状态被压回固定尺度,Pre-LN 的跨层状态是「上一层的和 + 未归一化模块输出」,Peri-LN 的跨层状态是「上一层的和 + 已归一化模块输出」。 这也解释了为什么 Peri-LN 的残差干道仍然可能有大值:它没有把整条干道归一化,只是把每层汇入的增量先压了一次(§3.3)。
Henry et al. 的 QKNorm 只处理 q、k,不处理 v:先沿 head 维做 ℓ2 normalization,再做点积,于是每个元素变成 cosine similarity,取值范围是 [−1, 1]。直接用 cosine 值会让 softmax 的差值太小,所以再乘一个可学习标量 g;g 的初始化是
g0 = log2(L² − L),其中 L 是训练集源/目标序列长度的 97.5 百分位(§3, Eq. 3)。
softmax(QKT/√d)V,不是替换 LayerNorm。
这个 g 不是可有可无的温度:去掉它之后,IWSLT'15 en→vi 的测试 BLEU 从 33.24 掉到 24.53(完整 QKNorm 33.24 取自 Table 2,消融行取自 Table 6)。
原因是 cosine similarity 被限制在 [−1, 1],不放大时 softmax 几乎均匀,模型难以把注意力集中到该看的位置;g 把范围拉开,但仍然是可学习的,不会像原始点积那样无界。
QK-Norm 的两个实现共享同一个目标:让 q、k 的点积不被向量范数支配,logits 不会无界增长。Henry 的做法是把向量长度信息完全去掉,再学一个全局温度;ViT-22B 的做法是保留 LayerNorm 后的尺度,再用固定的 1/√d。 两者都不改变残差路径,也不替代 Post/Pre/Peri 的选择。把「QK-Norm」当成一个公式会混淆这两条路线;本页在引用时分别标注。
下面的玩具模型只跟踪一个标量方差 v:每层模块增益为 k,Post 把 v 压回 1,Pre 把模块输出按 (1+k) 乘进干道,Peri 在模块输出上加一次归一化、每层只加 1。
拖动层数 L 与增益 k,观察末态方差与「幅度雅可比」G。G 是这条标量递推的导数,不是论文的梯度范数;它的作用是让三种放置的取舍可以被手算。
这里的 v 是标量方差示意,不是 hidden state 的真实维度;参数由页面自定,默认值 L = 4、k = 0.5 对应下面手算的组 A;数值由页面参数计算,非原文数字。
组 A:L = 4,k = 0.5
组 B:L = 3,k = 1.0
JS 只做乘加与幂,显示固定 4 位小数;上面两组参数在页面上切换后逐位一致。这个递推是页面自定的简化示意,依据是 Peri-LN §3.2/§3.3 对 Post「常数方差」、Pre「乘法累积」、Peri「加法累积」的描述; 它不复现 Xiong 的梯度定理,也不含 attention 的 QK logits。
覆盖:三种放置对残差干道的标量方差递推——Post 归一化相加结果、Pre 不归一化模块输出、Peri 归一化模块输出;层数 L 与模块增益 k 对末态方差和幅度雅可比的影响。
未覆盖:真实的 LayerNorm/RMSNorm Jacobian;attention 与 FFN 两个子层的区别;Post-LN 的 warmup 与优化器;Pre-LN 训练中方差从线性转为指数的完整动力学;QK-Norm 的 logits 与 softmax;embedding/final LN;多头与 head 维。
因此它是简化示意,不是原文公式的数值还原。论文的梯度结论见 §3.3 的 Theorem 1、§3.4 的 Figure 3;本交互的 G 只是标量递推的导数。
这一节把「为什么需要 warmup」「为什么 Pre-LN 也会不稳定」「Peri-LN 多花一次归一化买到什么」拆成可核对的量与条件。
这两个上界解释了一个反直觉现象:Post-LN 在初始化时的输出端梯度更大,却需要更小的学习率;Pre-LN 的输出端梯度更小,却能承受更大的学习率。推断 原因是梯度的绝对尺度不是全部因素,梯度在层间的分布与方差累积同样影响稳定性(依据:Xiong §3.3 Theorem 1;§3.4 Figure 3)。 Xiong 的实验把这件事量化到具体模型:在 6–14 层的 Post-LN 中,最后一层 FFN 的梯度范数维持在 1.6 左右;Pre-LN 的同一量随深度增加而下降(§3.4, Figure 3)。
原始 Transformer 用 4000 步 warmup(Vaswani §5.3)。Xiong et al. 在 IWSLT14 De-En 上做了去掉 warmup 的对照:Post-LN 若直接从较大的学习率开始,BLEU 只能到 8.45;使用 warmup 的模型约 34(§3.2)。 warmup 的长度本身也是敏感超参数:把 Twarmup 设为 500,在 lrmax = 5e-4 与 1e-3 两种设置下,BLEU 分别只有 31.16 与 2.77(§3.2)。 这组数字说明 Post-LN 的 warmup 不是「加上就稳」的装饰,而是会改变最终质量的优化配置。
Pre-LN 的对照则显示 warmup 可以去掉:论文报告 Pre-LN 在 IWSLT14 De-En 上达到约 34 BLEU、validation loss 约 4,与 Post-LN 可比;并且收敛更快——Pre-LN 的第 9 个 checkpoint 就接近 Post-LN 的第 15 个 checkpoint(§4.2)。 这些结论有条件:它们是 IWSLT14 De-En 的特定模型配置,不能直接外推到所有 Pre-LN 训练。
Peri-LN 的关键不是「再多一个 LN」,而是把模块输出先归一化再汇入残差。论文把这一项写成
Norm(Module(Norm(xl))),并假设它的方差近似常数 β0,于是有:
论文进一步给出最后一层 MLP 权重的梯度界(Proposition 3.1,非正式陈述):Pre-LN 的梯度范数正比于 ||h||(Eq. 6);Peri-LN 的界是
4γ√D·||h|| / ||a||(Eq. 8),多了一个由模块输出范数 ||a|| 提供的阻尼因子。也就是说,即使 ||h|| 很大,Peri-LN 的梯度也不会按同样比例放大。
这是局部上界,不是全局收敛证明;论文把形式化陈述与证明放在 Appendix C(§3.4)。
结构上,Post-LN 和 Pre-LN 每个子层各有一次归一化(Pre-LN 另加 final LN);Peri-LN 每个子层两次。论文没有报告这部分带来的吞吐、显存或 FLOPs 变化;Peri-LN §5.3 做了固定 γ=1 与可学习 γ 的对照(可学习 γ 略好);Peri-LN §5.4 讨论 hidden-state redundancy 与模块输出归一化的关系;Peri-LN Appendix L 的 Figure 39(d) 报告固定 γ 后深层主路径贡献下降。 因此「多一次归一化」的代价目前只能从结构上确认,不能给出一个原文没有的开销数字。
ViT-22B 的 QK normalization 是为训练稳定性加的:在 8B 模型上,没有它时 attention logits 会增长到 50000 以上,softmax 接近 one-hot;同一段落还报告,loss 在 2000 步内开始上升(Appendix B)。 加上 q、k 的 LayerNorm 后,模型可以用 1e-3 的学习率稳定训练;而原始 ViT 的做法是随规模把学习率从 1e-3 降到 4e-4(Appendix B)。 这是一个「用归一化换学习率预算」的例子,但它不是单项改动:ViT-22B 同时用了 parallel layers 和去掉 bias 的 LayerNorm(§2)。因此不能把全部收益归给 QK-Norm。推断(依据:ViT-22B §2 的三项改动;Appendix B 的对照只做到 ViT-L。)
Figure 1 的图注写:we observe the growth in hidden-state variance for both Pre-LN and Post-LN architectures(1.5B 模型,训练到 6.3B token)。
§3.2 正文写:Post-LN maintains a roughly constant variance。两处并置:图注把 Post-LN 也纳入了「方差增长」的描述,正文则说 Post-LN 的方差大致恒定。
页面不替原文判断哪一处是笔误,也不把两句话合并成一句。
把每个 block 的计算图摊开,看清哪一段被归一化、哪一段仍然裸露;这张图也解释了为什么 QK-Norm 可以和三种残差放置任意组合。
表 1 · 四种机制各自归一化什么(页面整理;出处见各行)
| 机制 | 归一化对象 | 残差干道 | 主要目标 | 出处 |
|---|---|---|---|---|
| Post-LN | 相加后的和 x + Module(x) |
每层被归一化 | 压住前向方差 | Vaswani §3.1;Peri-LN §3.1 |
| Pre-LN | 模块输入 Norm(x) |
不归一化,恒等直通 | 保持梯度通路 | Xiong Table 1;Peri-LN §3.1 |
| Peri-LN | 模块输入与模块输出 | 不归一化;输出侧先压一次 | 控制方差增长 | Peri-LN §3.3 |
| QK-Norm | q、k(head 维) | 不适用(不碰残差) | 控制 attention logits | Henry §3;ViT-22B §2 |
这张表把「归一化对象」和「残差干道」分开看:三种残差放置的分工不同——Post-LN 把 LN 放在主路径上;Pre-LN 与 Peri-LN 的主路径都不归一化,差别只在汇入残差前有没有把模块输出压一次;QK-Norm 则完全在 attention 内部,和残差路径正交。 因此在实现里,QK-Norm 可以和 Post-LN、Pre-LN、Peri-LN 任意组合;它不是第四种「残差放置」,而是 attention 子层内部的一个额外步骤。
三组实验的口径不同:Xiong 是 IWSLT14 的 warmup 对照,Peri-LN 是 400M–3.2B 的 30B-token 预训练,QK-Norm 是 5 个低资源语言对的翻译;数字不能跨组直接比较。
Xiong et al. 的 IWSLT14 De-En 实验里,Post-LN 去掉 warmup 后 BLEU 只有 8.45;有 warmup 时约 34。 warmup 长度从 4000 缩到 500 时,lrmax = 5e-4 的模型还能到 31.16,lrmax = 1e-3 的模型只有 2.77(§3.2)。 Pre-LN 去掉 warmup 后仍能达到约 34 BLEU,并且第 9 个 checkpoint 就接近 Post-LN 的第 15 个 checkpoint(§4.2)。这些是 IWSLT14 De-En 的单一任务结果,不是跨任务的统一结论。
Peri-LN 的主实验是 400M / 1.5B / 3.2B 的预训练,每个规模训练 30B token、跑 5 个种子;模型规模不含 embedding 参数,Loss 是 C4 evaluation loss(Table 1 表注)。 在 3.2B 上,Peri-LN 的平均分 58.56,Pre-LN 56.69,Post-LN 46.45;Peri-LN 比 Pre-LN 高 1.87 分(58.56 − 56.69),比 Post-LN 高 12.11 分(58.56 − 46.45)。 C4 evaluation loss 为 3.11,Pre-LN 3.20,Post-LN 4.43;Peri-LN 比 Pre-LN 低 0.09(3.20 − 3.11)。SFT Avg. 为 59.02,Pre-LN 57.08,Post-LN 49.33;Peri-LN 比 Pre-LN 高 1.94 分(59.02 − 57.08)。
另外两个规模也同向:1.5B 上 Peri-LN 平均分 56.55,Pre-LN 53.71,差 2.84 分(56.55 − 53.71);400M 上 51.57 对 49.69,差 1.88 分(51.57 − 49.69)。 这些是 5 个种子的均值;Table 1 同时给了标准差,论文没有在表注里报告显著性检验。
Table 1 · Peri-LN 与 Post/Pre-LN 在 400M / 1.5B / 3.2B、30B token、5 个种子下的平均基准分;每个模型规模不含 embedding 参数。数据转自 Table 1;Loss 为 C4 evaluation loss,SFT Avg. 为 LIMA 指令微调后的平均分,发散 checkpoint 不计入。
| Size | Arch. | ARC-Easy | HellaSwag | PIQA | SIQA | Winogrande | Avg. | Loss | SFT Avg. |
|---|---|---|---|---|---|---|---|---|---|
| 400M | Post-LN | 35.70 ±1.09 | 28.91 ±0.16 | 62.26 ±0.73 | 34.48 ±1.04 | 50.88 ±0.75 | 42.45 | 7.46 | 46.44 |
| 400M | Pre-LN | 54.87 ±1.63 | 34.17 ±1.66 | 68.79 ±1.34 | 39.73 ±0.59 | 50.88 ±2.35 | 49.69 | 3.43 | 49.96 |
| 400M | Peri-LN | 57.51 ±0.81 | 37.46 ±0.34 | 69.48 ±0.39 | 40.64 ±0.51 | 52.74 ±0.67 | 51.57 | 3.34 | 51.96 |
| 1.5B | Post-LN | 42.92 ±0.93 | 31.69 ±0.41 | 66.72 ±0.40 | 35.84 ±0.61 | 50.30 ±1.87 | 45.49 | 5.38 | 48.95 |
| 1.5B | Pre-LN | 61.51 ±1.22 | 39.88 ±1.53 | 71.41 ±0.88 | 41.23 ±0.97 | 54.51 ±2.07 | 53.71 | 3.29 | 53.89 |
| 1.5B | Peri-LN | 66.17 ±0.21 | 43.94 ±0.34 | 73.63 ±0.24 | 42.34 ±0.83 | 56.64 ±0.44 | 56.55 | 3.18 | 56.94 |
| 3.2B | Post-LN | 45.30 ±3.23 | 33.59 ±0.44 | 66.45 ±2.86 | 35.82 ±1.09 | 51.10 ±1.60 | 46.45 | 4.43 | 49.33 |
| 3.2B | Pre-LN | 65.24 ±2.32 | 44.23 ±2.32 | 73.86 ±1.19 | 42.68 ±0.07 | 57.42 ±2.51 | 56.69 | 3.20 | 57.08 |
| 3.2B | Peri-LN | 68.73 ±0.57 | 46.99 ±0.21 | 74.31 ±0.41 | 43.00 ±0.73 | 59.76 ±0.78 | 58.56 | 3.11 | 59.02 |
Henry et al. 的翻译实验覆盖 5 个低资源语言对:TED Talks 的 ar→en、en→he、gl→en、sk→en,以及 IWSLT'15 的 en→vi;基线是 Nguyen & Salazar 2019,QKNorm 行同时使用 LayerNorm、PreNorm 与 FixNorm(Table 2 表注)。 5 个语言对的测试 BLEU 差值分别为 0.45、0.66、0.68、2.20、0.65,平均 0.928(Table 2)。 差值不是均匀的:最小的 en→vi 只有 0.45,最大的 gl→en 有 2.20。
Table 2 · 5 个低资源语言对的测试 BLEU(Moses 脚本);Δ 为 QKNorm − 基线,页面计算。Table 3 用 SacreBLEU,数值略有差异(en→vi 为 33.18,Table 2 为 33.24);Table 3 未逐行转录,仅引用 en→vi 单元格。本页用 Table 2 计算 0.928。
| 语言对 | Nguyen & Salazar 2019 | QKNorm + LayerNorm | Δ |
|---|---|---|---|
| en→vi | 32.79 | 33.24 | 0.45 |
| ar→en | 36.09 | 36.75 | 0.66 |
| en→he | 28.28 | 28.96 | 0.68 |
| gl→en | 22.01 | 24.21 | 2.20 |
| sk→en | 32.58 | 33.23 | 0.65 |
消融里最关键的一项是 g:去掉可学习缩放后,en→vi 的 BLEU 从 33.24 掉到 24.53,差 8.71;去掉 LayerNorm 后是 31.56,差 1.68;把 V 也做 ℓ2 normalization 后是 32.34,差 0.90(33.24 取自 Table 2,消融行取自 Table 6)。
推断(由 Table 6 各行差值反推;原文只写 biggest drop comes from omitting g。):QKNorm 的收益主要来自「归一化 q、k + 可学习缩放」这一组合,而不是「对所有投影都做归一化」。
Table 6 · QKNorm 组件消融(IWSLT'15 en→vi,消融行取自 Table 6;完整 QKNorm 33.24 取自 Table 2 的 Moses 基线);Δ 为跨表计算。这里假定 Table 6 与 Table 2 同为 Moses 脚本口径;若口径不同,Δ 需重算。
| 实验 | Test BLEU | Δ |
|---|---|---|
| 完整 QKNorm(取自 Table 2) | 33.24 | 0.00 |
| Without g | 24.53 | 8.71 |
| Without LayerNorm | 31.56 | 1.68 |
| Without FixNorm | 32.63 | 0.61 |
| Without FixNorm or PreNorm | 32.20 | 1.04 |
| ℓ2-normalizing V along with Q and K | 32.34 | 0.90 |
论文还扫了两个维度:Table 4 把 head 数从 2 到 32 变化,测试 BLEU 在 2–32 之间保持稳定(32.30–33.24);Table 5 把 g 初始化用的百分位从 75 扫到 99,97.5 百分位对应 33.24,75 百分位对应 32.58。
Table 4/5 未逐行转录,正文只引用这两个结论对应的单元格。
ViT-22B 的 QK normalization 不是消融里的一个装饰,而是让 8B 模型不 diverged 的必要条件:没有它时 attention logits 超过 50000,softmax 接近 one-hot,loss 在 2000 步内开始上升(Appendix B)。 加上 q、k 的 LayerNorm 后,1e-3 的学习率保持稳定;原始 ViT 的做法是随规模把学习率降到 4e-4(Appendix B)。 但 ViT-22B 同时改了 parallel layers 和 bias 移除(§2),而 QK-Norm 的对照实验只做到 ViT-L(Appendix B),所以 22B 模型上的结果不能全部算到 QK-Norm 头上。推断(依据:ViT-22B §2 的三项改动;Appendix B 的对照只做到 ViT-L。)
一个反直觉的对照来自 Peri-LN:§4.4 与 Figure 5 报告,训练稳定时 final-layer gradient norm 的排序是 Post-LN >> Pre-LN >> Peri-LN;而 Table 1 的平均分排序是 Peri-LN > Pre-LN > Post-LN。两个排序方向相反。 论文没有把 final-layer gradient norm 当作排名指标;§5.2 用逐层梯度分布的均匀性解释稳定性,Figure 7 显示 Peri-LN 在初始化和训练结束时都更均匀。 推断(依据:§4.4 只给排序;§5.2 才讨论逐层均匀性,两处量的口径不同。)
§4.2 的 BERT 段落写:
the Post-LN model achieves 1.69 validation loss at 500k updates while the Pre-LN model achieves similar validation loss at 700k updates, which suggests there is a 40% speed-up rate.
同一句里 Pre-LN 需要更多 updates 才达到相近 loss,与「speed-up」的方向相反;页面并列保留原文,不替作者改数,也不据此重算速度。
把每个结论的适用规模、未报告项和失败条件写清楚;超出这些条件,页面不做外推。
g 的初始化依赖 97.5 百分位,Table 5 中 97.5 百分位为 33.24,75 百分位为 32.58。
ViT-22B 的是 LayerNorm 版本,且与 parallel layers、bias 移除一起使用;两条 QK-Norm 路线不能混为一个公式。
如果失败表现为残差干道的大激活、FP16 溢出或 loss spike,优先看 Pre-LN 的方差累积与 Peri-LN 的输出归一化;如果失败表现为 attention 权重接近 one-hot、logits 随训练增大,优先看 QK-Norm。 Post-LN 的 warmup 敏感是第三类问题,改的是优化配置,不是把 LN 挪到别处就能等价解决。