【LLM】Layer Norm 和 RMS Norm 的区别?
Layer Normalization(Layer Norm) 和 RMS Normalization(RMS Norm) 是深度学习中两种常用的归一化技术,它们的目的是通过规范化输入数据来加速训练并提高模型的稳定性。尽管它们的目标相似,但在实现方式和效果上有一些关键区别。以下是它们的详细对比:
1. Layer Normalization (Layer Norm)
(1)定义
Layer Norm 对每个样本在特征维度上进行归一化,计算均值和方差,并对输入进行缩放和平移。
(2)公式
对于输入 x ∈ R d x \in \mathbb{R}^{d} x∈Rd ( d 是特征维度),Layer Norm 的计算如下:
μ
=
1
d
∑
i
=
1
d
x
i
(均值)
\mu = \frac{1}{d} \sum_{i=1}^{d} x_i \tag{均值}
μ=d1i=1∑dxi(均值)
σ
2
=
1
d
∑
i
=
1
d
(
x
i
−
μ
)
2
(方差)
\sigma^2 = \frac{1}{d} \sum_{i=1}^{d} (x_i - \mu)^2 \tag{方差}
σ2=d1i=1∑d(xi−μ)2(方差)
x
^
i
=
x
i
−
μ
σ
2
+
ϵ
(归一化)
\hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}} \tag{归一化}
x^i=σ2+ϵxi−μ(归一化)
y
i
=
γ
i
x
^
i
+
β
i
(缩放和平移)
y_i = \gamma_i \hat{x}_i + \beta_i \tag{缩放和平移}
yi=γix^i+βi(缩放和平移)
其中:
- ϵ \epsilon ϵ 是一个小常数,用于数值稳定性。
- γ \gamma γ 和 β \beta β 是可学习的参数,分别用于缩放和平移。
(3)特点
- 对特征维度归一化:Layer Norm 对每个样本的特征维度进行归一化,适用于变长序列(如 NLP 任务)。
- 适用于 RNN 和 Transformer:Layer Norm 在 RNN 和 Transformer 中表现良好,尤其是在处理序列数据时。
- 引入可学习参数:通过 γ \gamma γ 和 β \beta β ,Layer Norm 可以保留模型的表达能力。
2. RMS Normalization (RMS Norm)
(1)定义
RMS Norm 是一种简化版的归一化方法,仅对输入进行缩放,而不计算均值。它通过均方根(Root Mean Square)来规范化输入。
(2)公式
对于输入 x ∈ R d x \in \mathbb{R}^{d} x∈Rd ,RMS Norm 的计算如下:
RMS
(
x
)
=
1
d
∑
i
=
1
d
x
i
2
(均方根)
\text{RMS}(x) = \sqrt{\frac{1}{d} \sum_{i=1}^{d} x_i^2} \tag{均方根}
RMS(x)=d1i=1∑dxi2(均方根)
x
^
i
=
x
i
RMS
(
x
)
+
ϵ
(归一化)
\hat{x}_i = \frac{x_i}{\text{RMS}(x) + \epsilon} \tag{归一化}
x^i=RMS(x)+ϵxi(归一化)
y
i
=
γ
i
x
^
i
(缩放)
y_i = \gamma_i \hat{x}_i \tag{缩放}
yi=γix^i(缩放)
其中:
- ϵ \epsilon ϵ 是一个小常数,用于数值稳定性。
- γ \gamma γ 是可学习的缩放参数。
(3)特点
- 不计算均值:RMS Norm 仅通过均方根进行归一化,简化了计算。
- 无平移参数:RMS Norm 没有类似 Layer Norm 中的 β \beta β 参数,因此计算更简单。
- 计算效率更高:由于减少了计算步骤,RMS Norm 的计算开销比 Layer Norm 更低。
3. 区别对比
特性 | Layer Norm | RMS Norm |
---|---|---|
归一化方式 | 对特征维度计算均值和方差 | 仅对特征维度计算均方根(RMS) |
是否计算均值 | 是 | 否 |
是否引入平移参数 | 是(通过 β \beta β ) | 否 |
计算复杂度 | 较高(需要计算均值和方差) | 较低(仅计算均方根) |
适用场景 | 广泛用于 NLP 和序列模型(如 Transformer) | 适用于对计算效率要求较高的场景 |
表达能力 | 更强(引入了可学习的平移参数) | 较弱(无平移参数) |
4. 选择依据
- Layer Norm 更适合需要较强表达能力的任务(如 NLP),尤其是在 Transformer 等模型中表现优异。
- RMS Norm 更适合对计算效率要求较高的场景,尤其是在大规模模型或资源受限的环境中。
5. 总结
- Layer Norm 通过计算均值和方差对输入进行归一化,并引入可学习的缩放和平移参数,表达能力更强,但计算复杂度较高。
- RMS Norm 通过均方根对输入进行归一化,计算更简单,但表达能力较弱。
选择哪种归一化方法取决于具体任务的需求和计算资源的限制。