目录
[1 为什么需要归一化](#1 为什么需要归一化)
[2 BatchNorm](#2 BatchNorm)
[3 LayerNorm](#3 LayerNorm)
[4 RMSNorm](#4 RMSNorm)
[5 Post-LN / Pre-LN](#5 Post-LN / Pre-LN)
[6 DeepNorm](#6 DeepNorm)
abstract:
**归一化是为了防止梯度爆炸或梯度消失,**归一化通过稳定中间激活的尺度,从而缓解梯度爆炸/消失,让训练更稳、更快。
- BN:在一个 batch 里,对同一个特征维跨样本做归一化(减均值 / 除标准差)。
- LN:对某一个 token 的隐向量内部(特征维)做归一化,公式同样是减均值 / 除标准差。
- 所以 LN 不依赖 batch 里有多少条、多长,更适合 NLP / Transformer。
- 统计量依赖当前 batch:换一批,均值方差就变;batch 小或不稳时很伤。
- 变长 + padding:pad 位置会污染 BN 的 batch 统计。
- 推理常 batch=1(逐 token 生成):BN 训练用 batch 统计、推理用滑动平均,和 LLM 推理方式不契合。
- Transformer 里更自然的是:每个 token 自己的 ddd 维向量归一化 → 这就是 LN。

DeepNorm =前向用 α放大残差 x + 用 β 初始化时压小子层权重;
DeepNorm本质上还是LayerNorm,他改进的是 Post-LN 残差怎么加权(α\alphaα)+ 子层怎么初始化(β\betaβ);里面仍然用原来的 LN。
1 为什么需要归一化
训练时 WWW 从随机开始(并持续更新)→ 中间激活尺度易失控 → 梯度易爆炸/消失 → 需要归一化管住尺度。
归一化的直接作用是管住中间激活的尺度;表现出来就是:
- 减轻 梯度爆炸 / 梯度消失
- 训练更 稳(不易崩、对学习率更不敏感)
- 往往更 快(可以用更大学习率、更少 warmup、收敛更好)
2 BatchNorm

把每个特征都拉回均值为零,方差为一的分布,

他依赖批次内的统计,而且训练时是大批次,而推理时候往往不是大批次,

3 LayerNorm
- BN:在一个 batch 里,对同一个特征维跨样本做归一化(减均值 / 除标准差)。
- LN:对某一个 token 的隐向量内部(特征维)做归一化,公式同样是减均值 / 除标准差。
- 所以 LN 不依赖 batch 里有多少条、多长,更适合 NLP / Transformer。
- 统计量依赖当前 batch:换一批,均值方差就变;batch 小或不稳时很伤。
- 变长 + padding:pad 位置会污染 BN 的 batch 统计。
- 推理常 batch=1(逐 token 生成):BN 训练用 batch 统计、推理用滑动平均,和 LLM 推理方式不契合。
- Transformer 里更自然的是:每个 token 自己的 ddd 维向量归一化 → 这就是 LN。
4 RMSNorm


5 Post-LN / Pre-LN




DeepNorm = 前向用 α放大残差 X 以及 用 β初始化时压小子层权重;
6 DeepNorm


DeepNorm本质上还是LayerNorm,他改进的是 Post-LN 残差怎么加权(α\alphaα)+ 子层怎么初始化(β\betaβ);里面仍然用原来的 LN。