Transformer彻底剖析(9):归一化演进——BatchNorm、LayerNorm、RMSNorm、Post-LN / Pre-LN、DeepNorm 目录1 为什么需要归一化2 BatchNorm3 LayerNorm4 RMSNorm5 Post-LN / Pre-LN6 DeepNormabstract:归一化是为了防止梯度爆炸或梯度消失归一化通过稳定中间激活的尺度从而缓解梯度爆炸/消失让训练更稳、更快。BN在一个 batch 里对同一个特征维跨样本做归一化减均值 / 除标准差。LN对某一个 token 的隐向量内部特征维做归一化公式同样是减均值 / 除标准差。所以 LN 不依赖 batch 里有多少条、多长更适合 NLP / Transformer。统计量依赖当前 batch换一批均值方差就变batch 小或不稳时很伤。变长 paddingpad 位置会污染 BN 的 batch 统计。推理常 batch1逐 token 生成BN 训练用 batch 统计、推理用滑动平均和 LLM 推理方式不契合。Transformer 里更自然的是每个 token 自己的 ddd 维向量归一化 → 这就是 LN。RMSNorm只是改了LN的计算公式不减均值改用均方根RMS缩放DeepNorm 前向用 α放大残差 x 用 β 初始化时压小子层权重DeepNorm本质上还是LayerNorm他改进的是 Post-LN 残差怎么加权α\alphaα 子层怎么初始化β\betaβ里面仍然用原来的 LN。1 为什么需要归一化训练时 WWW 从随机开始并持续更新→ 中间激活尺度易失控 → 梯度易爆炸/消失 → 需要归一化管住尺度。归一化的直接作用是管住中间激活的尺度表现出来就是减轻 梯度爆炸 / 梯度消失训练更 稳不易崩、对学习率更不敏感往往更 快可以用更大学习率、更少 warmup、收敛更好2 BatchNorm把每个特征都拉回均值为零方差为一的分布他依赖批次内的统计而且训练时是大批次而推理时候往往不是大批次3 LayerNormBN在一个 batch 里对同一个特征维跨样本做归一化减均值 / 除标准差。LN对某一个 token 的隐向量内部特征维做归一化公式同样是减均值 / 除标准差。所以 LN 不依赖 batch 里有多少条、多长更适合 NLP / Transformer。统计量依赖当前 batch换一批均值方差就变batch 小或不稳时很伤。变长 paddingpad 位置会污染 BN 的 batch 统计。推理常 batch1逐 token 生成BN 训练用 batch 统计、推理用滑动平均和 LLM 推理方式不契合。Transformer 里更自然的是每个 token 自己的 ddd 维向量归一化 → 这就是 LN。4 RMSNorm5 Post-LN / Pre-LNDeepNorm 前向用 α放大残差 X 以及 用 β初始化时压小子层权重6 DeepNormDeepNorm本质上还是LayerNorm他改进的是 Post-LN 残差怎么加权α\alphaα 子层怎么初始化β\betaβ里面仍然用原来的 LN。