M3-011M3: Deep Learning FoundationsWeight InitializationMedium
Mastery:
Weight Initialization: Transformer 中常见的初始化技巧有哪些?
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 缩放初始化(除以 √(2L))、残差分支小初始化、LayerNorm 前零初始化、输出投影零初始化。
📌 Key Takeaways
- •GPT-2 用 1/√(2L) 缩放残差分支
- •adaLN-Zero 门控零初始化
📐 Mathematical Derivations
四项技巧及其动机:① <strong>残差分支缩放(1/√(2L))</strong>——GPT-2 的做法:把每个残差分支(attention 与 FFN 的输出投影)的权重乘以 1/√(2L)(L 为层数)。<strong>动机</strong>:残差连接使 h⁽ˡ⁾=h⁽ˡ⁻¹⁾+F(h⁽ˡ⁻¹⁾),若 F 的方差为 σ²,则 L 层后累积方差 ≈ L·σ²(若独立);为使总方差保持在 O(1),需 σ²∝1/L,故每层分支缩放 1/√L(考虑两支则 1/√(2L))。这与后文的 μP 是同一思想。② <strong>LayerNorm 前的零初始化</strong>——某些实现把 LN 的 γ 初始化为 0(而非 1),使该 block 初始为恒等映射(F=0),训练更稳(类似 adaLN-Zero)。③ <strong>输出投影零初始化</strong>——attention 的输出投影 W_o 与 FFN 的第二层 W_down 初始化为零(或很小),使残差分支初始输出为 0 → block 初始为恒等映射。这与 ReZero、Fixup 的思想一致('新模块初始不干扰')。④ <strong>嵌入层的缩放</strong>——某些实现把词嵌入乘以 √d(如原始 Transformer)或 1/√d(视归一化位置),以匹配 LN 的尺度。
🏭 Production Trade-offs
实践要点:① <strong>为什么'初始为恒等'重要</strong>——深层网络的残差分支若初始输出较大,会逐层累积噪声,导致训练初期 loss 高、收敛慢;零初始化使初始状态等价于'更浅的网络',随训练逐步'启用'各层——这是<strong>训练稳定性</strong>的关键技巧(GPT-2/GPT-3/LLaMA 都采用某种形式)。② <strong>与 μP 的关系</strong>——μP 系统化了这些技巧:它要求残差分支与输出层的初始化按 1/√width 缩放,使'最优学习率与宽度无关',从而实现超参迁移。③ <strong>实践建议</strong>——若从零实现 Transformer,务必包含 (a) 残差分支缩放、(b) LN 位置(Pre-LN)、(c) 输出投影小初始化;否则深层模型可能无法收敛。④ <strong>与微调的关系</strong>——预训练模型已包含合适的初始化;微调时新增的模块(如 LoRA、分类头)才需要初始化设计(LoRA 的 B 零初始化、分类头的随机初始化)。⑤ <strong>诊断</strong>——若深层 Transformer 训练初期 loss 高且下降慢,或梯度范数随深度指数增长/衰减,应检查初始化缩放。⑥ <strong>与 QK-Norm 的关系</strong>——现代 LLM(如 Gemma、Qwen)在 attention 的 Q、K 上加归一化(QK-Norm),进一步稳定 attention logits 的尺度,这是初始化之外的补充手段。
⚠️ Common Interview Pitfalls
- ✕深层 Transformer 不做残差分支缩放(训练不稳)
- ✕输出投影用标准随机初始化(初始破坏恒等路径)
🎯 Interviewer Follow-ups
- ?为什么残差分支要小初始化?
- ?零初始化输出层意味着什么?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.