【RMSNorm】Root Mean Square Layer Normalization

您所在的位置:网站首页 layernorm参数量 【RMSNorm】Root Mean Square Layer Normalization

【RMSNorm】Root Mean Square Layer Normalization

2024-07-09 13:15| 来源: 网络整理| 查看: 265

【RMSNorm】Root Mean Square Layer Normalization 论文信息 阅读评价 Abstract Introduction Related Work Background RMSNorm Experiments

论文信息 名称内容论文标题Root Mean Square Layer Normalization论文地址https://arxiv.org/abs/1910.07467发表时间2019-10-16研究领域NLP, LayerNorm提出方法RMSNorm 阅读评价

  论文改进了大模型领域常用的LayerNorm,提出RMSNorm(均方差层归一化)。相比于LayerNorm,RMSNorm开销更小,训练更快,性能与LayerNorm基本相当。

  论文在LayerNorm的基础上,提出更简单的RMSNorm,并从公式推导与实验对比上证明了RMSNorm的有效性。

  个人感受:RMSNorm已经是目前通用的归一化了,看了一下T5、Llama、Qwen的源码,用的都是RMSNorm。

  以下是对论文每个部分的简单介绍。 Abstract

  层归一化(LayerNorm)在各种深度神经网络的应用比较成功,可以稳定模型训练、促进模型收敛。但LN的缺点是计算开销较大。

  LN有两个特性:重新居中(re-centering)不变性和重新缩放(re-scaling)不变性。本篇论文假设 LayerNorm 中的重新居中不变性是可有可无的,并提出均方根层归一化(RMSNorm)。

【注】重新居中(re-centering)不变性和重新缩放(re-scaling)不变性就是名字听起来唬人一点,其实很简单。在后文“background”中讲到LN的计算公式的时候我会进行介绍。

  RMSNorm 计算更简单,因此比 LayerNorm 更高效。 使用不同网络架构对多个任务进行的大量实验表明,RMSNorm 的性能与 LayerNorm 相当,但在不同模型上的运行时间减少了 7%∼64%。

Introduction

  LN目前也在深度神经网络领域广泛使用,并且效果良好。

  但是LN的缺点就是计算开销大,模型一旦比较大,LN的缺点就更加突出。所以在某些时候,LN给模型带来的计算开销甚至抵消了LN给模型带来的加速收敛效果。

【注】这句话的意思是,假设引入LN可以让模型训练快100分钟,但是引入LN增加了计算量,LN计算本身就要花120分钟,这样是得不偿失。

  LN有两个特性:重新居中(re-centering)不变性和重新缩放(re-scaling)不变性。作者认为重新居中(re-centering)不变性并不是LN有效的原因,所以他把这个特性删去,提出了RMSNorm。

Related Work

  先简单介绍了三种归一化:BatchNorm、WeightNorm、LayerNorm。

  随后介绍了一些对LN改进效率的工作,但是这些工作都没有删去重新居中(re-centering)不变性。

Background

  这部分介绍了LayerNorm的公式。原论文里面的公式略微有点冗余,为了方便大家理解,此处我用通用的变量来表示LayerNorm:

  给定一个网络的某一层的激活 H = h 1 , h 2 , . . . , h N {H = {h_1, h_2, ..., h_N}} H=h1​,h2​,...,hN​,其中 h i h_i hi​ 是该层中第 i i i 个神经元或特征的激活值。

【注】正常使用大模型情况下,batch=32,seq=512, dim=768。此处的 H H H就是一个batch中的一个token的向量,即 H H H维度为768。

  计算该层激活的均值 μ \mu μ 和标准差 σ \sigma σ:

μ = 1 N ∑ i = 1 N h i σ = 1 N ∑ i = 1 N ( h i − μ ) 2 + ϵ \mu = \frac{1}{N} \sum_{i=1}^{N} h_i \\ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^{N} (h_i - \mu)^2 + \epsilon} μ=N1​i=1∑N​hi​σ=N1​i=1∑N​(hi​−μ)2+ϵ ​

  其中 ϵ \epsilon ϵ是一个非常小的数,以避免除以零。

  对每个激活 h i h_i hi​ 进行归一化: h ^ i = h i − μ σ \hat{h}_i = \frac{h_i - \mu}{\sigma} h^i​=σhi​−μ​

  应用增益 γ \gamma γ和偏置 β \beta β参数进行缩放和平移: y i = γ h ^ i + β y_i = \gamma \hat{h}_i + \beta yi​=γh^i​+β   其中增益 γ \gamma γ和偏置 β \beta β是可学习的参数,它们分别初始化为 1 和 0。

【注】LN的重新居中(re-centering)不变性和重新缩放(re-scaling)不变性是指在 LN 过程中引入的可学习参数增益 γ \gamma γ和偏置 β \beta β所带来的特性。 —————————————————— 重新居中(Re-centering)不变性: LN 通过偏置参数 β \beta β实现重新居中。在 LN 的归一化过程中,每个激活值 h i h_i hi​都会被减去同一层激活的均值 μ \mu μ,然后乘以增益 γ \gamma γ并加上偏置 β \beta β。偏置 β \beta β的存在允许模型学习到激活值的最佳居中位置,这就是重新居中不变性。即使输入数据发生了变化,模型也可以通过调整偏置 β \beta β来保持激活值的分布相对稳定。 —————————————————— 重新缩放(Re-scaling)不变性: LN 通过增益参数 γ \gamma γ实现重新缩放。在归一化后,每个激活值 h i h_i hi​会被乘以 γ \gamma γ。增益 γ \gamma γ的存在允许模型学习到激活值的最佳缩放因子,这就是重新缩放不变性。模型可以通过调整 γ \gamma γ来控制激活值的尺度,从而适应不同的数据分布和任务需求。

RMSNorm

  在LayerNorm的基础上,RMSNorm不再求均值 μ \mu μ 和标准差 σ \sigma σ,而是直接计算均方根 R M S RMS RMS:

R M S = 1 N ∑ i = 1 N ( h i ) 2 + ϵ RMS=\sqrt{\frac{1}{N} \sum_{i=1}^{N} (h_i)^2 + \epsilon} RMS=N1​i=1∑N​(hi​)2+ϵ ​

  对每个激活 h i h_i hi​ 进行归一化: h ^ i = h i R M S \hat{h}_i = \frac{h_i}{RMS} h^i​=RMShi​​

  RMSNorm也可以应用增益 γ \gamma γ和偏置 β \beta β参数进行缩放和平移: y i = γ h ^ i ( + β ) y_i = \gamma \hat{h}_i (+ \beta) yi​=γh^i​(+β)   但是实际上,此时偏置 β \beta β已经不再有意义,通常不再使用偏置。

Experiments

  简单截了4张实验结果图,其中“Testxx”栏表示数据集的评价指标,越大越好,“Time”栏表示运行了k个Step所花的时间,越少越好。

在这里插入图片描述

图1 实验结果

在这里插入图片描述

图2 实验结果

在这里插入图片描述

图3 实验结果

在这里插入图片描述

图4 实验结果

  主要还是比较RMSNorm是否比LN的时间短,并且效果不相上下?根据上述4张图,可以看到RMSNorm确实比LN要好一点。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3