层归一化
约 740 字大约 2 分钟
2026-04-14
- 归一化层的位置
- 几种方式
- 几种归一化层
- LN
- RMSnorm
归一化层的位置
主要有两种范式,分别是前置归一化(Pre-Norm)和后置归一化(Post-Norm),Pre-Norm的归一化层在 Attention / FFN 层之前,而 Post-Norm 的归一化则在 Attention / FFN之后,残差连接之前。
Pre-Norm 在 Attention / FFN 分支,而 Post-Norm 在整个主干上,强迫整体数值归一化。用公式表示则为:
Post-Norm:xt+1=LayerNorm(xt+Sublayer(xt))
Pre-Norm:xt+1=xt+Sublayer(LayerNorm(xt))
现在的 LLM 几乎都是使用的前置归一化,而Transformer的开山之作 《Attention is All You Need》 则是使用的后置归一化。
这是因为后置归一化在深层模型中容易出现梯度消失或者梯度爆炸的问题,训练难度大,而且往往需要非常小心的学习率预热。
而前置层归一化由于恒等映射直接贯穿整个网络,梯度能够更顺畅地回传。这也是目前千亿级参数模型能够稳定训练的核心原因之一。
为什么后置归一化易出现梯度消失和梯度爆炸
根据后置归一化公式:
Post-Norm:xt+1=LayerNorm(xt+Sublayer(xt))
在后置归一化中,所有数据必须经过归一化层,在反向传播时,梯度每次经过归一化层都会被缩放,因为归一化本质是在做:
σx−μ
其中,x 是输入, μ 是均值,σ 是方差。
这个缩放不稳定,并且会随着传播层数的增加而累积,最终导致梯度消失/爆炸。
而前置归一化(更像是旁支归一化),由于保留了恒等映射,其梯度反向传播时,始终有一条直接传播的通道,梯度能够更顺畅地回传。这也是目前千亿级参数模型能够稳定训练的核心原因之一。
几种归一化层
本节主要介绍层归一化 LayerNorm 和 RMSNorm(Root Mean Square Layer Normalization)。
LayerNorm
LayerNorm 是Transformer最开始使用的归一化方式,其公式为:
yi=Var[x]+ϵxi−E[x]γ+β
其中,E[x],Var[x]分别为x的期望与方差,计算式为:
E[x]=N1i=1∑NxiVar[x]=N1i=1∑N(xi−E[x])
LayerNorm 能够处理激活值偏移,但是需要计算期望,所以计算开销大。目前所用极少。
RMSNorm
RMSNorm 是 LayerNorm 的一个变体,广泛应用在各大模型中,它舍弃了 LayerNorm 的再中心化,保留了再缩放,也就是:
yˉi=RMS(x)xigi
由于 RMSNorm 不再计算均值,所以其计算效率更高,并且研究表明,去掉均值偏移并不影响模型的效果。
