M4-016M4: Sequences & TransformersTransformer Architecture AnatomyMedium
Mastery:

Transformer Architecture Anatomy: 解释注意力的多头设计为什么有用。

📐 Mathematical Definition
MHA(X)=Concat(head1,…,headh)WO,headi=Attn(XWiQ,XWiK,XWiV)\mathrm{MHA}(X)=\mathrm{Concat}(\mathrm{head}_1,\dots,\mathrm{head}_h)W^O,\quad \mathrm{head}_i=\mathrm{Attn}(XW_i^Q,XW_i^K,XW_i^V)
⚡ Executive Summary
Core Concept: 多个头在不同子空间并行做注意力,可捕捉不同关系(语法/语义/位置),并降低单头的表示瓶颈。

📌 Key Takeaways

  • •
    每个头有独立的 Q/K/V 投影,d_head=d/h
  • •
    总参数量与单头(同总维度)相近
  • •
    不同头学不同模式(相邻词、句法依存、指代等)

📐 Mathematical Derivations

数学机理:<strong>多头注意力(MHA)</strong> 把模型维度 d 拆成 h 个子空间(每个 d_head=d/h),在每个子空间独立计算注意力,再把 h 个输出拼接后经 W^O 投影。<strong>为什么有用</strong>——三个层次的原因:<strong>(1) 子空间并行</strong>——单个 softmax 只能产生一个注意力分布,即在'哪些位置相关'上只能做一次选择;多头允许<strong>同时</strong>关注多种关系(如头 1 关注相邻词、头 2 关注句法依存、头 3 关注指代、头 4 关注位置距离)。这相当于把'注意力模式'解耦到不同子空间,避免了'一个分布必须同时满足多种需求'的冲突。<strong>(2) 降低表示瓶颈</strong>——若用单头且 d_head=d,则每个位置的输出是'一个加权平均'(在所有位置上平均),信息的'带宽'受限(一个向量要同时承载多种关系);多头通过 concat 提供 h 倍的输出维度组合,缓解瓶颈。<strong>(3) 训练稳定性</strong>——多头使梯度分散到多个子空间,降低了单头因 softmax 饱和而梯度消失的风险。<strong>关键事实</strong>:多头的<strong>总参数量与单头(总维度相同)相同</strong>(因为 Q/K/V 投影的总维度都是 d),故多头是'免费的'表达力提升——这使它在计算量不变的前提下改进模型。<strong>实证</strong>——Voita 等 (2019) 的剪枝分析发现:多数头可以剪掉而性能不降,少数'关键头'负责特定功能(如'位置头'关注前一个 token、'句法头'跟踪依存关系);这支持'多头分工'的解释。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>头数 h 的选择</strong>——典型 h=8~32、d_head=64~128;h 太大则每头维度太小(表达力不足)、h 太小则子空间不足。经验上 d_head 保持在 64~128 是常见区间。② <strong>头的功能分化</strong>——可解释性研究识别出多类功能头:<strong>位置头</strong>(关注固定偏移)、<strong>句法头</strong>(依存弧)、<strong>归纳头(induction head)</strong>(实现 in-context learning 的复制机制)、<strong>注意力汇聚头(sink)</strong>(吸收多余注意力)。归纳头的发现是机制可解释性的重要成果。③ <strong>MQA/GQA 的权衡</strong>——多头在推理时需为每个头缓存 K/V,KV cache 显存 ∝ h;MQA(所有头共享一组 K/V)与 GQA(分组共享)用'减少 K/V 头数'换取显存与带宽的大幅节省,代价是质量略降(可用 uptraining 恢复)。这是'多头设计的推理代价'。④ <strong>头剪枝与蒸馏</strong>——既然部分头冗余,可做头剪枝(结构化稀疏)以加速推理;但需谨慎(剪掉关键头会显著掉点)。⑤ <strong>与 FFN 的容量分工</strong>——多头提供'多个注意力视角',FFN 提供'逐位置变换';两者的参数量比约 1:2,说明模型把更多容量放在'逐位置变换'上。⑥ <strong>面试要点</strong>——被问'多头为什么有用',应给出'<strong>子空间并行捕捉多种关系 + 缓解表示瓶颈</strong>',并强调'<strong>总参数量不变</strong>'这一关键事实;能提到'归纳头/位置头/剪枝分析'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    以为多头增加了参数量(同总维度下参数量不变)
  • ✕
    忽略多头在推理时对 KV cache 显存的影响
🎯 Interviewer Follow-ups
  • ?
    多头与单头(同总维度)的表达力差异?
  • ?
    头数 h 如何影响性能与效率?
📚

Associated Knowledge Base Guides & Mindmaps

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

← PreviousM4-015: Transformer Architecture Anatomy: 解释 FFN 的作用,以及为什么用 4× 或 8/3× 的中间维度。📋Back to BankNext →M4-017: Transformer Architecture Anatomy: 解释 Transformer 的表达能力与理论限制。