M3-022M3: Deep Learning FoundationsNormalization TechniquesMedium
Mastery:

Normalization Techniques: Pre-LN 与 Post-LN 的区别是什么?为什么现代模型用 Pre-LN。

📐 Mathematical Definition
Post:y=LN(x+F(x));Pre:y=x+F(LN(x))\text{Post}: y=\mathrm{LN}(x+F(x));\qquad \text{Pre}: y=x+F(\mathrm{LN}(x))
⚡ Executive Summary
Core Concept: Post-LN 在残差后归一化(原版,深层不稳需 warmup);Pre-LN 在子层前归一化,梯度直通更稳。

📌 Key Takeaways

  • •
    Pre-LN 可用更大学习率、无需长 warmup
  • •
    Post-LN 表达力可能略强但难训

📐 Mathematical Derivations

结构差异:<strong>Post-LN</strong>(原始 Transformer)——每个子层的输出先与残差相加、再归一化:y=LN(x+F(x));<strong>Pre-LN</strong>——先归一化再进子层、输出直接与残差相加:y=x+F(LN(x))。<strong>为什么 Pre-LN 更稳</strong>:① <strong>梯度直通</strong>——Pre-LN 的残差路径是<strong>恒等映射</strong>(∂y/∂x=I+…),梯度可无损地从深层传回浅层(与 ResNet 同理);而 Post-LN 的残差路径被 LN 包裹(∂y/∂x 含 LN 的雅可比),梯度会因 LN 的缩放而衰减,深层网络的梯度随深度指数衰减。② <strong>数值尺度</strong>——Post-LN 的输出被强制归一化(尺度固定),残差累积不会爆炸,但<strong>深层需要精细的初始化与 warmup</strong> 才能训练(否则早期梯度爆炸);Pre-LN 的输出尺度随深度累积(未归一化),但梯度稳定,可用更大学习率。<strong>为什么 Post-LN 需要 warmup</strong>:训练初期参数随机,Post-LN 的归一化会放大梯度(因为要补偿残差的尺度),导致早期更新过大而发散;warmup 逐步增大学习率可避免。<strong>Pre-LN 的代价</strong>:① 输出尺度随深度增长(需要最后的 LN 或初始化缩放控制);② 表达力可能略弱(归一化在子层前,残差路径未归一化),实验上在浅层任务可能略逊 Post-LN;③ 但训练稳定性带来的收益远超这些代价。

🏭 Production Trade-offs

实践要点:① <strong>现代主流</strong>——几乎所有现代 LLM(GPT-2 之后、LLaMA、PaLM、Qwen)都用 <strong>Pre-LN</strong>(或 Pre-RMSNorm);原始 Post-LN 主要用于 Transformer 原论文与早期 BERT。② <strong>混合方案</strong>——<strong>Sandwich-LN</strong>(子层前后都加 LN)在部分模型中使用(如某些 T5 变体),稳定性更好但计算增加;<strong>DeepNorm</strong>(Post-LN 的改进)通过放大残差(x·α+F(x))支持超深 Post-LN(1000 层)。③ <strong>与初始化的配合</strong>——Pre-LN 仍需残差分支缩放(1/√(2L))控制累积方差(见 Transformer 初始化技巧)。④ <strong>warmup 的需求差异</strong>——Pre-LN 可用更短甚至不用 warmup;Post-LN 几乎必须 warmup(否则发散)。⑤ <strong>诊断</strong>——若深层模型训练初期 loss 爆炸/震荡,检查是否为 Post-LN 且缺少 warmup;若梯度范数随深度指数衰减,检查归一化位置。⑥ <strong>实践建议</strong>——从零实现时用 Pre-LN(配 RMSNorm);若需与 Post-LN 预训练模型兼容,则沿用其结构并保留 warmup。
⚠️ Common Interview Pitfalls
  • ✕
    深层模型用 Post-LN 而不加 warmup(发散)
  • ✕
    认为 Pre-LN 在所有场景都优于 Post-LN(浅层可能略逊)
🎯 Interviewer Follow-ups
  • ?
    Pre-LN 有什么代价?
  • ?
    为什么 Post-LN 需要 warmup?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM3-021: Normalization Techniques: 解释 RMSNorm 与 LayerNorm 的差异,为什么 LLaMA 用 RMSNorm。📋Back to BankNext →M3-023: Normalization Techniques: 解释 BatchNorm 在推理时为什么用 running 统计。