归一化用来稳定训练、加速收敛。NLP/LLM 主流从 BatchNorm 转向 LayerNorm,再到更省计算的 RMSNorm,并把位置从残差后挪到残差前(Pre-LN)。本文一次理清。
归一化把神经元激活拉回稳定分布,防止梯度爆炸/消失、加速收敛。LLM 时代主线是:BatchNorm(不适合序列) → LayerNorm(按特征维) → RMSNorm(去掉均值中心,更省);位置普遍用 Pre-LN(放残差之前更稳)。
BN 在一个 batch 内、跨样本对同一个特征维度求均值方差。问题:
对单个样本的整条隐藏向量(d 维)求均值 μ 和方差 σ²,再标准化、缩放平移:
RMSNorm(Zhang 2019,被 Llama、Qwen、GPT-J 等采用)发现:LayerNorm 里的均值中心化(减 μ)收益不大,于是去掉它,只除以均方根 RMS:
归一化放在残差连接的里面还是外面,影响训练稳定性:
| 方法 | 归一化维度 | 减均值? | 依赖 batch? | 典型使用 |
|---|---|---|---|---|
| BatchNorm | 跨样本同特征 | 是 | 强依赖 | CV(非序列) |
| LayerNorm | 单样本内特征 | 是 | 否 | BERT / 原版 Transformer |
| RMSNorm | 单样本内特征 | 否 | 否 | Llama / Qwen / GPT-J |