第 3 章复习与验收
覆盖范围与完成方式
本页验收文本表示到 X、QKV、缩放点积注意力、causal mask、单头实现、多头 shape 和 Decoder Block。暂不考查 MQA、GQA、KV Cache、RoPE、FlashAttention、大模型训练或采样策略。
建议:
- 不查资料完成交互题和推导任务;
- 对照答案标记具体薄弱点;
- 回到对应 lesson 补学,而不是只背答案;
- 重新运行实验并保存断言结果;
- 1 天后重画一次完整数据流,7 天后再做数值题。
交互自测
任务一:不查资料口答
每题要求说明因果关系,不能只给术语。
- 为什么 Query、Key、Value 使用不同投影?
- 投影、reshape、transpose 分别改变什么?
- scores 的两个 token 轴分别代表什么?
- 为什么除以
√D?它改变 shape 吗? - causal mask 为什么必须在 softmax 前作用?
- weighted V 后为什么保留 Tq、消去 Tk?
- attention 与 FFN 在 Transformer Block 中分别负责什么?
- 为什么必须先完成单头注意力,再把表示拆成多个头?
口答检查点
- Q/K 决定匹配,V 提供内容,不同投影允许任务学习角色分工。
- 投影改变数值;reshape 重新解释轴;transpose 改变轴顺序。
- scores 行是 query,列是 key。
√D控制点积随维度增长的尺度,不改变 shape。- mask 在 softmax 前排除非法位置并让合法权重重新归一化。
- 每个 query 对 Tk 个 Value 加权求和,因此 Tk 被消去,Tq 保留。
- attention 跨 token 通信;FFN 对每个 token 独立做非线性变换。
- 多头复用单头的匹配与读取闭环,只增加独立投影空间、head 轴和合并步骤;若单头尚未理解,多出的轴只会掩盖错误。
任务二:完整 shape 推导
给定:
text
B=2, Tq=6, Tk=5, C=12, H=3, D=4写出:
- 输入经过 Q 投影后的 packed shape;
- reshape 与 transpose 后的 Q;
- K 转置最后两轴后的 shape;
- scores 与 weights;
- weighted V;
- 合并多个头后的输出;
- scores 元素总数。
Shape 答案
text
Q packed [2,6,12]
Q reshape [2,6,3,4]
Q transposed [2,3,6,4]
K transposed [2,3,4,5]
scores/weights [2,3,6,5]
weighted V [2,3,6,4]
merge heads [2,6,12]
scores elements=2×3×6×5=180任务三:两 token 数值推导
使用本章固定输入:
要求:
- 算出
QKᵀ、缩放分数和 causal mask 后分数; - 算出 weights 与 output;
- 去掉 mask 后,重新计算第一行 weights 与 output;
- 说明这个反事实证明了什么。
数值答案
text
QKᵀ = [[1,0],[0,1]]
scaled = [[0.7071,0],[0,0.7071]]
masked = [[0.7071,-∞],[0,0.7071]]
weights≈ [[1,0],[0.3302,0.6698]]
output ≈ [[2,0],[0.6605,2.6790]]
无 mask 第一行:
weights[0]≈[0.6698,0.3302]
output[0] ≈[1.3395,1.3209]去掉 mask 后,第一个 query 混入未来位置的 Value,证明因果访问约束被破坏。
任务四:故障诊断
| 现象 | 至少检查三项 |
|---|---|
| matmul shape 报错 | Q/K 最后一维;K 是否转置;Tq/Tk 是否混淆;head 轴位置 |
| 权重行和不为 1 | softmax 轴;mask 时机;全遮罩行;数值溢出 |
| loss 极低但逐步生成失败 | label shift;future mask;训练与推理可见上下文 |
| residual 相加失败 | 子层是否投回 C;batch/token 轴是否保留;是否误用拼接 |
| 输出 shape 对但语义异常 | 轴顺序;Value 汇总方向;输出投影;residual 对齐 |
诊断回答必须包含一个最小固定输入、一个要打印的中间量和一个断言,不能只写“检查代码”。
任务五:实现验收
完成单头因果注意力实验,并保留以下证据:
- 基线 weights 和 output;
- 未来权重为 0 的断言;
- 每行权重和为 1 的断言;
- 去掉 mask 后第一行输出改变;
- 大 logits 下稳定 softmax 不溢出。
评分与补学
| 部分 | 分值 | 合格要求 |
|---|---|---|
| 交互客观题 | 3 | 至少 4/5 正确后完成补学 |
| 开放诊断题 | 2 | 覆盖 rubric 中至少 4 项 |
| 口答 | 2 | 8 题至少 6 题完整 |
| shape 与数值推导 | 2 | 结果和轴语义都正确 |
| 实现实验 | 1 | 基线和消融证据齐全 |
总分 8 分以上且实验通过,视为本章合格。
- QKV 角色混淆:回看 QKV 检索
- shape 或轴错误:回看多头 shape
- 数值、mask 或 softmax 错误:回看完整流水线
- 实现断言不足:回看单头实验
- 需要快速查约束:使用注意力速查
完成后进入基础模型与生成模型。需要分析现代模型的共享 K/V 与推理资源时,再使用注意力速查中的 MQA、GQA 和 KV Cache 部分。