✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

Pre-LN 和 Post-LN 有什么区别?为什么现在大模型多用 Pre-LN?

创建时间:2026-09-15 更新时间:2026-09-16 阅读次数:1519 次 分类:模型架构与Transformer

1、先看两者在结构上的区别

Transformer 每个子层(Attention 或 FFN)都可以写成:

输出 = 残差 + 子层

区别在于 LayerNorm 放在哪里。

Post-LN(原始 Transformer):

x = LN(x + Sublayer(x))
  • 先做残差相加,再过 LayerNorm。
  • LayerNorm 在残差之后。
  • 原始《Attention Is All You Need》用的就是这种。

Pre-LN(现代大模型主流):

x = x + Sublayer(LN(x))
  • 先对输入做 LayerNorm,再进子层,最后残差相加。
  • LayerNorm 在残差之前。
  • GPT-2 之后被广泛采用。

还有一种变体:Sandwich-LN:

x = x + Sublayer(LN(x))
x = LN(x)
  • 子层前后都加 LN。
  • 训练更稳,但计算略多,某些模型用。

2、为什么 Pre-LN 更稳定

核心在于残差路径是否“干净”。

(1)Post-LN 的梯度回传路径

Post-LN 是 LN(x + Sublayer(x))。

  • 残差路径上的梯度要穿过 LayerNorm。
  • LayerNorm 会做归一化,其雅可比矩阵会缩放梯度。
  • 层数一深,梯度经过多次 LN,容易爆炸或消失。
  • 所以 Post-LN 需要 warmup(学习率从小逐渐变大)才能训起来。
  • 没有 warmup,深层 Post-LN 经常发散。

(2)Pre-LN 的梯度回传路径

Pre-LN 是 x + Sublayer(LN(x))。

  • 残差路径是 x + ...,梯度可以沿恒等路径直接回传。
  • LayerNorm 只作用在子层输入上,不在残差主路径上。
  • 梯度回传不穿过 LN,稳定得多。
  • 所以 Pre-LN 对 warmup 依赖小,深层也能训。

(3)直观理解

  • Post-LN:每层输出都被 LN 重新缩放,残差信息被反复归一化,深层容易累积误差。
  • Pre-LN:残差路径像一条“高速公路”,信息可以直接跨层传递,子层只是不断往上面加增量。

(4)代价

Pre-LN 也不是没有代价:

  • 最终输出可能未归一化:因为最后一层是 x + Sublayer(LN(x)),输出前通常要再加一个 LN。
  • 表达能力和效果:有些研究发现 Post-LN 在相同规模下最终效果可能略好,但训练更难。
  • 深层仍需调参:Pre-LN 更稳,但不代表不用调。

3、为什么现在大模型多用 Pre-LN

(1)深层模型必须稳

大模型动辄几十层、上百层。

  • Post-LN 在深层下极难训练,warmup 也不好调。
  • Pre-LN 让深层训练成为可能。

(2)省去 warmup 调参

  • Post-LN 强依赖 warmup,warmup 步数、学习率峰值都要调。
  • Pre-LN 对 warmup 不敏感,训练流程更简单。

(3)工程上更鲁棒

  • 不同规模、不同数据下,Pre-LN 表现更一致。
  • 减少训练崩溃和重启成本。

(4)社区和生态惯性

  • GPT-2、GPT-3、LLaMA 等主流模型都用 Pre-LN 或其变体。
  • 工具链、初始化、超参经验都围绕 Pre-LN 积累。

(5)RMSNorm 的配合

  • LLaMA 等用 RMSNorm + Pre-LN。
  • RMSNorm 只做缩放不做中心化,更简单更快,和 Pre-LN 配合效果好。

4、Pre-LN vs Post-LN 对比总结

维度Post-LNPre-LN
公式LN(x + Sublayer(x))x + Sublayer(LN(x))
LN 位置残差之后残差之前
残差路径穿过 LN不穿过 LN
梯度回传易爆炸/消失稳定
warmup强依赖依赖小
深层训练难易
最终效果可能略好略逊但可接受
代表模型原始 TransformerGPT-2/3、LLaMA
变体—Sandwich-LN、RMSNorm

5、一句话总结

Post-LN 把 LN 放在残差之后,梯度回传要穿过 LN,深层不稳定,强依赖 warmup;Pre-LN 把 LN 放在残差之前,残差路径干净,梯度直接回传,训练稳定,适合深层大模型。所以现代大模型普遍用 Pre-LN,常配合 RMSNorm。

6、这道面试题的质量点评

优点

  • 聚焦明确:只问 Pre-LN vs Post-LN,不混其他知识点。
  • 区分度好:
    • 初级:能说出公式区别。
    • 中级:能解释为什么 Pre-LN 稳。
    • 高级:能讲梯度路径、warmup、RMSNorm、最终效果取舍。
  • 贴近实践:直接关系到大模型能不能训起来。
  • 有追问空间:可以追问 warmup、RMSNorm、Sandwich-LN。

缺点

  • 偏进阶:对没训过大模型的人可能偏难。
  • 容易背结论:网上标准答案多,可能只答“Pre-LN 更稳”。
  • 缺少场景:没问“你训练时遇到过不稳定吗?怎么解决的?”
  • 没覆盖 RMSNorm:这是当前主流,需要面试官追问。

总体评价

质量:上。 适合中高级岗位,能有效区分“背过 Transformer”和“真正训过模型”的人。建议追问:

  • “为什么 Post-LN 需要 warmup?”
  • “Pre-LN 有什么缺点?”
  • “RMSNorm 和 LayerNorm 有什么区别?”
  • “你训练时遇到过 loss 发散吗?怎么排查的?”

7、怎么回答才是最好的

回答原则

  • 先给公式区别:一句话说清 LN 在残差前还是后。
  • 讲梯度路径:这是核心,解释为什么 Pre-LN 稳。
  • 对比 warmup 和深层训练。
  • 主动提代价和变体:Pre-LN 缺点、RMSNorm、Sandwich-LN。
  • 结合实践:说“我们训练用 Pre-LN + RMSNorm”。

推荐回答结构

“区别在 LN 的位置。Post-LN 是 LN(x + Sublayer(x)),LN 在残差之后;Pre-LN 是 x + Sublayer(LN(x)),LN 在残差之前。”

“稳定性差异的核心是残差路径。Post-LN 的残差路径要穿过 LN,梯度回传时经过多次归一化,深层容易爆炸或消失,所以强依赖 warmup。Pre-LN 的残差路径是恒等映射,梯度可以直接回传,不穿过 LN,深层也稳。”

“所以大模型多用 Pre-LN:几十上百层也能训,省去 warmup 调参,工程上更鲁棒。GPT-2、GPT-3、LLaMA 都是 Pre-LN 系。”

“Pre-LN 也有代价,比如最终输出可能没归一化,通常最后再加一个 LN;有些研究说 Post-LN 最终效果可能略好,但训练太难。”

“现在 LLaMA 用 RMSNorm + Pre-LN,RMSNorm 只做缩放不做中心化,更快。我们实际训练也是 Pre-LN + RMSNorm。”

加分点

  • 提到 残差路径、梯度回传、warmup。
  • 提到 RMSNorm、Sandwich-LN、最终 LN。
  • 提到 代表模型 GPT-2/3、LLaMA。
  • 结合真实训练经验。

减分点

  • 只答“Pre-LN 更稳”,不解释为什么。
  • 不知道 warmup 和 Post-LN 的关系。
  • 不知道 RMSNorm。
  • 说“Pre-LN 没有缺点”。

📌 面试天下网:一款服务于大一新生的口袋书,让大家在无聊的公共课上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录
📌 网站公告:【大模型/Agent面试陪练1V1指导】正式启动......

评论专区

评论加载中...