完整题目
在现代大模型架构中,LayerNorm与RMSNorm在计算方式、数值稳定性、训练动态和内存效率方面有何主要区别?目前主流模型(如LLaMA系列)更倾向于使用哪种归一化方法?原因是什么?
本文目录
计算定义
- LayerNorm:
y = (x-mean(x)) / sqrt(mean((x-mean(x))^2)+eps) * gamma + beta。 - RMSNorm:
y = x / sqrt(mean(x^2)+eps) * gamma。常见实现没有bias,但以具体模型为准。
LayerNorm同时具有重新中心化和重新缩放不变性;RMSNorm不减均值,舍弃re-centering invariance,只保留re-scaling invariance。RMSNorm并不“隐式把均值变成0”,也不要求输入已经是零均值。
效率与数值边界
RMSNorm少计算均值和中心化项,理论上统计量更少,kernel也可能更容易融合。但两者都是token内沿隐藏维归约,通常不是“同步所有GPU”;端到端速度和显存收益取决于kernel、隐藏维、精度和硬件,不能给固定百分比。
数值稳定性不能简单判定RMSNorm必然更好。混合精度实现常在较高精度中累积平方和,并依靠 eps 处理极小尺度。LayerNorm对整体平移具有再中心化不变性,RMSNorm则会保留均值分量。逐维 gamma 还会改变各维尺度,因此不能说RMSNorm严格保持向量方向或与RoPE“天然正交”。