M4-013M4: Sequences & TransformersTransformer Architecture AnatomyEasy
Mastery:

Transformer Architecture Anatomy: 完整描述一个 Transformer Block 的组成。

📐 Mathematical Definition
Block(x)=x+FFN(LN(x+MHA(LN(x))))  (Pre-LN)\text{Block}(x)=x+\mathrm{FFN}(\mathrm{LN}(x+\mathrm{MHA}(\mathrm{LN}(x))))\ \ (\text{Pre-LN})
⚡ Executive Summary
Core Concept: 多头自注意力 + 残差 + 归一化,接 FFN + 残差 + 归一化;解码器额外插入交叉注意力;Pre-LN 是现代默认。

📌 Key Takeaways

  • •
    两个子层:MHA 与 FFN,各带残差与归一化
  • •
    Pre-LN 把 LN 放在子层前(残差路径纯净)
  • •
    解码器块多一个交叉注意力子层(encoder-decoder 模型)

📐 Mathematical Derivations

数学机理:一个 <strong>Pre-LN Transformer Block</strong> 的计算为:x₁=x+MHA(LN(x)),x₂=x₁+FFN(LN(x₁)),即两个子层各自'先归一化、再计算、再残差相加'。<strong>子层一:多头自注意力(MHA)</strong>——把输入投影为 Q、K、V(各 h 个头),计算 Attention(Q,K,V)=softmax(QKᵀ/√d_k)V,多头结果拼接后再做输出投影。<strong>子层二:前馈网络(FFN)</strong>——两层线性 + 激活:FFN(x)=W₂·act(W₁x),中间维度通常为 4d(或 SwiGLU 的 8/3·d)。<strong>残差连接</strong>——每个子层外都有 h←h+SubLayer(·),为梯度提供恒等路径(Jacobian 含 I),是深层可训练的关键。<strong>归一化</strong>——现代默认 <strong>Pre-LN</strong>(LN 放在子层<strong>之前</strong>),使残差路径保持纯净恒等;Post-LN(原论文)把 LN 放在残差相加<strong>之后</strong>,会打断恒等路径、需 warmup 才能稳定训练。<strong>解码器块</strong>额外插入一个<strong>交叉注意力</strong>子层(query 来自解码器、key/value 来自编码器),用于 Enc-Dec 架构;仅解码器模型则只有'因果自注意力 + FFN'两个子层。<strong>顺序</strong>(现代默认):LN → MHA → 残差 → LN → FFN → 残差,且模型末端通常加一个 final LN 以抑制 Pre-LN 的方差累积。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>归一化的位置谱系</strong>——Post-LN(原论文,需 warmup、深层不稳)→ Pre-LN(现代默认,稳定但方差随深度累积,需末端 LN)→ <strong>RMSNorm</strong>(省去均值计算与 β,LLaMA 用)→ <strong>QK-Norm</strong>(对 Q/K 额外归一化,稳定注意力 logits,防熵崩塌)→ <strong>DeepNorm</strong>(Post-LN 的复兴,用缩放残差控制方差)。理解这条谱系即掌握 Transformer 稳定性的演进史。② <strong>参数分布</strong>——每个 block 的参数量约 4d²(MHA 的 QKVO)+ 8d²(FFN 的 4d 中间层,双向)≈ 12d²;故 FFN 占约 2/3 参数,注意力占约 1/3。这解释了'为什么 FFN 是容量主体'与'MoE 把 FFN 换成专家'的选择。③ <strong>计算分布</strong>——prefill 阶段注意力 FLOPs ∝ L²d、FFN ∝ Ld²;短序列时 FFN 主导、长序列时注意力主导(交叉点在 L≈d 附近)。这决定长上下文优化的重点。④ <strong>激活与归一化的数量</strong>——现代架构倾向于'减少激活与归一化'(如只在 FFN 中用一次激活、用 RMSNorm 而非 LN),因为它们在低精度与融合算子下是开销点。⑤ <strong>与残差流的统一视角</strong>——把 x 看作一条'残差流'(residual stream),每个子层从中读取、再把结果写回,是理解 Transformer 信息流的有力框架(见后续题)。⑥ <strong>面试要点</strong>——被问'画一个 Transformer block',应写出 Pre-LN 公式并说明'残差 + LN 的顺序为何重要';能说出'FFN 占 2/3 参数'与'QK-Norm/DeepNorm'这些细节会显著加分。
⚠️ Common Interview Pitfalls
  • ✕
    把 Post-LN 当作现代默认(现代用 Pre-LN)
  • ✕
    忽略解码器块的交叉注意力子层
🎯 Interviewer Follow-ups
  • ?
    为什么残差与 LN 的顺序如此重要?
  • ?
    解码器块与编码器块差在哪?
📚

Associated Knowledge Base Guides & Mindmaps

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

← PreviousM4-012: Seq2Seq & Attention Origins: 比较编码器-解码器、仅解码器与仅编码器架构的适用场景。📋Back to BankNext →M4-014: Transformer Architecture Anatomy: 写出缩放点积注意力,并解释 √d_k 的作用。