> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/llm_internals/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/llm_internals/di-yi-bu-fen-ji-chu-pian/02_attention/summary.md).

# 本章小结

本章解析了 Transformer 的核心组件——注意力机制。核心要点如下：

**三路投影的硬理由**：不投影时分数矩阵必然对称，且各位置范数相同时对角线最大，注意力退化为“看自己”。三套投影同时解决这两点。$W^Q$ 与 $W^K$ 只以乘积出现，该乘积是秩不超过 $d\_k$ 的双线性型，因此单个 Q/K 维度没有固定含义；$W^V$ 与 $W^O$ 同理成对。

**缩放因子 $\sqrt{d\_k}$ 的作用范围**：在“各分量独立、零均值、单位方差”的初始化假设下，点积方差为 $d\_k$，除以 $\sqrt{d\_k}$ 把它拉回 1，避免 Softmax 一开始就饱和、雅可比趋零。这个修正只管到初始化；训练中 logits 会持续增长，需要 QK-Norm、logit soft-cap 一类的动态约束。

**多头的三笔账**：参数 $4d^2$ 与头数无关，打分与读取的 FLOPs $4n^2d$ 也与头数无关，但分数矩阵的显存按 $n\_h \times n^2$ 随头数线性增长。原论文的消融显示 8 到 16 头是一段平缓的最优区间，并非某个最优点。训练后多数头可剪，注意力权重也不等于模型的解释。

**因果掩码换来的两样东西**：一次前向同时给出 $n$ 个下一词元预测的损失；旧位置的 K、V 永不改变，因而可以缓存。掩码是加在分数上而非乘在权重上，半精度实现用 `finfo.min` 代替 $-\infty$，整行被遮会得到 NaN。因果、双向、前缀 LM、滑动窗口、块对角都是同一张 `[T, T]` 矩阵的不同填法。

**平方复杂度与四条固有局限**：自注意力用 $O(n^2)$ 的计算和显存换来 $O(1)$ 的路径长度与完全并行。$d = 4096$ 时，平方项在 2K 上下文上只占一层的百分之几，到 $n = 12d$ 才与线性项持平。复杂度之外还有四条换硬件解决不了的局限：置换等变、行和为 1 导致的注意力汇、长度稀释、纯注意力堆叠的秩坍缩。

本章所有公式都从 $Q = XW^Q$ 里的 $X$ 出发，而 $n$ 由谁决定、$X$ 的每一行从哪里来，至此仍未交代。

***

> 📝 **发现错误或有改进建议？** 欢迎提交 [Issue](https://github.com/yeasy/llm_internals/issues) 或 [PR](https://github.com/yeasy/llm_internals/pulls)。
