Week2-LLaMA1-RMSNorm,SwiGLU
🧠 LayerNorm vs RMSNorm:机制、差异与适用场景详解
归一化(Normalization)是现代神经网络中的基础构件。本文深入分析两种常见的归一化方法:LayerNorm 和 RMSNorm,重点讨论它们的数学机制、对特征分布的影响、适配任务的差异,以及为什么 RMSNorm 在某些场景中更优。
📌 1. 基础定义与公式
✅ LayerNorm(Layer Normalization)
对每个 token 内的所有维度进行归一化,包含可学习参数:
\[\text{LayerNorm}(\mathbf{x}) = \gamma \cdot \frac{\mathbf{x} - \mu}{\sigma + \epsilon} + \beta
\]
- 均值:\[\mu = \frac{1}{d} \sum_{i=1}^d x_i \]
- 标准差:\[\sigma = \sqrt{ \frac{1}{d} \sum_{i=1}^d (x_i - \mu)^2 } \]
- 参数:\(\gamma, \beta \in \mathbb{R}^d\) 是可学习的缩放和平移向量。
✅ RMSNorm(Root Mean Square Normalization)
仅进行缩放归一化,无中心化,通常无偏移项:
\[\text{RMSNorm}(\mathbf{x}) = \gamma \cdot \frac{\mathbf{x}}{\text{RMS}(\mathbf{x}) + \epsilon}
\]
- RMS:\[\text{RMS}(\mathbf{x}) = \sqrt{ \frac{1}{d} \sum_{i=1}^d x_i^2 } \]
- 参数:\(\gamma \in \mathbb{R}^d\) 是可学习的缩放系数(通常无 \(\beta\))
📊 2. 核心区别
| 特性 | LayerNorm | RMSNorm |
|---|---|---|
| 是否中心化 | ✅ 是 | ❌ 否 |
| 是否标准化 | ✅ 是(除以标准差) | ❌ 仅做 RMS 缩放 |
| 是否保留原始均值 | ❌ 不保留 | ✅ 保留 |
| 可学习参数 | \(\gamma\), \(\beta\) | 仅 \(\gamma\)(可选 \(\beta\)) |
| 对信息干扰程度 | 更大,可能破坏 token 内部偏移趋势 | 更小,保留语义偏移趋势 |
| 计算效率 | 略低(需要计算均值与方差) | 更高(只需平方均值) |
🧠 3. 中心分布的语义意义
“特征的中心分布”指的是 token 内多维特征的整体平均值(均值)是否偏正、偏负,或居中。
举例说明:
Token A: [1.2, 1.3, 1.4, 1.5] → 均值 = 1.35(偏正)
Token B: [-1.2, -1.3, -1.4, -1.5] → 均值 = -1.35(偏负)
Token C: [-1.0, 0.0, 0.5, 0.5] → 均值 = 0.0(居中)
这个中心偏移可能携带重要语义信号,例如:
- 积极/消极倾向
- 强调/否定语气
- 上下文影响或 token 类型
🔍 4. 从 LayerNorm 到 RMSNorm:为什么要“省掉减均值”
LayerNorm通过减去均值并除以标准差,使激活具有零均值和单位方差,从而避免了激活值过大或过小导致的梯度爆炸或消失,保证了反向传播时梯度的数值稳定性,有助于模型更快且更稳定地收敛;但在Transformer中研究发现,减均值对梯度稳定性影响不大,真正关键的是缩放激活的数值尺度。基于此,RMSNorm省略了减均值,只用均方根(RMS)做归一化,既简化了计算又能保持数值稳定,证明在实践中效果依然很好。
RMSNorm 的优势:
- 更容易保持梯度流动,适合更深层网络;
- 多用于 GPT 系列中的 Pre-Norm 架构。
⚖️ 5. 适用场景对比
| 场景类型 | 更适合的归一化方式 | 理由 |
|---|---|---|
| 语言建模 / 文本生成 | RMSNorm | 语义偏移(如 token 情绪、语调)不能丢失 |
| 情感分析 / 主观性判断 | RMSNorm | 均值可能代表情感强度 |
| 图像特征对比 / 句法结构建模 | LayerNorm | 强调特征间相对关系、消除偏差 |
| BERT 类模型(Post-Norm 架构) | LayerNorm | 原始结构假设归一化后特征为标准分布 |
| GPT 类模型(Pre-Norm 架构) | RMSNorm / ScaleNorm | 高效、稳定、浅层激活更不易爆炸 |
🧮 6. 可学习参数的作用与训练方式
参数
- \(\gamma\): 逐维缩放因子,恢复特征维度的重要性;
- \(\beta\): (LayerNorm 特有)偏移参数,恢复中心化带走的信息;
如何训练?
这两个参数像模型权重一样被训练优化:
\[\gamma \leftarrow \gamma - \eta \cdot \frac{\partial L}{\partial \gamma}, \quad
\beta \leftarrow \beta - \eta \cdot \frac{\partial L}{\partial \beta}
\]
它们能让模型在归一化之后恢复表达能力,并自适应不同任务对特征的偏好。
💡 7. 总结与推荐
| 条件/目的 | 推荐选择 |
|---|---|
| 保留 token 内部语义偏移 | ✅ RMSNorm |
| 对特征相对结构敏感 | ✅ LayerNorm |
| 高效训练 / 参数少 | ✅ RMSNorm |
| 更强归一化 + 更强归一控制 | ✅ LayerNorm |
| 预训练大语言模型(GPT 系列) | ✅ RMSNorm |
| 精准理解语法结构(BERT 系列) | ✅ LayerNorm |
🔗 参考资料
- RMSNorm: Root Mean Square Layer Normalization
- Layer Normalization (Ba et al., 2016)
- OpenAI GPT 系列架构实现细节
- PyTorch 官方文档中
torch.nn.LayerNorm与社区实现的RMSNorm

浙公网安备 33010602011771号