LLM中的归一化方法和位置

LLM常见归一化方法

LayerNorm 

在早期的研究中,批次归一化(Batch Normalization, BN)是一种广泛采用的归一化方法。然而,该方法难以处理可变长度的序列数据和小 批次数据。因此,相关研究提出了层归一化这一技术 ,针对数据进行逐层归一化。具体而言,层归一化会计算每一层中所有激活值的均值 𝝁 和方差 𝝈,从而重新调整激活值的中心和缩放比例 

 

RMSNorm

为了提高层归一化的训练速度,RMSNorm 仅利用激活值总和的均方根RMS(𝒙) 对激活值进行重新缩放,对于layerNorm和RMSNorm,layerNorm包含缩放和平移两部分,RMSNorm去除了平移部分,只保留了缩放部分。有研究认为layerNorm取得成功的关键是缩放部分的缩放不变性,而不是平移部分的平移不变性

 

DeepNorm

DeepNorm 由微软的研究人员提出,旨在稳定深层 Transformer 的训练。具体而言,DeepNorm 在 LayerNorm 的基础上,在残差连接中对 之前的激活值 𝒙 按照一定比例 𝛼 进行放缩。通过这一简单的操作,Transformer 的层数可以被成功地扩展至 1,000 层 ,进而有效提升了模型性能与训练稳定性。

 

归一化层的位置 

为了加强大语言模型训练过程的稳定性,除了归一化方法外,归一化模块的 位置也具有重要的影响。如图 5.2(a) 所示,归一化模块的位置通常有三种选择,分别是层后归一化(Post-Layer Normalization, Post-Norm)、层前归一化(Pre-Layer Normalization, Pre-Norm)和夹心归一化(Sandwich-Layer Normalization, Sandwich-Norm

Post-Norm 

归一化模块被放置于残差计算之后,模型训练稳定性不如Pre-Norm,但是最终效果优于Pre-Norm,苏剑林博客指出是因为Pre-Norm增加了模型宽度,Post-Norm增加了模型深度

 

Pre-Norm

 

参考资料

苏剑林. (Mar. 29, 2022). 《为什么Pre Norm的效果不如Post Norm? 》[Blog post]. Retrieved from https://kexue.fm/archives/9009

为什么大模型结构设计中往往使用postNorm而不用preNorm?

 

posted @   xd_xumaomao  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示