RMSNorm

LayerNorm 的简化变体,仅使用均方根(RMS)统计量做归一化,去除了均值中心化步骤,计算更快且效果相当,已成为大模型的事实标准。

是什么

RMSNorm 将输入向量的每个元素除以该向量的均方根(RMS),然后乘以可学习的缩放参数 γ:

RMSNorm(x) = x / RMS(x) · γ
RMS(x) = sqrt(mean(x²))

与 LayerNorm 的关键区别:不做均值中心化(不减去 mean),仅做缩放。去除了 (x - μ) 步骤,减少一次归约计算。

为什么重要

  1. 计算效率:比 LayerNorm 少一次归约操作(不用算均值),在大模型中累积节省显著
  2. 效果不降:实验表明 RMSNorm 效果与 LayerNorm 相当甚至略优
  3. 事实标准:LLaMA 系列率先采用,之后几乎所有的开源大模型(DeepSeek、Qwen、Mixtral 等)都使用 RMSNorm
  4. 训练稳定性:同样能保证训练稳定(均值 0 方差 1 的可控范围)

工作原理

输入: x ∈ R^d
RMS(x) = sqrt(1/d · Σ x_i²)
输出: x_i' = x_i / RMS(x) · γ_i

LayerNorm vs RMSNorm 对比:

  • LayerNorm: (x - μ) / σ · γ + β(两个统计量 μ、σ,两个参数 γ、β)
  • RMSNorm: x / RMS(x) · γ(一个统计量 RMS,一个参数 γ)

历史与演进

方法提出年份归一化方式状态
BatchNorm2015批次维度CV 主流,NLP 不适用
LayerNorm2016特征维度,μ+σNLP 经典方案
RMSNorm2019特征维度,仅 RMSLLM 事实标准
QK-Norm / KV-Norm2020Attention 内部 Q/K/V部分模型采用
DeepNorm2022残差后归一化极深模型(1000层)

归一化位置演进

位置说明采用情况
Post-Norm残差连接之后原始 Transformer
Pre-Norm残差连接之前LLM 主流,训练更稳定
Sandwich NormPre + Post 混用部分模型探索

常见误解

  • “RMSNorm 是 LayerNorm 的简化版所以效果差” — 效果相当,且计算更快
  • “RMSNorm 不中心化会导致训练不稳定” — 实践证明 Pre-Norm + RMSNorm 组合训练非常稳定

相关