Transformer:把 token 匹配程度变成信息流
跟踪 Q、K、V,解释因果注意力的一行,并区分并行训练与自回归生成。
Attention Is All You Need · Vaswani et al. · arXiv:1706.03762
Token Lab 原创学习解读 · 来源核对 2026-10-25 · 区分论文主张与合成教学例子。
01 · 论文提出了什么
Transformer 以基于注意力的编码器和解码器模块替代循环结构,论文评估了翻译和句法分析。缩放点积注意力、多头及位置信号是核心组件;原始模型并不等同于今天的 decoder-only LLM。
一手来源:论文摘要 ↗学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
02 · 核心机制
Text / 原始公式
Q=XW_Q, K=XW_K, V=XW_V S=QKᵀ/√dₖ + M A=softmax(S) row-wise O=AV; Mᵢⱼ=−∞ when j>i (causal case)
query 与 key 比较,再决定如何混合 value。N 个 token 对应 Q、K 的 N 行,乘积形成 N×N 个匹配分数。softmax 对每个 query 的一行计算,允许位置的权重和为 1。√dₖ 缩放可由独立坐标的方差论证理解。纯内容匹配不编码顺序,因此需要位置信息。
符号与直觉为教学解释,完整假设及实现细节请对照原论文方法。
机制图与逐步推导
| 符号 | 含义 |
|---|---|
| Q, K ∈ R^(N × d_k) | 查询与键,每个 token 一行 |
| V ∈ R^(N × d_v) | 被混合的值 |
| A ∈ ℝᴺˣᴺ | 逐行归一化混合权重 |
- 先检查形状:QKᵀ 为 N×N,乘 V 后得到 N×dᵥ。形状测试能抓住许多转置错误。
- [2,1,0] 减最大值得到 [0,−1,−2];指数为 [1,0.367879,0.135335],和为 1.503214。相除得到 [0.665241,0.244728,0.090031]。
- 对 [1,3,5] 加权得到 0.665241+0.734185+0.450153≈1.849579。禁止位置应在归一化前掩码;归一化后直接置零却不重新归一,会改变运算。
不仅查行和,也查因果零值及未来 token 扰动不变性。全掩码行需显式处理,避免 NaN。
改变一个变量,解释结果为什么变。
原创教学计算,并非论文 benchmark 复现。条形在面板内相对缩放,具体数值与单位以标注为准。
04 · 手算一个例子
原创算例:第三个 token 的允许分数为 [2,1,0]、value 为 [1,3,5]。softmax 约为 [0.665,0.245,0.090],输出约 1.850。因果实现中,第四个未来 value 的权重必须为零。改变第一个分数,观察连续混合,而不是将注意力当成硬查表。
05 · 设计实验
实现四 token、单头基准版本,断言行和与因果零值。扰动未来 token,验证早先输出不变;在小输入上用有限差分检查梯度。通过这些检查后再加多头,比较批量计算与逐头实现。
写出一个假设,保存配置与原始结果,提出替代解释,只报告证据支持的结论。关联实验是本地起点,不是完整论文复现。
打开关联课程/实验 →06 · 局限与审稿式追问
分析提醒:注意力权重是混合系数,本身不是模型决策的因果解释。完整序列训练可并行计算各位置,自回归生成仍依赖已生成 token。稠密注意力还带来序列长度扩展问题。
每行权重和都是 1,为什么仍可能泄漏未来信息?
归一化只检查概率质量。一行可以和为 1,同时给禁止列分配质量。必须分别测试允许位置及扰动不变性。
07 · 阅读原文
第 3 节,重点是缩放点积、多头注意力和位置编码。
年份采用首次 arXiv 投稿年份。未锁定版本的链接随修订变化,复现报告请记录准确版本。此处 DeepSeek-R1 明确固定为 v1。
继续学习本主题
FlashAttention:除了 FLOPs,还要算数据搬运
理解不保存注意力矩阵为何重要,并逐块重建 softmax。
Dao et al. · arXiv:2205.14135