AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


大模型面经——大模型中用到的归一化方法总结
发布日期:2024-04-17 20:04:04 浏览次数: 2017



大模型中的归一化主要是为了解决LLM训练不稳定的问题。这里属于NLP领域,由于样本序列长度不一致,具体归一化跟CV领域存在区别,CV领域归一化方法总结可以看视觉面经之归一化篇


长话短说,LLM中归一化方法可以按照归一化方法来分,主要分为LayerNorm,BatchNorm,RMSNorm以及DeepNorm。


还可以按照归一化位置来分类,包括 postNorm 和 preNorm,但具体来说用postNorm比较多,具体的原因可以看之前这一篇 为什么大模型结构设计中往往使用postNorm而不用preNorm?


 一、归一化方法

1. BatchNorm

BatchNorm主要对数据的一定维度在batch数据中进行归一,一般来说应用于图像。

这种方法很难适用于序列数据,对于序列数据而言,在batch维度做归一意义不大,而且一个batch内的序列长度不同。


2. LayerNorm

LayerNorm是针对序列数据提出的一种归一化方法,主要在layer维度进行归一化,即对整个序列进行归一化。layerNorm会计算一个layer的所有activation的均值和方差,利用均值和方差进行归一化。


有时候面试官会让写公式,所以还是需要对公式比较熟悉,具体公式如下:

归一化后的激活值如下:

3. RMSNorm

RMSNorm的提出是为了提升layerNorm的训练速度提出的。RMSNorm也是一种layerNorm,只是归一化的方法不同。相比layerNorm中利用均值和方差进行归一化,RMSNorm 利用均方根进行归一化


具体公式修改如下:

归一化后的激活值如下:

对于layerNorm和RMSNorm,layerNorm包含缩放和平移两部分,RMSNorm去除了平移部分,只保留了缩放部分。这样做的依据是,有研究认为layerNorm取得成功的关键是缩放部分的缩放不变性,而不是平移部分的平移不变性。


RMSNorm相比一般的layerNorm,减少了计算均值和平移系数的部分,训练速度更快,效果基本相当,甚至有所提升。


4. DeepNorm

DeepNorm是由微软提出的一种Normalization方法。主要对Transformer结构中的残差链接做修正。

DeepNorm可以缓解模型参数爆炸式更新的问题,把模型参数更新限制在一个常数域范围内,使得模型训练过程可以更稳定。模型规模可以达到1000层。

DeepNorm兼具PreLN的训练稳定和PostLN的效果性能。


具体的实现,可以参照下图,DeepNorm对layerNorm之前的残差链接进行了up-scale,在初始化阶段down-scale了模型参数。GLM-130B 模型中就采用了DeepNorm。



 二、归一化位置


1. PostLN

在transformer的原始结构中,采用了PostLN结构,即在残差链接之后layerNorm(如下图所示)。在LLM中训练过程中发现,PostLN的输出层附近的梯度过大会造成训练的不稳定性,需要结合warm up做一些学习率上的调整优化。在LLM还是会结合一些preNorm,如在GLM-130B中采用PostLN与PreLN结合的方式。



2. PreLN

PreLN将layerNorm放置在残差链接的过程中,如上图所示。PreLN在每层的梯度范数近似相等,有利于提升训练稳定性。相比PostLN,使用PreLN的深层transforme的训练更稳定,但是性能有一定损伤。为了提升训练稳定性,很多大模型都采用了PreLN。





53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询