【LLM】Layer Norm 和 RMS Norm 的区别?

embedded/2025/2/4 18:32:52/

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} xRd ( d 是特征维度),Layer Norm 的计算如下:

μ = 1 d ∑ i = 1 d x i (均值) \mu = \frac{1}{d} \sum_{i=1}^{d} x_i \tag{均值} μ=d1i=1dxi(均值)
σ 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=1d(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} xRd ,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=1dxi2 (均方根)
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 NormRMS Norm
归一化方式对特征维度计算均值和方差仅对特征维度计算均方根(RMS)
是否计算均值
是否引入平移参数是(通过 β \beta β
计算复杂度较高(需要计算均值和方差)较低(仅计算均方根)
适用场景广泛用于 NLP 和序列模型(如 Transformer)适用于对计算效率要求较高的场景
表达能力更强(引入了可学习的平移参数)较弱(无平移参数)

4. 选择依据

  • Layer Norm 更适合需要较强表达能力的任务(如 NLP),尤其是在 Transformer 等模型中表现优异。
  • RMS Norm 更适合对计算效率要求较高的场景,尤其是在大规模模型或资源受限的环境中。

5. 总结

  • Layer Norm 通过计算均值和方差对输入进行归一化,并引入可学习的缩放和平移参数,表达能力更强,但计算复杂度较高。
  • RMS Norm 通过均方根对输入进行归一化,计算更简单,但表达能力较弱。

选择哪种归一化方法取决于具体任务的需求和计算资源的限制。


http://www.ppmy.cn/embedded/159538.html

相关文章

Vue3学习笔记-模板语法和属性绑定-2

一、文本插值 使用{ {val}}放入变量&#xff0c;在JS代码中可以设置变量的值 <template><p>{{msg}}</p> </template> <script> export default {data(){return {msg: 文本插值}} } </script> 文本值可以是字符串&#xff0c;可以是布尔…

求水仙花数,提取算好,打表法。或者暴力解出来。

暴力解法 #include<bits/stdc.h> using namespace std; int main() {int n,m;cin>>n>>m;if(n<3||n>7||m<0){cout<<"-1";return 0;}int powN[10];//记录0-9的n次方for(int i0;i<10;i){powN[i](int)pow(i,n);}int low(int) pow(1…

【Qt】各种常用的按钮(button)

按钮是界面上经常使用的组件&#xff0c;常用的4种按钮组件是普通按钮(QPushButton类)、工具按钮(QToolButton 类)、单选按钮(QRadioButton类)、复选框(QCheckBox类)&#xff0c;它们都有共同的父类QAbstractButton(见图4-2)&#xff0c;所以它们有一些共有的特性。 Qt 中常用…

本地部署 DeepSeek-R1:简单易上手,AI 随时可用!

&#x1f3af; 先看看本地部署的运行效果 为了测试本地部署的 DeepSeek-R1 是否真的够强&#xff0c;我们随便问了一道经典的“鸡兔同笼”问题&#xff0c;考察它的推理能力。 &#x1f4cc; 问题示例&#xff1a; 笼子里有鸡和兔&#xff0c;总共有 35 只头&#xff0c;94 只…

BUUCTF_[网鼎杯 2020 朱雀组]phpweb(反序列化绕过命令)

打开靶场&#xff0c;,弹出上面的提示,是一个警告warning,而且页面每隔几秒就会刷新一次,根据warning中的信息以及信息中的时间一直在变,可以猜测是date()函数一直在被调用 查看页面源代码&#xff0c;没有什么有用的信息 Burp抓包一下 调用了date()函数并回显在页面上,参数fu…

可以称之为“yyds”的物联网开源框架有哪几个?

有了物联网的发展&#xff0c;我们的生活似乎也变得更加“鲜活”、有趣、便捷&#xff0c;包具有科技感的。在物联网&#xff08;IoT&#xff09;领域中&#xff0c;也有许多优秀的开源框架支持设备连接、数据处理、云服务等&#xff0c;成为被用户们广泛认可的存在。以下给大家…

数字电子技术(十六)——CMOS反相器以及CMOS反相器的电路结构和工作原理

目录 1 单开关电路和双开关电路 2 CMOS反相器 2.1 CMOS反相器的电路结构 2.2 输入和输出的电压工作曲线 2.3 电压和电流的传输特性 2.4 输入噪声容限 1 单开关电路和双开关电路 如下所示为单开关电路的示意图&#xff1a; 图1 单开关电路图 对于单开关电路来说&#xff…

如何构建ObjC语言编译环境?构建无比简洁的clang编译ObjC环境?Windows搭建Swift语言编译环境?

如何构建ObjC语言编译环境? 除了在线ObjC编译器&#xff0c;本地环境Windows/Mac/Linux均可以搭建ObjC编译环境。 Mac自然不用多说&#xff0c;ObjC是亲儿子。(WSL Ubuntu 22.04) Ubuntu可以安装gobjc/gnustep和gnustep-devel构建编译环境。 sudo apt-get install gobjc gnus…