Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第 2 讲 · 综合自测卷(100 分 · 建议 60 分钟)

闭卷计时;做完先按文末评分标准自评,再按漏点定位表回查。 范围:本讲导览与 2.1–2.8。题目与习题集尽量不重叠;概念判断题只写对错不给分,必须给理由或反例。

时间分配建议:第一部分 1515 分钟(每题约 9090 秒)→ 第二部分 1010 分钟 → 第三部分 2525 分钟(每题约 88 分钟,推导题宁慢勿跳步)→ 第四部分 88 分钟 → 留 22 分钟只做一件事:回头看第一部分的十条判断里有没有只写了对错的。

阅卷口径(先读,能省不少分)
  • 判断必须带机制词:写「错」不给分;写「错,因为 softmax 沿键维归一化,按查询维会改变语义」才拿满。常见机制词有:连乘雅可比、谱半径、加法通道、键维、−∞-\infty、置换等变、中间显存、掩码族、总参数 vs 激活参数。
  • 形状先行:凡涉及矩阵乘法与显存的推导,先把每个张量的形状(或字节数)写出来再动手;跳过形状核对的答案从「链条完整」里扣分。
  • 前提不能省:说「dk\sqrt{d_k}」必须跟上「独立零均值单位方差」的假设;说「RoPE 只依赖相对位移」必须跟上「缩放前分数」与「不承诺外推」。
  • 工程题给判据:凡涉及取舍(显存、采样、路由、位置编码),必须写出验证方式与失败判据,否则第四部分每题上限 6 分。
  • 开放题四件套:方案 + 理由 + 失败判据 + 验证计划,缺一项扣 2 分。

第一部分 · 概念判断(10 题 × 3 分 = 30 分)

判断对错,并给出一句话理由或反例。

1. batch 内把序列 pad 到等长是必要的;pad 位置的损失不屏蔽也没有关系,因为求平均时它们会被自然摊薄。

解答

错。 pad 位置既不是数据也不该产生梯度;不屏蔽会让模型花容量学「预测 pad」,并把损失均值拉向容易的位置——序列任务里最常见的隐性偏差来源(2.1.6)。给分:判断 1 分 + 理由 2 分(须提到「pad 位置产生梯度 / 污染损失统计」)。

2. 因为 RNN 的参数量与序列长度无关,所以它天然能处理任意长序列,不需要其他手段。

解答

错。 「参数与 TT 无关」只保证形状上能接住任意长度(一致性),不保证学得动:梯度要穿过 TT 次状态转移(连乘 ⇒ 消失 / 爆炸),而且所有历史必须压进固定 dhd_h 维状态(有损摘要)。长序列还需要门控、裁剪、合理的窗口切分与初始化(定理 2.2.1、定理 2.2.3)。给分:判断 1 分 + 理由 2 分(须区分「形状可接」与「可训练 / 可记忆」)。

3. LSTM 的状态是一对 (ht,ct)(\boldsymbol h_t,\boldsymbol c_t);框架的 output 里只有各步 h\boldsymbol h,cn\boldsymbol c_n 单独返回。

解答

对。 ct\boldsymbol c_t 是内部长期记忆(不对外输出),ht=ot⊙tanh⁡(ct)\boldsymbol h_t=\boldsymbol o_t\odot\tanh(\boldsymbol c_t) 是读出部分;接口上 nn.LSTM 返回 (output, (h_n, c_n)),做状态传递或检查点恢复时两个都要带上(定义 2.3.1、2.3.8 错误 3)。给分:判断 1 分 + 理由 2 分(须指出 c_n 不在 output 里)。

4. 因果掩码必须在 softmax 之前加入。

解答

对。 掩码要把未来位置的权重精确置零,只有 −∞-\infty 经 exp⁡\exp 之后才是 0;加在 softmax 之后只是把权重改小、行和不再为 1、输出尺度被破坏。另外要用 −∞-\infty 或该 dtype 的 finfo.min(加 0 等于不掩码),并处理「整行全被掩码」时的 NaN(定义 2.4.5)。给分:判断 1 分 + 理由 2 分(须给出「−∞-\infty ⇒ 精确置零」或「行和」其中一条)。

5. 在 dd 与序列长度都固定时,把多头注意力的头数 HH 从 88 增到 3232,参数量不变。

解答

对。 每头三个投影共 3d dh3d\,d_h,HH 头合计 3d(Hdh)=3d23d(Hd_h)=3d^2,加 WOW^O 的 d2d^2 与偏置 4d4d,得 4d2+4d4d^2+4d——与 HH 无关(定理 2.5.1)。但参数量相同不等于表达相同:HH 改变的是归纳偏置,代价是 dh=d/Hd_h=d/H 变小与 reshape / 转置的访存开销上升。给分:判断 1 分 + 理由 2 分(须写出 4d24d^2 的来历或指出代价)。

6. 某个位置在某一行的注意力权重是 0.90.9,因此它对输出的贡献一定最大。

解答

错。 输出是 PV\boldsymbol P\boldsymbol V:权重只决定取多少,取到的内容由 V\boldsymbol V 的行决定(权重与贡献之间隔着 V\boldsymbol V);残差与后续层会稀释该头的结果;而且 softmax 权重之和恒为 1,一个位置上升必然压低其他位置——「权重高」可能是「别的候选被削弱」的结果(2.4.7)。给分:判断 1 分 + 理由 2 分(须给出「隔着 V\boldsymbol V」或「归一化耦合」之一)。

7. FlashAttention 是精确注意力,并且它的 FLOPs 与标准注意力相同。

解答

对。 它用分块 + 在线 softmax(运行最大值与指数和的重缩放递推)把中间矩阵留在片上内存,输出与整块 softmax 数学等价(差别只有浮点舍入,故要求 FP32 累积统计量);乘加次数 4BHT2dh4BHT^2d_h 不变——省的是 T×TT\times T 矩阵的 HBM 读写与存放(定理 2.6.4)。给分:判断 1 分 + 理由 2 分(须同时提到「等价」与「FLOPs 不变」)。

8. RoPE 让注意力分数只依赖相对位移,所以训练长度之外的位移同样可靠。

解答

错。 内积只依赖相对位移是表示层面的性质(⟨Rmq,Rnk⟩=⟨q,Rn−mk⟩\langle\boldsymbol R_m\boldsymbol q,\boldsymbol R_n\boldsymbol k\rangle=\langle\boldsymbol q,\boldsymbol R_{n-m}\boldsymbol k\rangle,定理 2.6.3);外推时高频维度的相位会绕圈(混叠),分数分布相对训练区间系统性偏移,扩大上下文通常要额外做位置插值 / 频率缩放。「公式成立」不等于「训练后会外推」。给分:判断 1 分 + 理由 2 分(须提到相位混叠或「表示 ≠ 学习保证」)。

9. KV cache 的显存随批大小 BB 与上下文长度 TT 线性增长,随键值头数 nkvn_{kv} 线性增长;GQA 把每个 token 的缓存按 H/nkvH/n_{kv} 下降。

解答

对。 公式为 2LB Tnkvdh×22LB\,Tn_{kv}d_h\times2 字节(FP16),三项都是线性;GQA 让每 gg 个查询头共享一组 KV(nkv=H/gn_{kv}=H/g),缓存与读取带宽按 gg 倍下降,质量损失通常很小——这是 2023 年以来开源大模型的常见默认(方法 2.5.3、方法 2.6.2)。给分:判断 1 分 + 理由 2 分(须给出公式或 H/nkvH/n_{kv} 的来源)。

10. O(T)O(T) 的线性注意力 / SSM 在任何序列长度上都比 O(T2)O(T^2) 的稠密注意力更快。

解答

错。 渐近阶只描述大 TT 行为:稠密注意力是矩阵乘(GPU 最擅长的算子),而扫描 / 逐元素 / 状态读出类实现常是访存受限的;在中小 TT 上线性方案更慢是常见现象,只有 TT 远大于某个由实现与硬件决定的交叉点,渐近优势才兑现(2.7.11 第 6 条、例 2.7.1)。任何「线性更快」的论断都必须附上 TT、硬件与实现。给分:判断 1 分 + 理由 2 分。

第二部分 · 填空与简答(5 题 × 4 分 = 20 分)

11. 某模型在留出集上的平均交叉熵为 1.81.8 nat。(a) 它的困惑度是多少(保留两位小数)?(b) 若词表 V=50V=50,均匀分布基准的交叉熵与困惑度各是多少?(c) 这个 PPL 说明什么、不说明什么?

解答

(a) PPL=e1.8≈6.05\mathrm{PPL}=e^{1.8}\approx6.05。(b) 均匀分布下 H=ln⁡50≈3.912H=\ln50\approx3.912、PPL=50\mathrm{PPL}=50;6.05≪506.05\ll50 说明模型明显好于随机猜测。(c) 说明「给定真实前缀,下一个 token 的平均不确定性约等于 6 个等概率候选」;不说明生成质量、不说明自由跑时误差不会累积——困惑度只与「给定真实前缀的一步预测」有关,与采样策略无关(定理 2.8.1、2.8.6)。给分:(a) 1 分;(b) 1 分(两项各 0.5);(c) 2 分(须同时写出「说明」与「不说明」)。

12. 以「跨 nn 步的梯度衰减到 10−710^{-7} 以下视为被吞掉」为判据,求单步伸缩率 ρ=0.95\rho=0.95 与 ρ=0.99\rho=0.99 的有效记忆跨度 n⋆n^\star;并说明 ρ=0.98\rho=0.98 与 0.990.99 在 1000 步尺度上的差别。

解答

n⋆=−7log⁡10ρn^\star=\dfrac{-7}{\log_{10}\rho}:ρ=0.95⇒n⋆≈314\rho=0.95\Rightarrow n^\star\approx314 步;ρ=0.99⇒n⋆≈1604\rho=0.99\Rightarrow n^\star\approx1604 步。1000 步尺度上:0.981000=10−8.77≈1.7×10−90.98^{1000}=10^{-8.77}\approx1.7\times10^{-9}(已在地板之下),而 0.991000=10−4.36≈4.3×10−50.99^{1000}=10^{-4.36}\approx4.3\times10^{-5}(仍有约 0.004%0.004\%,比前者高四个数量级)——门值每靠近 1 一点点,记忆跨度就成倍拉长,这也是 定理 2.3.1 说「门值离 1 有多远决定它能记多久」的算术含义。给分:两个 n⋆n^\star 各 1 分 + 量级对比 2 分。

13. 取 dx=100d_x=100、dh=200d_h=200:(a) 写出循环单元的「基准块」大小并算出朴素 RNN、GRU、LSTM 的参数量(含单组偏置);(b) 用框架实现(每个门各挂 bias_ih 与 bias_hh)数值会变成多少?倍数是否改变?

解答

(a) 基准块 dhdx+dh2+dh=200×100+200×200+200=20,000+40,000+200=60,200d_hd_x+d_h^2+d_h=200\times100+200\times200+200=20{,}000+40{,}000+200=60{,}200;朴素 RNN 60,20060{,}200、GRU 3×60,200=180,6003\times60{,}200=180{,}600、LSTM 4×60,200=240,8004\times60{,}200=240{,}800(倍数 1:3:41:3:4)。(b) 每门再多一组 dh=200d_h=200 的偏置:60,40060{,}400 ⇒ RNN 60,40060{,}400、GRU 181,200181{,}200、LSTM 241,600241{,}600;倍数仍是 33 与 44,差别只在偏置项(例 2.3.1、方法 2.3.1)。给分:(a) 3 分(基准块 1 分 + 三个数各约 0.67);(b) 1 分。

14. L=32L=32 层、H=32H=32 头、dh=128d_h=128、批 B=4B=4、上下文 T=16384T=16384、FP16。(a) 写出 KV cache 的算式并算 MHA 的大小;(b) GQA(每 4 个查询头共享 1 组,nkv=8n_{kv}=8)与 MQA(nkv=1n_{kv}=1)各是多少?

解答

(a) 2⋅L⋅B⋅T⋅nkv⋅dh×22\cdot L\cdot B\cdot T\cdot n_{kv}\cdot d_h\times2 字节 =2×32×4×16384×32×128×2=3.44×1010=2\times32\times4\times16384\times32\times128\times2=3.44\times10^{10} 字节 =32 GiB=\mathbf{32\ GiB}。(b) GQA:nkvn_{kv} 从 3232 降到 88,缓存按 44 倍下降到 8 GiB\mathbf{8\ GiB};MQA:nkv=1n_{kv}=1,1 GiB\mathbf{1\ GiB}。对照:KV cache 与 BB、TT、nkvn_{kv} 都线性相关,而分数矩阵(BHT2BHT^2)与 nkvn_{kv} 无关——这正是 GQA 治第三笔账、不治第一笔账的原因(方法 2.5.3、例 2.6.1)。给分:(a) 2 分(算式 1 + 数值 1);(b) 2 分(两档各 1)。

15. 某步的 logits 为 z=(3.0, 1.0, 0.0, −2.0)\boldsymbol z=(3.0,\ 1.0,\ 0.0,\ -2.0)。(a) 写出 τ=1\tau=1 的 softmax 分布(三位小数);(b) 取 top-p=0.9p=0.9,给出核 S\mathcal S、重新归一化后的概率与被丢弃的质量;(c) 若把 τ\tau 调大,同样的 pp 下核会变大还是变小?为什么?

解答

(a) 指数项 (20.086, 2.718, 1.000, 0.135)(20.086,\ 2.718,\ 1.000,\ 0.135),分母 23.93923.939 ⇒ p^=(0.839, 0.114, 0.042, 0.006)\hat{\boldsymbol p}=(0.839,\ 0.114,\ 0.042,\ 0.006)。(b) 降序累积:0.8390.839、0.9530.953(首次跨过 0.90.9,该候选保留)、0.9940.994、1.0001.000 ⇒ S={1,2}\mathcal S=\{1,2\};重归一化 (0.881, 0.119)(0.881,\ 0.119);丢弃质量 =1−0.953=0.047=1-0.953=\mathbf{0.047}。(c) 变大:温度把分布摊平后,需要更多候选才能凑够同样的概率质量——核采样因此「模型确信时自动收窄、模型犹豫时自动放宽」(定义 2.8.3、定义 2.8.4、例 2.8.1)。给分:(a) 1 分;(b) 2 分(核 0.5 + 概率 1 + 丢弃质量 0.5);(c) 1 分。

第三部分 · 推导与计算(3 题 × 10 分 = 30 分)

16.(10 分) 取标量直觉 ht=tanh⁡(wht−1+c)\boldsymbol h_t=\tanh(w h_{t-1}+c)。(a) 推导 ∂ht/∂ht−n\partial h_t/\partial h_{t-n} 并给出由 ∣w∣|w| 控制的界(写出每一步);(b) 取 ρ=0.95\rho=0.95 与 ρ=1.05\rho=1.05,填 n=10,50,100n=10,50,100 的量级表;(c) 求出两者的「跨多少步」会分别跌破 10−710^{-7}(衰减)与涨到 10710^{7}(爆炸);(d) 用 (c) 的结果说明「裁剪治爆炸、门控治消失」分别改的是公式里的哪一项。

解答

(a) 由 zk=whk−1+c\boldsymbol z_k=w h_{k-1}+c、hk=tanh⁡(zk)h_k=\tanh(z_k) 得单步雅可比 Jk=∂hk∂hk−1=w ϕ′(zk)J_k=\dfrac{\partial h_k}{\partial h_{k-1}}=w\,\phi'(z_k);链式法则逐段相乘: ∂ht∂ht−n=∏k=t−n+1tw ϕ′(zk)=wn∏kϕ′(zk) ⟹ ∣∂ht∂ht−n∣≤∣w∣n (tanh⁡: ∣ϕ′∣≤1).\frac{\partial h_t}{\partial h_{t-n}}=\prod_{k=t-n+1}^{t}w\,\phi'(z_k)=w^{n}\prod_k\phi'(z_k)\ \Longrightarrow\ \Bigl|\frac{\partial h_t}{\partial h_{t-n}}\Bigr|\le|w|^{n}\ (\tanh:\ |\phi'|\le1).

(b)

ρ\rho n=10n=10 n=50n=50 n=100n=100
0.950.95 0.5990.599 0.07690.0769 5.92×10−35.92\times10^{-3}
1.051.05 1.631.63 11.511.5 131.5131.5

(c) 衰减:n⋆=−7log⁡100.95≈314n^\star=\dfrac{-7}{\log_{10}0.95}\approx314 步;爆炸:7log⁡101.05≈169\dfrac{7}{\log_{10}1.05}\approx169 步(中间量从 11 涨到 10710^{7})。

(d) 裁剪作用在更新之前:g←g⋅min⁡(1,c/∥g∥)\boldsymbol g\leftarrow\boldsymbol g\cdot\min(1,c/\lVert\boldsymbol g\rVert),把爆炸方向的单步位移压回阈值内(ρ>1\rho\gt1 那一侧的安全网),但它不改变连乘结构。门控改的是公式本身:把状态更新写成 ct=ft⊙ct−1+it⊙c~t\boldsymbol c_t=\boldsymbol f_t\odot\boldsymbol c_{t-1}+\boldsymbol i_t\odot\tilde{\boldsymbol c}_t,于是 ∂ct/∂ct−1=diag⁡(ft)\partial\boldsymbol c_t/\partial\boldsymbol c_{t-1}=\operatorname{diag}(\boldsymbol f_t)——既不含 WW、也不含 ϕ′\phi',且因子严格在 (0,1)(0,1) 内(只衰减、不放大),并且「保留多久」成了可学、可条件化的门值(定理 2.2.3、定理 2.3.1、方法 2.2.2)。

评分:(a) 3 分(单步雅可比 1 + 连乘 1 + 界 1);(b) 2 分(两行各 1,数值错一处扣 0.5);(c) 2 分(两式各 1);(d) 3 分(裁剪 1 + 门控两项改动 2)。

17.(10 分) 取 dk=dv=2d_k=d_v=2、T=3T=3: Q=K=(112001),V=(10001055).\boldsymbol Q=\boldsymbol K=\begin{pmatrix}1&1\2&0\0&1\end{pmatrix},\qquad \boldsymbol V=\begin{pmatrix}10&0\0&10\5&5\end{pmatrix}. (a) 写出分数矩阵 S=QKT\boldsymbol S=\boldsymbol Q\boldsymbol K^{\mathrm T};(b) 写出 S/dk\boldsymbol S/\sqrt{d_k} 与逐行 softmax 后的 P\boldsymbol P(三位小数);(c) 求输出 O=PV\boldsymbol O=\boldsymbol P\boldsymbol V,并解释为什么第一行恒为 (5,5)(5,5);(d) 若不缩放,第 1、2 行的分布会怎样变化?

解答

(a) 每个查询分别与三行键做内积: S=(221240101).\boldsymbol S=\begin{pmatrix}2&2&1\\2&4&0\\1&0&1\end{pmatrix}.

(b) 2≈1.414\sqrt2\approx1.414, S2=(1.4141.4140.7071.4142.82800.70700.707),P≈(0.4010.4010.1980.1870.7680.0450.4010.1980.401).\frac{\boldsymbol S}{\sqrt2}=\begin{pmatrix}1.414&1.414&0.707\\1.414&2.828&0\\0.707&0&0.707\end{pmatrix},\qquad \boldsymbol P\approx\begin{pmatrix}0.401&0.401&0.198\\0.187&0.768&0.045\\0.401&0.198&0.401\end{pmatrix}. (以第 1 行为例:e1.414=4.113e^{1.414}=4.113、e0.707=2.028e^{0.707}=2.028,分母 4.113+4.113+2.028=10.2554.113+4.113+2.028=10.255,故 4.113/10.255=0.4014.113/10.255=0.401。)

(c) O≈(5.0005.0002.0947.9066.0173.983).\boldsymbol O\approx\begin{pmatrix}5.000&5.000\\2.094&7.906\\6.017&3.983\end{pmatrix}. 第一行恒为 (5,5)(5,5) 不是巧合:q1=(1,1)\boldsymbol q_1=(1,1) 与 k1=(1,1)\boldsymbol k_1=(1,1)、k2=(2,0)\boldsymbol k_2=(2,0) 的内积相同(都是 22),与 k3=(0,1)\boldsymbol k_3=(0,1) 的内积是 11,因此该行权重必形如 (a,a,b)(a,a,b) 且 2a+b=12a+b=1;而值向量的前两行之和恰好是第三行的两倍((10,0)+(0,10)=2(5,5)(10,0)+(0,10)=2(5,5)),于是 av1+av2+bv3=2av3+bv3=(2a+b)v3=v3=(5,5).a\boldsymbol v_1+a\boldsymbol v_2+b\boldsymbol v_3=2a\boldsymbol v_3+b\boldsymbol v_3=(2a+b)\boldsymbol v_3=\boldsymbol v_3=(5,5). 输出被强制坍缩到 v3\boldsymbol v_3,与 aa 取多少(也就是与温度)无关——这正是 例 2.4.1 里「键高度相关时权重怎么变都不改变输出」的同一现象。

(d) 不缩放时第 1 行变为约 (0.422,0.422,0.155)(0.422,0.422,0.155)、第 2 行变为约 (0.117,0.867,0.016)(0.117,0.867,0.016)——分布更尖锐(第 2 行的最大权重从 0.7680.768 升到 0.8670.867)。本例 dk=2d_k=2 差异还不大;dk=512d_k=512 时分数标准差约 22.622.6,softmax 会被推到接近 one-hot、梯度随之消失(定理 2.4.1)。

评分:(a) 2 分;(b) 2 分(缩放 1 + softmax 1,逐行错一处扣 0.5);(c) 4 分(数值 2 + 对称性解释 2);(d) 2 分(数值 1 + 与 dk\sqrt{d_k} 的联系 1)。

18.(10 分) L=32L=32、H=32H=32、dh=128d_h=128、B=1B=1、FP16。(a) 写出长上下文三笔账的公式与各自对 TT 的增长阶;(b) 求 T=8192→65536T=8192\to65536 时三笔账的具体数值(TT 乘 88,各涨几倍);(c) 指出哪一笔最先撞墙、为什么;(d) 三种手段(不物化中间矩阵 / KV 压缩 / 序列并行)各治哪一笔,各自的代价是什么?

解答

(a) ① 分数 / 权重矩阵(单层、若物化):元素数 B⋅H⋅T2B\cdot H\cdot T^2、显存 BHT2×2BHT^2\times2 字节,O(T2)O(T^2);② 注意力 FLOPs(前向):≈4BHT2dh\approx4BHT^2d_h,O(T2d)O(T^2d);③ KV cache(整模型、推理):2LB Tnkvdh×22LB\,Tn_{kv}d_h\times2 字节,O(T)O(T)(常数大)。

(b) 以 T=8192T=8192 为基准(①=4=4 GiB、②=1.1=1.1 TFLOP、③=4=4 GiB,见 方法 2.6.1):TT 乘 88 ⇒ ① 与 ② 各乘 82=648^2=64,即 ① =256 GiB=\mathbf{256\ GiB}、② =70.4 TFLOP=\mathbf{70.4\ TFLOP};③ 只乘 88,即 32 GiB\mathbf{32\ GiB}。

(c) 最先撞墙的是①(单层分数矩阵的显存):它是 O(T2)O(T^2) 且 T=65536T=65536 时单层就 256 GiB,远超单卡容量;紧随其后的是 ③(KV cache,推理时随 BB 继续放大,长上下文下可达权重显存的数倍)。显存问题先于算力问题出现:② 的 FLOPs 虽然也乘 64,但算力可以靠分块与并行流水填满,而显存是硬上限(2.6.6、例 2.6.1)。

(d) ① 不物化中间矩阵(FlashAttention / SDPA):治第①笔,代价是反向要重算块分数(FLOPs 不变,换的是访存与显存);② KV 压缩(GQA / MQA、KV 量化、滑窗与淘汰):治第③笔,GQA / 量化基本不改变可见范围、相对安全,而滑窗 / 淘汰永久丢弃信息、要按任务是否可以忍受「不能精确回忆远处内容」来选;③ 序列并行(Ring Attention / Ulysses / Megatron 序列并行):不减算术量,只摊薄每卡显存,代价是通信(环状 P2P、all-to-all)与整除约束(方法 2.6.2、2.6.9)。

评分:(a) 3 分(三式各 1,须含增长阶);(b) 3 分(三值各 1);(c) 2 分(指出①或③并说明「显存先于算力」);(d) 2 分(三种手段与代价各约 0.67)。

第四部分 · 开放题(2 题 × 10 分 = 20 分)

19.(10 分) 一个字符级音乐生成模型:训练损失降到 0.20.2(log⁡V≈3.4\log V\approx3.4),但自由跑生成三步之内开始复读,且把温度升高后重复率反而下降。请给出 (a) 诊断顺序(至少四步,每步附可观测判据);(b) 其中哪些步骤属于「模型没学好」、哪些属于「评估或采样口径问题」;(c) 失败判据;(d) 验证计划。

解答

(a) 诊断顺序与判据:① 分离两种模式——同时报告 teacher-forced 损失与自由跑损失的差值,差值大小就是 exposure bias 的量级(判据:自由跑损失显著高于训练损失);② 查掩码与错位——若有 Transformer 分支,关掉因果掩码重训一次对比(判据:损失异常低而生成崩坏);确认标签是「用 xtx_t 的输出预测 xt+1x_{t+1}」(写成预测自己时损失降得异常快、生成只会复读);③ 查过拟合——比较训练集与留出集 PPL(判据:留出集 PPL 先降后升或远高于训练集,同时重复率上升);④ 查采样组合——固定初始片段,只改一个参数各生成三段(判据:τ\tau 过小 + 强截断直接制造复读;把 τ\tau 调到 0.8∼1.20.8\sim1.2、top-p∈[0.9,0.95]p\in[0.9,0.95] 后重复率应下降而音高分布仍接近训练集);⑤ 查窗口长度——把窗口从 1616 调到 6464(判据:主题再现开始出现,说明之前只是学不到段落级结构)。

(b) 属于模型 / 训练的是 ①②③⑤①②③⑤(掩码、标签配对、过拟合、序列长度);属于评估或采样口径的是 ④④,以及「用训练集 PPL 选模型」「只报 teacher-forced 损失」这两类报告习惯(2.8.7 第 6、7、8、9 条)。

(c) 失败判据:① 自由跑损失与训练损失差距持续扩大(exposure bias 主导);② 调好采样参数后重复率仍高于训练集自身的 n-gram 基线;③ 留出集 PPL 与生成质量同时恶化(过拟合已发生);④ 窗口加长后主题再现仍不出现(长程结构确实没学到)。

(d) 验证计划:每次只改一个变量(掩码 / 窗口 / 采样),固定种子与初始片段各生成三段并盲听对比;报告三种温度下的重复率、音高分布距离与留出集 PPL,并附均匀分布基准 log⁡V\log V 与训练集自身的 n-gram 基线(2.8.6、定理 2.8.1)。

评分:(a) 4 分(四步以上、每步有判据);(b) 2 分(分类正确);(c) 2 分(可测量);(d) 2 分(单变量 + 基线对照)。

20.(10 分) 同事把某个注意力头可视化后说:「这个头专门盯着句首 token,所以模型在做句法分析。」请给出 (a) 你会要求补充的实验证据(至少四条,写清每条看什么);(b) 每条证据的失败判据;(c) 一个可在小规模上落地的验证方案。

解答

(a) 需要补充的证据:① 消融——屏蔽该头(输出置零或把它从 WOW^O 的对应块里移除)后,句法敏感任务(主谓一致、依存距离)的指标是否显著下降?② 跨初始化稳定性——换 2∼32\sim3 个随机种子重训,同样「盯句首」的模式是否重现(若每次重训模式都不同,说明它是可替代的冗余);③ 与梯度归因对照——用输入梯度 / 输入 × 梯度(或归因积分)看该位置是否真的对输出有主导贡献;④ 合成任务验证——构造有可判定因果结构的任务(例如「必须复制第 3 个 token」「按括号配对」),看该头是否真的承担所声称的功能;⑤(可选)权重 ≠ 贡献的检查——该位置的 V\boldsymbol V 行本身是否接近零、或在下游被投影到「无用子空间」(2.4.7)。

(b) 失败判据:① 消融后指标变化在噪声范围内(该头可被替代,不足以承载唯一解释);② 跨种子的头功能不一致(模式不稳定);③ 梯度归因显示该位置贡献占比很小、或与权重排序不一致;④ 合成任务上该头表现与随机头无差别;⑤ 权重高但 V\boldsymbol V 行近乎为零(贡献远小于权重)。

(c) 验证方案:在一个小 Transformer(如 2.8.3 的 TinyTransformer)上跑一个可判定的合成任务(复制 / 排序 / 括号配对),用 33 个种子各训练一次;对每个头做消融并记录指标;把「权重图 — 梯度归因 — 消融影响」三张表并列,只有三者一致时才接受「该头承担某功能」的说法。要点是:注意力权重是有用的调试信号,不是解释证据(2.4.7、2.6.1 的诊断口径)。

评分:(a) 4 分(四条各 1);(b) 3 分(判据可判定);(c) 3 分(合成任务 + 多种子 + 三方对照)。

评分标准

部分题量分值给分要点
一 · 概念判断1030判断 1 分 + 理由 / 反例 2 分;只写对错得 1 分;理由缺「机制词」按半对给 1 分
二 · 填空简答520结果正确 2 分 + 关键说明 2 分;数值或形状错一处扣 0.5–1 分
三 · 推导计算330首行 / 公式 3 分 + 链条完整 4 分 + 前提与讨论 3 分;只写结论最多 3 分
四 · 开放题220方案具体 4 分 + 判据可测量 4 分 + 验证计划 2 分;缺失败判据上限 6 分

段位换算:≥90\ge90 优秀(可以给同学讲清整讲主线);75 ⁣− ⁣8975!-!89 良好(能独立写序列模型与显存估算);60 ⁣− ⁣7460!-!74 及格(需补推导与工程账);<60\lt60 回到对应节的「即时自测」与习题集重做。

自评纪律:① 判断理由必须包含关键机制词(如「连乘雅可比」「谱半径」「键维」「置换等变」「掩码族」「总参数 vs 激活参数」),否则按半对给 1 分;② 推导题凡跳过形状或字节数核对的,从「链条完整」里扣 1 分;③ 工程题只写结论不写判据的,该题上限 6 分;④ 凡出现「O(T)O(T) 一定更快」「MoE 省显存」「RoPE 无限外推」这类无条件断言,倒扣 1 分。

漏点定位表

错题回去读立刻补做
1、22.1.6、定理 2.2.1、定理 2.2.3习题集 A1、B1
3、13定义 2.3.1、例 2.3.1、2.3.8习题集 A3、C5
4、5、17定义 2.4.5、定理 2.5.1、例 2.4.1习题集 C1、C2、B2
6、202.4.7习题集 A5;回忆卡 D5
7、8定理 2.6.4、2.6.4、定义 2.6.3习题集 B4、D2
9、14、18方法 2.5.3、方法 2.6.1、例 2.6.1习题集 C4、D1
102.7.11、方法 2.7.3、例 2.7.1习题集 B6、D3
11、15、19定理 2.8.1、定义 2.8.4、2.8.7习题集 C6、D1
12、16例 2.2.1、定理 2.3.1、方法 2.2.2习题集 B1、B3

最后一句:本卷的目的不是打分,而是把你以为会的地方暴露出来。凡有「写得出来但讲不清机制」的题,回到对应节的 intuition 与 回忆卡当天再练一遍;连续两轮仍错的条目,写进勘误与补注第四节的待核实条目单独跟踪。