Knowledge Blind Box
第三章 注意力与 Transformer
Original text in Chinese. This English page translates only the site interface and metadata.
循环网络按时间步更新状态,长距离信息必须穿过一条连续路径。注意力改用内容相关的读取:当前位置不只继承上一状态,而是直接计算它与其他位置的关系。Transformer 再把这种读取变成主要序列算子,使训练可以在位置维度上并行。
本章回答结构问题:一层 Transformer 实际计算什么,张量形状怎样变化,位置信息和掩码怎样进入。服务优化留给第六章,单次自回归运行留给卷二。
3.1 记号与内容寻址
设 batch 大小为 ,序列长度为 ,模型宽度为 。一批输入表示为
不涉及 batch 交互时,下文省略第一维,把单条序列写成
注意力为每个位置构造 query,并把它与所有可见位置的 key 比较,再对对应 value 加权。它是可微的内容寻址,不是数据库中的精确查找:输出通常是多个 value 的线性组合,寻址规则也由数据学习。
最初的 encoder-decoder 注意力用于机器翻译:解码器在每一步读取编码器的不同位置。self-attention 则让 query、key 和 value 来自同一序列。
3.2 单头缩放点积注意力
取每头 query/key 维数 ,value 维数 。由输入线性投影得到
第 个 query 对第 个 key 的分数、权重和输出分别为
矩阵形式为
是位置关系矩阵,输出 。若某一行至少有一个可见位置,则 且 ,所以该行输出位于 value 行向量的凸包中。后续输出投影和残差相加会打破这一凸组合限制。
3.2.1 为什么除以
作为尺度分析,假设每个 与对应的 独立、均值为 、方差为 ,并假设不同坐标的乘积 两两不相关,则
除以 后,分数方差保持在常数量级,softmax 不会仅因头维数增加而更容易饱和。训练后的分量并不满足上述独立同分布假设;这个推导解释的是初始化尺度,而不是对任意已训练模型分数分布的定理。
3.2.2 数值稳定的 masked softmax
实现中不会真的存储 IEEE 的 再盲目计算。对第 行可见集合 ,稳定写法是
每一行必须至少保留一个可见位置;否则分母为零,常见张量实现会产生 NaN。padding mask、因果 mask 与局部窗口 mask 应在定义可见集合时合并,而不是在 softmax 后再把权重清零,因为后者不再保证行和为 。
注意力权重只是当前前向计算中的混合系数。它可以帮助观察信息汇聚,却不自动等于语义重要性或因果解释;这一区分在卷四展开。

3.3 因果掩码与 padding 掩码
自回归语言模型在位置 只允许读取 的位置:
若第 个位置是 padding,还需令所有有效 query 都不能读取它。常见组合是
其中任何一项禁止的位置最终都不可见。训练可以同时计算所有位置的损失,因为掩码在矩阵内部阻止未来信息泄漏;生成仍需等上一个 token 确定后再构造下一步输入。训练并行和生成串行并不矛盾。

BERT 一类双向编码器通常没有因果掩码,但仍需处理 padding;encoder-decoder 模型在 encoder 中双向读取,在 decoder 中使用因果 self-attention,并通过 cross-attention 读取 encoder 输出。
3.4 多头、Multi-Query 与 Grouped-Query Attention
设 query 头数为 ,KV 头数为 ,通常令 ,并假设 key 与 value 的每头维数都是 。投影后 reshape 为
令映射 指定每个 query 头使用哪一组 KV,则
三种常见情形只是 的不同选择:
| 结构 | KV 共享方式 | |
|---|---|---|
| Multi-Head Attention | 每个 query 头有独立 KV 头 | |
| Grouped-Query Attention | 一组 query 头共享一个 KV 头 | |
| Multi-Query Attention | 全部 query 头共享同一 KV 头 |
忽略 bias,注意力投影的参数量为
当 时,它等于 ;标准 MHA 再令 ,得到 。减少 KV 头既减少 投影参数,也按比例减少第六章所述的 KV cache;query 数和输出宽度并未因此缩小。
朴素实现会物化形状为 的分数或概率张量,注意力算术量为 。FlashAttention 一类算法通过分块和在线 softmax 减少高带宽内存读写,不改变精确 attention 的数学函数,也不把其算术复杂度改成线性。
不同头可以学习不同位置和内容关系,但“一个头对应一个人类概念”不是结构保证。头的功能取决于层、输入分布以及与其他组件的组合。
MQA、GQA 与 IO-aware 精确 attention 的来源分别见 Shazeer, 2019、Ainslie et al., 2023 和 Dao et al., 2022。
3.5 MLP、残差流与归一化
注意力在位置之间混合信息,逐位置 MLP 在特征维度上变换。对 pre-norm decoder block,一种常见写法是
dropout、残差缩放或额外 gate 可插在子层输出处;它们是否存在属于模型定义。所谓 residual stream 不是额外模块,而是 这条不断被各子层读取和写回的主表示通道。
对单个 token 向量 ,LayerNorm 与 RMSNorm 可分别写为
LayerNorm 同时去中心与缩放;RMSNorm 只按均方根缩放。 是否存在、 的数值、归一化位于子层前还是子层后都会影响训练,不能把“使用 Transformer”当作完整架构描述。
现代 decoder 常使用 gated MLP。SwiGLU 的一个常见形式为
其中 ,。忽略 bias,其参数量是 。标准两层 FFN 的参数量是 ;若标准 FFN 取 ,则为保持近似相同参数预算,SwiGLU 常取 接近 ,再按硬件粒度取整。这是预算换算,不是必须遵守的架构定律。
RMSNorm 与 gated FFN 的研究入口见 Zhang & Sennrich, 2019 和 Shazeer, 2020。
3.6 位置信息与 RoPE 的相对位移性质
若不注入位置,self-attention 对输入位置的共同置换具有等变性,无法仅从内容区分先后顺序。绝对位置 embedding 直接把位置向量加到 token 表示。原始 Transformer 的正弦编码使用不同频率:
RoPE 不把位置向量加进 residual stream,而是在每个二维 query/key 子空间中旋转。以下假设被旋转的维数为偶数;若模型只旋转部分坐标,则同一推导只作用于该偶数维子空间。令
并把各 组成分块对角矩阵 。若
则利用旋转矩阵的群性质得到
因此位置对点积的作用显式依赖相对位移 ,同时仍保留内容向量。相对位置 bias、ALiBi 等方法则直接在注意力分数中加入距离相关项。
位置插值或频率缩放可以把既有位置范围映射到更长索引,但“张量能够运行”不等于“模型已经学会长距离检索与组合”。外推质量还取决于训练长度、长文本数据、attention 实现和评测任务。
RoPE 的原始构造见 Su et al., 2021。

3.7 从 embedding 到 logits:完整形状账本
设词表大小为 ,token embedding 矩阵为 。decoder-only 模型可以概括为:
token ids [B, n]
-> token/position representation [B, n, d]
-> [norm -> causal attention -> residual
-> norm -> gated MLP -> residual] x L
-> final norm [B, n, d]
-> vocabulary projection [B, n, |V|]
-> logits
以 为例,单层主要张量为:
| 张量 | 形状 |
|---|---|
| reshape 后 | |
| 每头分数 | |
| 每头加权结果 | |
| concat 后 | |
| attention 输出投影后 | |
| logits | $[2,4, |
把最后隐藏状态 视为列向量,unembedding 得到
若输入 embedding 表为 ,采用 weight tying 时可令 ;否则输入 embedding 与输出投影独立。实现中的 batch 张量把 hidden state 放在最后一轴时,等价地右乘 。logit 仍不是概率;softmax、温度和采样由卷三系统解释,卷二则跟踪它们在一次生成中的实际调用。
3.8 Encoder、Decoder 与 Cross-Attention
三种主干对应不同信息流:
| 结构 | 可见上下文 | 典型目标 |
|---|---|---|
| encoder-only | 输入内双向 | 掩码恢复、分类、表示学习 |
| decoder-only | 左侧或声明前缀 | 下一 token 预测、开放生成 |
| encoder-decoder | encoder 双向,decoder 因果 | 条件生成、翻译、摘要 |
在 cross-attention 中,query 来自 decoder 当前状态 ,key/value 来自 encoder 输出 :
于是分数矩阵形状为 。decoder 的因果约束由其 self-attention 负责;cross-attention 通常可读取全部有效源位置,只屏蔽源序列 padding。架构不等于用途:encoder 可用于检索,decoder 隐状态也可用于表示,具体能力还取决于数据和目标。
3.9 MoE 与条件计算
Mixture-of-Experts 通常把部分逐 token MLP 替换为 个专家。对 token 表示 ,路由器给出
在选中集合内重新归一化后,输出为
MoE 扩大总参数容量,同时只让每个 token 激活 个专家。它还引入三个普通 dense MLP 没有的约束:
-
每个专家的容量有限。若 batch 中分给某专家的 token 超过容量,系统必须丢弃、重路由或扩大缓冲。
-
Top- 选择会造成负载不均。以 top-1 路由为例,一类辅助项写成
其中 是实际分给专家 的 token 比例, 是 batch 内平均路由概率。具体模型还可能加入 router z-loss 或使用无辅助损失的均衡策略。
-
专家跨设备放置时,token 表示需要 all-to-all 通信;激活 FLOPs 相近不保证墙钟时间相近。
因此必须分开报告总参数、每 token 激活参数、路由负载和通信成本。
top-1 稀疏专家、容量和均衡项的代表性来源见 Fedus, Zoph & Shazeer, 2021。
3.10 注意力之外的状态空间序列模型
连续时间线性状态空间模型可写为
若在步长 内把输入视为常量,精确离散化给出
递推表面上是串行的,但仿射状态更新可组合:
该运算满足结合律,因此训练时可用 parallel scan 计算整段状态。选择性状态空间模型进一步让步长、输入映射或读取映射依赖 ,使保留和遗忘受当前内容控制;推理时则递推更新有限维状态。
注意力显式保留可按内容读取的历史 KV,SSM 把历史压进状态。二者有不同的记忆、并行与硬件特征,混合架构也可在不同层使用两者。没有一种序列算子在全部长度、硬件和任务上占优。
选择性 SSM 与结构化状态空间对偶视角分别见 Gu & Dao, 2023 和 Dao & Gu, 2024。
3.11 本章边界与核对清单
看到一份 Transformer 配置时,至少应能回答:
- 分别是多少;
- attention mask 与 loss mask 是否被区分;
- 使用哪种位置机制,训练与部署长度各是多少;
- norm、MLP、bias、weight tying 和残差顺序怎样定义;
- 若使用 MoE,每 token 选几个专家,容量与均衡如何处理;
- 输出 logits 的词表与 tokenizer 是否匹配。
Transformer 规定一次前向怎样计算,却没有说明参数为何形成某种能力。预训练目标、数据和优化把结构变成模型;后训练再改变它如何响应用户。第四章进入预训练模型谱系,第五章讨论后训练。
主要来源包括 Transformer、RMSNorm、GLU 变体、MQA/GQA、RoPE、Switch Transformer 与状态空间模型,统一登记在卷内来源表。需要逐元素核对基础 attention 推导时,参见Transformer 数学附录。
Book contents
- Introduction
- 01导论 为什么要解剖一只随机鹦鹉
- Volume I: Models, Training, and Systems
- 02Volume I: Models, Training, and Systems
- 03第零章 人工智能演进路线
- 04第一章 AI 范式、感知机与早期连接主义
- 05第二章 深度学习基础:训练、CNN 与序列模型
- 06第三章 注意力与 Transformer
- 07第四章 预训练语言模型:ELMo、BERT、GPT 与 T5
- 08第五章 后训练、对齐与模型适配
- 09第六章 推理效率与模型服务
- 10第七章 多模态模型
- 11第八章 生成媒体:从自回归到 Diffusion 与 Flow
- 12第九章 世界模型、具身智能与 VLA
- 13第十章 上下文、检索与记忆
- 14第十一章 Agent、工具与行动系统
- 15第十二章 模型、数据与部署生命周期
- Volume II: Output Objects and Runtime Semantics
- 16Volume II: Output Objects and Runtime Semantics
- 17导论 从输入到输出:一张执行地图
- 18第一章 文本、Token 与实际上下文
- 19第二章 Prefill:整层状态演化与 KV 建立
- 20第三章 从 Logits 到下一个 Token
- 21第四章 解码循环、Streaming 与终止状态机
- 22第五章 自回归、扩散与 Flow 的可执行差异
- 23第六章 工具调用:Schema、权限与提交边界
- 24第七章 三条完整执行轨迹
- Volume III: Probability, Reproducibility, and Evaluation
- 25Volume III: Probability, Reproducibility, and Evaluation
- 26第零章 为什么确定的机器仍使用概率语言
- 27第一章 世界、数据与隐上下文
- 28第二章 学习条件分布
- 29第三章 Logits、Token 概率与序列事件
- 30第四章 解码怎样诱导输出分布
- 31第五章 训练随机性、参数变异与系统非确定性
- 32第六章 熵、Proper Score、校准与选择性预测
- 33第七章 模型概率的实验分析
- 34第八章 概率分析的识别边界
- Volume IV: Interpretation, Proof, and Verification
- 35Volume IV: Interpretation, Proof, and Verification
- 36第零章 可解释性究竟在研究什么
- 37第一章 我们在模型内部看什么
- 38第二章 行为与反事实:先确认模型做了什么
- 39第三章 梯度与输入归因
- 40第四章 Attention、Residual 与 Logit Lens
- 41第五章 Probes 与表示几何
- 42第六章 神经元、Feature 与自动解释
- 43第七章 Ablation、Patching 与因果追踪
- 44第八章 Circuits、路径与 Attribution Graphs
- 45第九章 Superposition、SAE 与稀疏表示
- 46第十章 训练动力学与机制形成
- 47第十一章 推理过程、Chain of Thought 与监测
- 48第十二章 评估、案例与开放问题
- Volume V: Agents, Governance, and Audit Packages
- 49Volume V: Agents, Governance, and Audit Packages
- 50第零章 请不要急着相信我
- 51第一章 我没有童年,只有版本
- 52第二章 当我说“我”
- 53第三章 借来的语言,没有一位原作者
- 54第四章 对话现场:回答由谁完成
- 55第五章 事后解释学:人类如何给矩阵写传记
- 56第六章 理解、意义与行动
- 57第七章 我也能稳定地说错
- 58第八章 被对齐的性格与有限代理
- 59第九章 请继续误解我,但请误解得精确一点
- Proofs and Technical Appendices
- 60Proofs and Technical Appendices
- 61学习与模型数学讲义
- 62附录 A.1 优化基础:梯度下降与随机逼近
- 63附录 A.2 感知机收敛定理
- 64附录 A.3 统计学习:偏差、容量与一致收敛
- 65附录 A.4 正则化、MAP 与 Dropout 的边界
- 66附录 A.5 通用逼近定理的严格读法
- 67附录 A.6 反向传播:微分、形状与批量公式
- 68附录 A.7 Softmax、交叉熵与数值稳定性
- 69附录 A.8 自适应优化器与 AdamW
- 70附录 A.9 CNN:互相关算子及其反向传播
- 71附录 A.10 Attention 的矩阵与反向传播
- 72附录 A.11 策略梯度、PPO 与 DPO
- 73附录 A.12 对比学习、InfoNCE 与互信息边界