跳到主内容
快讯直播
AI智模界
AI 词典

Pre-LN 与 Post-LN:归一化放前还是放后

一句话定义:Pre-LN 和 Post-LN 指的是在 Transformer 的每个子层里,层归一化(Layer Normalization,AI 词典:LayerNorm">LayerNorm)放在残差分支之前还是之后。

先看公式。一个 Transformer 块通常包含自注意力(self-attention)和前馈网络(feed-forward network)两个子层,每个子层外面套一个残差连接(residual connection)。设输入为 x,子层计算为 F(x),那么:

  • Post-LN:y = LayerNorm(x + F(x)),先做残差相加,再归一化。
  • Pre-LN:y = x + F(LayerNorm(x)),先归一化,再送入子层,残差路径保持原样。

打个比方:残差连接像一条“原味高汤”直通出口的管道,子层像旁边的“调味车间”。Post-LN 是调味车间和高汤汇合后,再统一尝咸淡、做标准化;Pre-LN 是先把原料标准化再进调味车间,高汤则原封不动地流到出口。关键差别在于:Pre-LN 给梯度留了一条干净的“高速公路”——恒等路径上没有 LayerNorm 挡着,反向传播时梯度不容易被反复缩放;Post-LN 的归一化卡在残差之后,梯度必须穿过它,层数一深就容易出现梯度消失或爆炸,训练对学习率和 warmup(预热)非常敏感。

对比一下:

维度Post-LNPre-LN
归一化位置残差相加之后子层输入之前
恒等路径被 LayerNorm 打断干净直通
训练稳定性较敏感,常需 warmup较稳,容错更高
常见取舍早期 Transformer 常用深层大模型更常见

需要强调:Pre-LN 不是一种新的归一化算法,只是摆放位置的变化;它和 LayerNorm、残差连接是“位置关系”,不是替代关系。另外,Pre-LN 通常更好训练,但不代表最终效果一定全面胜出,有些任务下 Post-LN 配合精细的初始化和 warmup 也能取得有竞争力的结果,这属于经验规律而非铁律。后来还出现了把归一化放在子层前后等混合变体,思路都是围绕“让梯度更好走”做文章。

对从业者的实际意义:如果你在搭深层 Transformer,遇到 loss 尖峰、不收敛、对 warmup 极度敏感,可以优先检查归一化位置,试试 Pre-LN;如果训练已经稳定,想压榨最终精度,也可以把 Post-LN 加 warmup 作为对照。对普通职场人来说,这解释了为什么大模型能堆到很深的层数——不只是参数多,更是因为残差和归一化的摆放顺序让梯度“跑得动”。具体到某个框架或模型采用哪种,以官方文档和论文说明为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。