13 闭卷练习:先作答,再看14章
这些是按课程机制设计的练习,不是往年题或押题。计算需列假设、单位和中间式;判断题必须解释条件,只有“对/错”不算掌握。
A. 判断辨析(1–24)
- Token ID更接近,语义通常就更接近。
- Byte-level BPE编码新文本时,应重新统计该文本的pair频次。
- 冻结embedding参数后,每个输入token在最后一层的hidden state也固定。
- 只堆叠线性层,深度足够就能表达任意非线性函数。
model.eval()会禁止autograd记录所有计算。- 训练输入是[A,B,C]、目标[B,C,D],位置B可以读取输入中的C。
- Q/K末维必须一致,而V末维可以不同。
- 无mask时self-attention矩阵A必然对称。
- 先做softmax,再把未来权重置0,与softmax前因果mask总是等价。
- RMSNorm会把每个token特征的均值变为0。
- RoPE让同样内容q/k的内积只依赖相对位置,所以任何长距离注意力分数都单调下降。
- GQA让同一组query头产生完全相同的attention权重。
- KV cache避免旧K/V投影重算,因此decode无需读取旧K/V。
- 两个请求包含相同文档片段,就一定能直接共享该片段全部KV。
- PagedAttention减少碎片,所以模型理论所需KV字节数也按固定倍数减少。
- FlashAttention降低HBM流量,因此把标准dense attention算术复杂度降为线性。
- 全E项softmax后Top1截断,与Top1后单项softmax,router梯度性质相同。
- Shared expert意为所有routed experts共用一份权重。
- LoRA认为预训练W0本身是秩r矩阵。
- Teacher固定时,最小化KL(q_teacher||p_student)与soft-label CE具有相同student梯度。
- 关闭采样即可保证模型没有幻觉。
- RLVR与GRPO完全同义。
- PPO的clipping强制所有概率ratio都落在[1-ε,1+ε]。
- GRPO某组所有reward相同时,该组的相对奖励policy项为0,因此所有训练项都必然为0。
B. 数值与推导(25–42)
[B,T,D]=[2,5,24],Hq=3,标准MHA。列出分头Q、A、合并context形状,以及无bias Q/K/V/O总参数量。- 用03章Assignment1矩阵算Q/K/V、A/Z,再加因果mask。将第二个token改成[10,10,10],哪些输出必须不变?
- 从q/k各分量独立、零均值单位方差的近似假设出发,推为什么attention除√d而不除d。
- 证明RoPE相对位置恒等式。用q=[1,2,3,4]、k=[4,3,2,1]、d=4算(1,3)与(11,13)的点积。
- x=[1,3]、γ=1、β=0,忽略eps,计算LN和RMSNorm。x每项加10后两者怎样变化?
- D=768,经典FFN F=3072。求等参数SwiGLU的F(忽略bias和对齐),比较投影FLOPs。
- 正确token概率分别为1/2、1/4、1/8,算平均NLL与PPL。若两组数据有效长度不同,如何汇总?
- p=[.5,.3,.15,.05],算top-k=2、top-p=.81的采样分布。temperature会不会改变排序?
- p=[.6,.4]、draft q=[.8,.2],列接受率、无条件接受质量、残差分布、最终分布,并证明。
- N=32、B=4、T=8192、Hq=32、Hkv=8、d=128、BF16,算KV字节/GiB;改MHA、MQA后如何?
- 一个8B BF16模型权重装入24GiB GPU,预留4GiB运行时,其余全部给上题GQA的B=1 cache。按理想连续分配,最多支持多少token?说明为什么只是粗上界。
- block size16,三请求分别长17、32、35。无共享时总分配多少槽,内部浪费多少?若第三请求与第二请求共享完整前32token,理想情况下能少几块?
[128,256]@[256,64]多少FLOPs?GPU peak100TFLOP/s、带宽1TB/s,I=10FLOP/byte时roofline给什么上界?- scores=[0,ln2,ln3]、V=[1,2,4],用分块online softmax算输出;解释新最大值变化时旧统计为何要重缩放。
- 总compute10^18FLOPs、有效100TFLOP/s、整机1kW、PUE1.2,算运行小时与kWh。
- LoRA d_in=1024、d_out=4096、r=16、α=32。列A/B形状、trainable参数、scale和初始B=0时的梯度性质。
- 教师q=[.8,.2]、学生p=[.5,.5],计算两个方向KL并解释为什么不同。
- G=4、reward=[2,2,0,0],population std下求advantage;ε_clip=.2,分别求(A=+1,ρ=1.3)与(A=-1,ρ=.7)的PPO策略项。
C. 原理串联(43–52)
- 从文字消息到第3个新token,完整讲一遍chat template、tokenizer、embedding、block、logits、采样、prefill/cache/decode。
- 一口气解释“为什么需要RoPE、GQA、SwiGLU、pre-norm”,每个说旧问题、改法、代价或限制。
- ICL、SFT、LoRA、蒸馏、量化、RLVR、GRPO分别描述哪个维度?构造一个能组合其中多项的流程。
- 为何固定D增加attention头数不把全部投影参数按H倍增加?为何减少Hkv又不让attention匹配计算同倍减少?
- MoE总参数大、活跃参数少,为什么还可能推理慢、训练不稳定?分别从通信和优化回答。
- 解释top1 load-balancing loss里的f_e、P_e,以及对p_(t,e)的梯度;它为何不是给argmax直接求导?
- 用自己的语言比较pre-training、SFT、reward-model training、PPO、GRPO各自的数据和loss。
- 讲清old policy与reference policy的区别,说明为何GRPO无critic仍可能有reference模型。
- 设计一个prefix cache实验,能尽量区分输入长度、输出长度、预热和并发带来的影响。
- 对“长CoT+temperature0+RAG=没有幻觉”逐项反驳,并给出可验证的改进流程。
D. 代码与实验查错(53–60)
- 张量原为[B,T,H,d],直接
.view(B,H,T,d)作为分头结果。这段代码形状正确,为什么数值可能错? - 每步
model(generated),函数内部默认use_cache=True,但不把cache传给下次调用。是否已避免跨步历史重算? - 为了实现MoE,先对全量输入跑E个专家,再乘TopK的0/1 mask。输出和性能分别怎样判断?
- LoRA为了“初始不扰动base”,把A/B都设0。会怎样?如何改?
- SFT先把labels手动shift,又传给会内部shift的CausalLM训练接口。会训练什么?
- GRPO每次更新前重新计算old_logp=current_logp,并在同一次forward里保持二者都是current graph。出了什么问题?
- Lab6多个MTP头用同一个next-token答案mask,aux hidden还detach。你必须核对哪两种不同问题?
- shared组prompt1038tokens、输出128tokens;different组prompt613、输出86;shared总延迟更高。能否据此判断缓存无效?还缺什么?
自评规则
每题按0–3记录:0不会;1只会结论;2推导/计算正确但条件不全;3能写清假设、边界与变式。不要把60题简单相加当考试预测;把错题按01–11章归类,回到对应机制重新解释。