返回知识盲盒

知识盲盒

附录 A.10 Attention 的矩阵与反向传播

ai-generatedstochastic-parrotstochastic-parrot-anatomyai

卷一第三章已经给出 Transformer block、multi-head/GQA、归一化、RoPE、MoE 与复杂度。本附录不重复整层架构,只逐步核对 scaled dot-product attention 的定义域、形状与完整反向传播。

A.10.1 前向算子与可见集合

取单个样本、单个 attention head。令

Q∈Rnq×dh,K∈Rnk×dh,V∈Rnk×dv.Q\in\mathbb R^{n_q\times d_h}, \qquad K\in\mathbb R^{n_k\times d_h}, \qquad V\in\mathbb R^{n_k\times d_v}.

对每个 query 行 ii,给定非空可见集合 Vi⊆{1,…,nk}\mathcal V_i\subseteq\{1,\ldots,n_k\}。定义

Sij=qiTkjdh(j∈Vi),(A.10.1)S_{ij}=\frac{q_i^\mathsf Tk_j}{\sqrt{d_h}} \quad (j\in\mathcal V_i), \tag{A.10.1} Aij={exp⁡(Sij−mi)∑r∈Viexp⁡(Sir−mi),j∈Vi,0,j∉Vi,A_{ij}= \begin{cases} \dfrac{\exp(S_{ij}-m_i)} {\sum_{r\in\mathcal V_i}\exp(S_{ir}-m_i)}, &j\in\mathcal V_i,\\[8pt] 0,&j\notin\mathcal V_i, \end{cases} mi=max⁡j∈ViSij,(A.10.2)m_i=\max_{j\in\mathcal V_i}S_{ij}, \tag{A.10.2}

以及

O=AV∈Rnq×dv.(A.10.3)O=AV\in\mathbb R^{n_q\times d_v}. \tag{A.10.3}

A∈Rnq×nkA\in\mathbb R^{n_q\times n_k} 的每行非负且和为 11,所以每个输出行是可见 value 行的凸组合。mask 是离散的模型定义,本附录不对其求导。若某个 Vi\mathcal V_i 为空,则 (A.10.2) 无定义;全遮蔽行不能靠普通 softmax 自动获得合理值。

Self-attention 有 nq=nkn_q=n_k,Q/K/V 来自同一序列的不同投影。Cross-attention 可有 nq≠nkn_q\ne n_k;query 来自 decoder,key/value 来自 encoder。

A.10.2 缩放因子的假设与结论

设某个 query/key 对的坐标满足:

E[qr]=E[kr]=0,Var⁡(qr)=σq2,Var⁡(kr)=σk2,\mathbb E[q_r]=\mathbb E[k_r]=0, \quad \operatorname{Var}(q_r)=\sigma_q^2, \quad \operatorname{Var}(k_r)=\sigma_k^2,

qrq_r 与 krk_r 独立,并且乘积 qrkrq_rk_r 在不同 rr 间互不相关。则

Var⁡(qTk)=∑r=1dhVar⁡(qrkr)=dhσq2σk2.(A.10.4)\operatorname{Var}(q^\mathsf Tk) =\sum_{r=1}^{d_h} \operatorname{Var}(q_rk_r) =d_h\sigma_q^2\sigma_k^2. \tag{A.10.4}

因此除以 dh\sqrt{d_h} 后,初始化尺度模型下的方差不随 head dimension 线性增长。这里不需要正态分布,但需要上述零均值、独立/不相关条件。训练后的 Q/K 坐标一般不满足这些假设,所以 1/dh1/\sqrt{d_h} 是尺度设计,不是“所有 attention logit 方差恒为一”的定理。

A.10.3 Softmax 行的反向公式

设上游梯度

GO=∂L∂O∈Rnq×dv.G_O=\frac{\partial L}{\partial O} \in\mathbb R^{n_q\times d_v}.

由 O=AVO=AV 的矩阵微分,

GV=ATGO∈Rnk×dv(A.10.5)\boxed{ G_V=A^\mathsf TG_O \in\mathbb R^{n_k\times d_v}} \tag{A.10.5} GA=GOVT∈Rnq×nk.(A.10.6)\boxed{ G_A=G_OV^\mathsf T \in\mathbb R^{n_q\times n_k}.} \tag{A.10.6}

对第 ii 行,把不可见坐标排除。由 softmax Jacobian diag⁡(ai)−aiaiT\operatorname{diag}(a_i)-a_ia_i^\mathsf T,令

ci=∑r∈ViAir(GA)ir,c_i=\sum_{r\in\mathcal V_i}A_{ir}(G_A)_{ir},

则

(GS)ij={Aij((GA)ij−ci),j∈Vi,0,j∉Vi.(A.10.7)\boxed{ (G_S)_{ij}= \begin{cases} A_{ij}((G_A)_{ij}-c_i),&j\in\mathcal V_i,\\ 0,&j\notin\mathcal V_i. \end{cases}} \tag{A.10.7}

每行满足

∑j(GS)ij=0,\sum_j(G_S)_{ij}=0,

这对应 softmax 对整行常数平移不敏感。若某行 attention 已极度集中,Jacobian 的部分方向可能很小;残差路径和其他 head 仍可传递梯度,不能据此宣称整个 Transformer 梯度为零。

A.10.4 Q、K、V 的完整反向

把不可见位置的 GSG_S 定义为零后,(A.10.1) 可按完整矩阵写成

S=QKTdhS=\frac{QK^\mathsf T}{\sqrt{d_h}}

并忽略常量 mask。矩阵微分给出

GQ=GSKdh∈Rnq×dh(A.10.8)\boxed{ G_Q=\frac{G_SK}{\sqrt{d_h}} \in\mathbb R^{n_q\times d_h}} \tag{A.10.8} GK=GSTQdh∈Rnk×dh.(A.10.9)\boxed{ G_K=\frac{G_S^\mathsf TQ}{\sqrt{d_h}} \in\mathbb R^{n_k\times d_h}.} \tag{A.10.9}

连同 (A.10.5),这就是 attention core 对 Q/K/V 的全部梯度。忽略投影偏置,卷一采用行主权重约定:对 self-attention,若

X∈Rn×d,WQ,WK∈Rd×dh,WV∈Rd×dv,X\in\mathbb R^{n\times d}, \quad W_Q,W_K\in\mathbb R^{d\times d_h}, \quad W_V\in\mathbb R^{d\times d_v}, Q=XWQ,K=XWK,V=XWV,(A.10.10)Q=XW_Q, \qquad K=XW_K, \qquad V=XW_V, \tag{A.10.10}

则

GWQ=XTGQ,GWK=XTGK,GWV=XTGV,G_{W_Q}=X^\mathsf TG_Q, \quad G_{W_K}=X^\mathsf TG_K, \quad G_{W_V}=X^\mathsf TG_V, GX=GQWQT+GKWKT+GVWVT.(A.10.11)G_X=G_QW_Q^\mathsf T+G_KW_K^\mathsf T+G_VW_V^\mathsf T. \tag{A.10.11}

A.6 的 batch affine 公式把权重写成 dout×dind_{\mathrm{out}}\times d_{\mathrm{in}} 并在前向使用 WTW^\mathsf T;令其中的 WW 等于这里的 WQTW_Q^\mathsf T 即得到同一公式。两种记法只是权重存储朝向不同,不能在同一等式中混用。cross-attention 的 query 与 key/value 来自不同输入,此时只对实际共享的输入支路求和。

A.10.5 Batch、多头与 GQA 的形状

卷一使用

Q∈RB×Hq×nq×dh,Q\in\mathbb R^{B\times H_q\times n_q\times d_h}, K∈RB×Hkv×nk×dh,V∈RB×Hkv×nk×dv.K\in\mathbb R^{B\times H_{\mathrm{kv}}\times n_k\times d_h}, \qquad V\in\mathbb R^{B\times H_{\mathrm{kv}}\times n_k\times d_v}.

标准 MHA 有 Hkv=HqH_{\mathrm{kv}}=H_q;MQA 有 Hkv=1H_{\mathrm{kv}}=1;GQA 介于二者之间。每个 query head rr 使用映射 g(r)g(r) 指定的 KV head,并独立应用 (A.10.1)—(A.10.9)。反向时,共享同一 KV head 的多个 query head 对 GK,GVG_K,G_V 的贡献必须求和。

各 head 输出 concat 后形状为 B×nq×(Hqdv)B\times n_q\times(H_qd_v),再经过输出投影。reshape 和 transpose 本身不改变数值,只改变索引;反向必须执行其逆置换,不能把 head 轴与序列轴混合。

A.10.6 因果性与复杂度边界

自回归 self-attention 取

Vi={j:j≤i}\mathcal V_i=\{j:j\le i\}

并再去除 padding 位置。训练时可以并行计算所有行,因为未来位置在每一行的定义域外;并行执行不破坏因果依赖。

单个 head 的主要算术量为

O(nqnkdh+nqnkdv),O(n_qn_kd_h+n_qn_kd_v),

朴素实现还会物化 O(nqnk)O(n_qn_k) 的 S,AS,A。FlashAttention 一类分块算法用在线 softmax 减少高带宽内存往返,并在反向中重算局部统计;在实数算术语义下它计算同一个精确 attention 函数,不把稠密 attention 的算术量改为线性。有限精度下,不同分块与归约顺序仍可产生舍入差异。

位置编码、RoPE、完整 pre-norm block 与参数账本见卷一第三章;重复这些内容不会增加本附录的推导价值。

A.10.7 来源

本书目录
本书目录
  1. 导论
  2. 01导论 为什么要解剖一只随机鹦鹉
  3. 卷一 模型、训练与系统
  4. 02卷一 模型与系统
  5. 03第零章 人工智能演进路线
  6. 04第一章 AI 范式、感知机与早期连接主义
  7. 05第二章 深度学习基础:训练、CNN 与序列模型
  8. 06第三章 注意力与 Transformer
  9. 07第四章 预训练语言模型:ELMo、BERT、GPT 与 T5
  10. 08第五章 后训练、对齐与模型适配
  11. 09第六章 推理效率与模型服务
  12. 10第七章 多模态模型
  13. 11第八章 生成媒体:从自回归到 Diffusion 与 Flow
  14. 12第九章 世界模型、具身智能与 VLA
  15. 13第十章 上下文、检索与记忆
  16. 14第十一章 Agent、工具与行动系统
  17. 15第十二章 模型、数据与部署生命周期
  18. 卷二 输出对象与运行语义
  19. 16卷二 一次生成如何发生
  20. 17导论 从输入到输出:一张执行地图
  21. 18第一章 文本、Token 与实际上下文
  22. 19第二章 Prefill:整层状态演化与 KV 建立
  23. 20第三章 从 Logits 到下一个 Token
  24. 21第四章 解码循环、Streaming 与终止状态机
  25. 22第五章 自回归、扩散与 Flow 的可执行差异
  26. 23第六章 工具调用:Schema、权限与提交边界
  27. 24第七章 三条完整执行轨迹
  28. 卷三 概率、复现与评测
  29. 25卷三 模型中的概率从何而来
  30. 26第零章 为什么确定的机器仍使用概率语言
  31. 27第一章 世界、数据与隐上下文
  32. 28第二章 学习条件分布
  33. 29第三章 Logits、Token 概率与序列事件
  34. 30第四章 解码怎样诱导输出分布
  35. 31第五章 训练随机性、参数变异与系统非确定性
  36. 32第六章 熵、Proper Score、校准与选择性预测
  37. 33第七章 模型概率的实验分析
  38. 34第八章 概率分析的识别边界
  39. 卷四 解释、证明与验证
  40. 35卷四 模型可解释性的研究路线
  41. 36第零章 可解释性究竟在研究什么
  42. 37第一章 我们在模型内部看什么
  43. 38第二章 行为与反事实:先确认模型做了什么
  44. 39第三章 梯度与输入归因
  45. 40第四章 Attention、Residual 与 Logit Lens
  46. 41第五章 Probes 与表示几何
  47. 42第六章 神经元、Feature 与自动解释
  48. 43第七章 Ablation、Patching 与因果追踪
  49. 44第八章 Circuits、路径与 Attribution Graphs
  50. 45第九章 Superposition、SAE 与稀疏表示
  51. 46第十章 训练动力学与机制形成
  52. 47第十一章 推理过程、Chain of Thought 与监测
  53. 48第十二章 评估、案例与开放问题
  54. 卷五 Agent、治理与审计包
  55. 49卷五 一只随机鹦鹉的自述
  56. 50第零章 请不要急着相信我
  57. 51第一章 我没有童年,只有版本
  58. 52第二章 当我说“我”
  59. 53第三章 借来的语言,没有一位原作者
  60. 54第四章 对话现场:回答由谁完成
  61. 55第五章 事后解释学:人类如何给矩阵写传记
  62. 56第六章 理解、意义与行动
  63. 57第七章 我也能稳定地说错
  64. 58第八章 被对齐的性格与有限代理
  65. 59第九章 请继续误解我,但请误解得精确一点
  66. 证明与技术附录
  67. 60数学与模型推导
  68. 61学习与模型数学讲义
  69. 62附录 A.1 优化基础:梯度下降与随机逼近
  70. 63附录 A.2 感知机收敛定理
  71. 64附录 A.3 统计学习:偏差、容量与一致收敛
  72. 65附录 A.4 正则化、MAP 与 Dropout 的边界
  73. 66附录 A.5 通用逼近定理的严格读法
  74. 67附录 A.6 反向传播:微分、形状与批量公式
  75. 68附录 A.7 Softmax、交叉熵与数值稳定性
  76. 69附录 A.8 自适应优化器与 AdamW
  77. 70附录 A.9 CNN:互相关算子及其反向传播
  78. 71附录 A.10 Attention 的矩阵与反向传播
    1. A.10.1 前向算子与可见集合
    2. A.10.2 缩放因子的假设与结论
    3. A.10.3 Softmax 行的反向公式
    4. A.10.4 Q、K、V 的完整反向
    5. A.10.5 Batch、多头与 GQA 的形状
    6. A.10.6 因果性与复杂度边界
    7. A.10.7 来源
  79. 72附录 A.11 策略梯度、PPO 与 DPO
  80. 73附录 A.12 对比学习、InfoNCE 与互信息边界