上一章 · 返回首页 · 内容清单 · 下一章

这些是按课程机制设计的练习,不是往年题或押题。计算需列假设、单位和中间式;判断题必须解释条件,只有“对/错”不算掌握。

A. 判断辨析(1–24)

  1. Token ID更接近,语义通常就更接近。
  2. Byte-level BPE编码新文本时,应重新统计该文本的pair频次。
  3. 冻结embedding参数后,每个输入token在最后一层的hidden state也固定。
  4. 只堆叠线性层,深度足够就能表达任意非线性函数。
  5. model.eval()会禁止autograd记录所有计算。
  6. 训练输入是[A,B,C]、目标[B,C,D],位置B可以读取输入中的C。
  7. Q/K末维必须一致,而V末维可以不同。
  8. 无mask时self-attention矩阵A必然对称。
  9. 先做softmax,再把未来权重置0,与softmax前因果mask总是等价。
  10. RMSNorm会把每个token特征的均值变为0。
  11. RoPE让同样内容q/k的内积只依赖相对位置,所以任何长距离注意力分数都单调下降。
  12. GQA让同一组query头产生完全相同的attention权重。
  13. KV cache避免旧K/V投影重算,因此decode无需读取旧K/V。
  14. 两个请求包含相同文档片段,就一定能直接共享该片段全部KV。
  15. PagedAttention减少碎片,所以模型理论所需KV字节数也按固定倍数减少。
  16. FlashAttention降低HBM流量,因此把标准dense attention算术复杂度降为线性。
  17. 全E项softmax后Top1截断,与Top1后单项softmax,router梯度性质相同。
  18. Shared expert意为所有routed experts共用一份权重。
  19. LoRA认为预训练W0本身是秩r矩阵。
  20. Teacher固定时,最小化KL(q_teacher||p_student)与soft-label CE具有相同student梯度。
  21. 关闭采样即可保证模型没有幻觉。
  22. RLVR与GRPO完全同义。
  23. PPO的clipping强制所有概率ratio都落在[1-ε,1+ε]。
  24. GRPO某组所有reward相同时,该组的相对奖励policy项为0,因此所有训练项都必然为0。

B. 数值与推导(25–42)

  1. [B,T,D]=[2,5,24],Hq=3,标准MHA。列出分头Q、A、合并context形状,以及无bias Q/K/V/O总参数量。
  2. 用03章Assignment1矩阵算Q/K/V、A/Z,再加因果mask。将第二个token改成[10,10,10],哪些输出必须不变?
  3. 从q/k各分量独立、零均值单位方差的近似假设出发,推为什么attention除√d而不除d。
  4. 证明RoPE相对位置恒等式。用q=[1,2,3,4]、k=[4,3,2,1]、d=4算(1,3)与(11,13)的点积。
  5. x=[1,3]、γ=1、β=0,忽略eps,计算LN和RMSNorm。x每项加10后两者怎样变化?
  6. D=768,经典FFN F=3072。求等参数SwiGLU的F(忽略bias和对齐),比较投影FLOPs。
  7. 正确token概率分别为1/2、1/4、1/8,算平均NLL与PPL。若两组数据有效长度不同,如何汇总?
  8. p=[.5,.3,.15,.05],算top-k=2、top-p=.81的采样分布。temperature会不会改变排序?
  9. p=[.6,.4]、draft q=[.8,.2],列接受率、无条件接受质量、残差分布、最终分布,并证明。
  10. N=32、B=4、T=8192、Hq=32、Hkv=8、d=128、BF16,算KV字节/GiB;改MHA、MQA后如何?
  11. 一个8B BF16模型权重装入24GiB GPU,预留4GiB运行时,其余全部给上题GQA的B=1 cache。按理想连续分配,最多支持多少token?说明为什么只是粗上界。
  12. block size16,三请求分别长17、32、35。无共享时总分配多少槽,内部浪费多少?若第三请求与第二请求共享完整前32token,理想情况下能少几块?
  13. [128,256]@[256,64]多少FLOPs?GPU peak100TFLOP/s、带宽1TB/s,I=10FLOP/byte时roofline给什么上界?
  14. scores=[0,ln2,ln3]、V=[1,2,4],用分块online softmax算输出;解释新最大值变化时旧统计为何要重缩放。
  15. 总compute10^18FLOPs、有效100TFLOP/s、整机1kW、PUE1.2,算运行小时与kWh。
  16. LoRA d_in=1024、d_out=4096、r=16、α=32。列A/B形状、trainable参数、scale和初始B=0时的梯度性质。
  17. 教师q=[.8,.2]、学生p=[.5,.5],计算两个方向KL并解释为什么不同。
  18. G=4、reward=[2,2,0,0],population std下求advantage;ε_clip=.2,分别求(A=+1,ρ=1.3)与(A=-1,ρ=.7)的PPO策略项。

C. 原理串联(43–52)

  1. 从文字消息到第3个新token,完整讲一遍chat template、tokenizer、embedding、block、logits、采样、prefill/cache/decode。
  2. 一口气解释“为什么需要RoPE、GQA、SwiGLU、pre-norm”,每个说旧问题、改法、代价或限制。
  3. ICL、SFT、LoRA、蒸馏、量化、RLVR、GRPO分别描述哪个维度?构造一个能组合其中多项的流程。
  4. 为何固定D增加attention头数不把全部投影参数按H倍增加?为何减少Hkv又不让attention匹配计算同倍减少?
  5. MoE总参数大、活跃参数少,为什么还可能推理慢、训练不稳定?分别从通信和优化回答。
  6. 解释top1 load-balancing loss里的f_e、P_e,以及对p_(t,e)的梯度;它为何不是给argmax直接求导?
  7. 用自己的语言比较pre-training、SFT、reward-model training、PPO、GRPO各自的数据和loss。
  8. 讲清old policy与reference policy的区别,说明为何GRPO无critic仍可能有reference模型。
  9. 设计一个prefix cache实验,能尽量区分输入长度、输出长度、预热和并发带来的影响。
  10. 对“长CoT+temperature0+RAG=没有幻觉”逐项反驳,并给出可验证的改进流程。

D. 代码与实验查错(53–60)

  1. 张量原为[B,T,H,d],直接.view(B,H,T,d)作为分头结果。这段代码形状正确,为什么数值可能错?
  2. 每步model(generated),函数内部默认use_cache=True,但不把cache传给下次调用。是否已避免跨步历史重算?
  3. 为了实现MoE,先对全量输入跑E个专家,再乘TopK的0/1 mask。输出和性能分别怎样判断?
  4. LoRA为了“初始不扰动base”,把A/B都设0。会怎样?如何改?
  5. SFT先把labels手动shift,又传给会内部shift的CausalLM训练接口。会训练什么?
  6. GRPO每次更新前重新计算old_logp=current_logp,并在同一次forward里保持二者都是current graph。出了什么问题?
  7. Lab6多个MTP头用同一个next-token答案mask,aux hidden还detach。你必须核对哪两种不同问题?
  8. shared组prompt1038tokens、输出128tokens;different组prompt613、输出86;shared总延迟更高。能否据此判断缓存无效?还缺什么?

自评规则

每题按0–3记录:0不会;1只会结论;2推导/计算正确但条件不全;3能写清假设、边界与变式。不要把60题简单相加当考试预测;把错题按01–11章归类,回到对应机制重新解释。


上一章 · 返回首页 · 内容清单 · 下一章

Built with LogoFlowershow