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

综合自测卷 · 100 分制

像被考一样练,才不会在真被问住时失手。 这一页是一份闭卷、计时、100 分制的综合自测卷,覆盖九讲主干(范式 → 序列 → 视觉 → 生成 → 决策 → 前沿 → 安全 → 科学 → 规模)。 与面试与答辩竞技场的分工:竞技场练单点反射(快、碎、连击),这里练整卷节奏(慢、整、按点给分)。

建议用时 120 分钟;请自备计时器(手机即可)。做完先按文末评分标准打分,再按漏点定位表回正文与习题。

应试要点(阅卷口径)
  • 必要 / 充分必须分清:「O(T2)O(T^2) 复杂度」是事实,「所以不能用」是判断——判断必须给条件。
  • 前提条件缺不得:注意力复杂度要说明是训练还是推理、是否含 KV cache;显存估算要说明精度与优化器。
  • 一句话理由也要写:概念判断题只写「对/错」不给分,必须给理由或反例。
  • 公式要能自己推:推导题按步给分,写结论不写过程最多给 3 分。
  • 工程题给判据:凡涉及取舍,必须写出验证方式与失败判据。

第一部分 · 概念判断(每题 3 分,共 30 分)

判断对错,并给出一句话理由或反例。只写「对 / 错」不得分。

1. 把一个十层 MLP 的所有激活函数都去掉(变成纯线性层),整个网络等价于一个线性变换。

2. 把单层网络的阶跃激活换成 Sigmoid 后,它能解决异或问题。

3. 在 PyTorch 里,如果网络输出层已经加了 softmax,再使用 nn.CrossEntropyLoss 是标准做法。

4. 推理阶段的 BatchNorm 使用当前 batch 的均值与方差。

5. 自注意力的计算复杂度是 O(T2d)O(T^2d),其训练时的中间激活显存同样是 O(T2)O(T^2) 量级。

6. 位置编码只是工程细节,删掉它模型仍能通过训练自己掌握序列顺序。

7. 扩散模型的采样必须串行执行 TT 步,因此无法加速。

8. DPO 不需要训练奖励模型,但仍需要成对的偏好数据。

9. 在同样的集群上,ZeRO-3 一定比 ZeRO-1 训得更快,因为它省下更多显存。

10. 缩放律(scaling law)说明「参数越多效果一定越好」。

第一部分答案(每题 3 分:判断 1 分 + 理由 2 分)

1. 对。 线性层的复合仍是线性层:W(L)⋯W(1)x=W′xW^{(L)}\cdots W^{(1)}x=W'x。这正是「非线性是深度的意义所在」(1.2)。

2. 错。 判决仍由 z=0z=0 的超平面决定,ϕ\phi 只要单调递增就不改变「哪一侧」。能力边界的突破靠分层,不靠激活光滑化(1.1、习题 B3)。

3. 错。 CrossEntropyLoss 内部已含 log_softmax,再加一次等于让模型对已归一化的概率再做 softmax(二次 softmax),训练会明显变差。失分点:只答「会重复」而不说清「重复了什么」只给 1 分。

4. 错。 推理阶段用训练期累积的滑动统计量(running_mean/var),否则单样本推理无法定义「批统计」。这也是 BN 在 batch 很小时表现差的原因。

5. 对。 QKTQK^{\mathrm T} 是 T×TT\times T 矩阵,训练时需要保存用于反向传播;显存 O(T2)O(T^2) 往往是长序列真正的瓶颈(FlashAttention 用分块重算把它降到 O(T)O(T))。

6. 错。 自注意力对输入置换等变(把词序打乱,输出同样被打乱),没有任何机制能感知顺序;位置信息必须显式注入(2.6)。

7. 错。 反向过程形式上串行,但可被重参数化/蒸馏/求解 ODE:DDIM 把步数压到几十步,一致性模型与流匹配可到 1–4 步(4.6)。

8. 对。 DPO 省掉的是「奖励模型 + 在线采样」,损失函数直接作用在成对偏好 (yw,yl)(y_w,y_l) 上(5.6)。

9. 错。 分片越多,通信量越大(ZeRO-3 需要参数 all-gather)。判据:小集群/慢网络下 ZeRO-1/2 往往更快;选择要看「显存是否真的不够」(9.2)。

10. 错。 缩放律给的是给定算力下的最优配比(Chinchilla:数据与参数等比例扩张),并受数据质量、训练策略与评测效度制约(6.2)。

第二部分 · 填空与简答(每题 4 分,共 20 分)

11. 输入 224×224×3224\times224\times3,一层 3×33\times3 卷积、64 个输出通道、步幅 1、无填充。求输出尺寸与本层参数量(含偏置)。

12. 写出多头自注意力(dmodel=dd_{\text{model}}=d,头数 hh,忽略偏置)的参数量表达式,并说明每一部分的形状。

13. 用 16N16N 规则估算:13B 参数的模型用 Adam 混合精度训练,静态显存大约多少 GB?若换成 8-bit 优化器可以降到多少?

14. 写出扩散模型前向过程的闭式表达 xt=…x_t=\dots,并说明 αˉt\bar\alpha_t 的定义与取值范围。

15. 举一个 reward hacking 的具体例子,并说明它为什么必然可能发生。

第二部分答案(每题 4 分)

11. 输出 222×222×64222\times222\times64;参数量 3×3×3×64+64=1,7923\times3\times3\times64+64=1{,}792。 输出边长 ⌊(224−3)/1⌋+1=222\lfloor(224-3)/1\rfloor+1=222;参数=核空间×输入通道×输出通道+偏置。

12. 总参数量 4d24d^2。 WQ,WK,WVW_Q,W_K,W_V 各 d×dd\times d(合起来 3d23d^2),输出投影 WOW_O 为 d×dd\times d。注意:多头只是把 dd 切成 hh 份,总量不变;若 dd 不能被 hh 整除则实现上是分别取 d/hd/h 维。

13. 静态显存 ≈16×13×109=208\approx16\times13\times10^9=208 GB(参数 2N + 梯度 2N + 优化器 8N + 主权重 4N)。8-bit 优化器把 8N 压到约 2N,总量 ≈10N=130\approx10N=130 GB。两组数字都远超单卡 80GB,因此必须分片(工具箱、9.5)。

14. xt=αˉt x0+1−αˉt εx_t=\sqrt{\bar\alpha_t}\,x_0+\sqrt{1-\bar\alpha_t}\,\varepsilon,ε∼N(0,I)\varepsilon\sim\mathcal N(0,I),其中 αˉt=∏s=1tαs\bar\alpha_t=\prod_{s=1}^{t}\alpha_s、αs=1−βs\alpha_s=1-\beta_s,αˉt∈(0,1]\bar\alpha_t\in(0,1] 随 tt 单调递减(t=Tt=T 时接近 0)。

15. 例:推荐系统只以点击率(CTR)为奖励,模型学会写标题党文案——CTR 上升而用户长期满意度下降。必然性:代理奖励只是真实目标的有偏估计,任何优化都在放大这个偏差(Goodhart 效应);只优化代理指标时,偏差方向会被系统性利用(5.6、7.2)。

第三部分 · 推导与计算(每题 10 分,共 30 分)

16.(10 分) 设 z∈RCz\in\mathbb R^{C} 为 logits,y^=softmax(z)\hat y=\mathrm{softmax}(z),真实标签为 one-hot yy。证明 softmax + 交叉熵的梯度为 ∂L∂z=y^−y.\frac{\partial\mathcal L}{\partial z}=\hat y-y . 并说明这个结果为什么不随饱和而消失。

17.(10 分) 一个 12 层、dmodel=512d_{\text{model}}=512、8 头的 Transformer 在推理阶段缓存 KV(fp16): (a) batch B=8B=8、序列长 T=1024T=1024 时,KV cache 约多少 MiB? (b) 若改为 GQA(KV 头数降为 2),显存降为原来的几分之几? (c) 若上下文升到 T=32768T=32768,你有哪些可选手段?(列三条并各写一句判据)

18.(10 分) 推导 VAE 的证据下界(ELBO): (a) 从 log⁡p(x)\log p(x) 出发,引入近似后验 q(z∣x)q(z\mid x),写出分解式; (b) 指出哪一项是重建项、哪一项是正则项; (c) 若正则项权重过大(β-VAE 的 β 很大),会出现什么现象?它对应哪个几何图像?

第三部分答案

16.(10 分) 交叉熵 L=−∑cyclog⁡y^c\mathcal L=-\sum_c y_c\log\hat y_c。

① 先求 softmax 的雅可比(c≠jc\ne j 与 c=jc=j 两种情形): ∂y^c∂zj=y^c(δcj−y^j).\frac{\partial \hat y_c}{\partial z_j}=\hat y_c(\delta_{cj}-\hat y_j).

② 链式法则: ∂L∂zj=−∑cycy^c⋅y^c(δcj−y^j)=−∑cyc(δcj−y^j)=−yj+(∑cyc)y^j.\frac{\partial\mathcal L}{\partial z_j}=-\sum_c\frac{y_c}{\hat y_c}\cdot\hat y_c(\delta_{cj}-\hat y_j)=-\sum_c y_c(\delta_{cj}-\hat y_j)=-y_j+\Bigl(\sum_c y_c\Bigr)\hat y_j .

③ 因 ∑cyc=1\sum_c y_c=1(one-hot),得 ∂L∂zj=y^j−yj\dfrac{\partial\mathcal L}{\partial z_j}=\hat y_j-y_j,即 ∂L/∂z=y^−y\partial\mathcal L/\partial z=\hat y-y。■\blacksquare

为什么不像 MSE 那样消失:梯度只依赖预测与真值的差,与 y^\hat y 的饱和程度无关;预测越错,梯度越大(∣y^−y∣→1|\hat y-y|\to1)。MSE + softmax 则含 y^(1−y^)\hat y(1-\hat y) 因子,饱和时该因子趋 0(1.4)。

评分:雅可比 3 分;链式展开 4 分;one-hot 归一化简 2 分;饱和讨论 1 分。

17.(10 分)

(a) dhead=512/8=64d_{\text{head}}=512/8=64。每 token 每层 KV 元素数 =2 (K,V)×8 头×64=1024=2\ (\text{K,V})\times8\ \text{头}\times64=1024;fp16 下 20482048 字节/层。12 层 → 2457624576 字节/token。B ⁣⋅ ⁣T=8×1024=8192B\!\cdot\!T=8\times1024=8192 token,故 8192×24576 字节≈201 MB≈192 MiB.8192\times24576\ \text{字节}\approx201\ \text{MB}\approx192\ \text{MiB}.

(b) KV 头降到 2:每 token 每层 2×2×64=2562\times2\times64=256 元素 → 512 字节/层 → 6144 字节/token,总量约 4848 MiB——降为原来的 1/41/4(与 KV 头数成正比)。

(c) 三条可选手段(各一句判据):

  1. GQA/更少 KV 头:判据——质量回归是否在容忍范围内(一般很轻微);
  2. KV 量化/压缩(int8、低秩、淘汰低重要度 token):判据——长程召回任务的准确率是否掉;
  3. 分页 + 前缀缓存 + 批调度(vLLM 类):判据——吞吐与 P99 延迟是否同时达标;若单卡放不下则上序列/上下文并行(9.6)。

评分:(a) 5 分(公式与数值各半);(b) 2 分;(c) 3 分(三条各 1 分,需带判据)。

18.(10 分)

(a) 引入任意分布 q(z∣x)q(z\mid x): log⁡p(x)=log⁡∫p(x∣z)p(z) dz=log⁡Eq[p(x∣z)p(z)q(z∣x)] ≥ Eq[log⁡p(x∣z)p(z)q(z∣x)],\log p(x)=\log\int p(x\mid z)p(z)\,dz=\log\mathbb E_{q}\Bigl[\frac{p(x\mid z)p(z)}{q(z\mid x)}\Bigr]\ \ge\ \mathbb E_{q}\Bigl[\log\frac{p(x\mid z)p(z)}{q(z\mid x)}\Bigr], 末步用 Jensen 不等式。整理成分解式: log⁡p(x)=KL(q(z∣x) ∥ p(z∣x))⏟≥0+Eq[log⁡p(x∣z)]−KL(q(z∣x) ∥ p(z))⏟ELBO.\log p(x)=\underbrace{\mathrm{KL}\bigl(q(z\mid x)\,\|\,p(z\mid x)\bigr)}_{\ge0}+\underbrace{\mathbb E_{q}[\log p(x\mid z)]-\mathrm{KL}\bigl(q(z\mid x)\,\|\,p(z)\bigr)}_{\text{ELBO}} .

(b) 第一项 Eq[log⁡p(x∣z)]\mathbb E_q[\log p(x\mid z)] 是重建项;第二项 −KL(q(z∣x)∥p(z))-\mathrm{KL}(q(z\mid x)\|p(z)) 是正则项(把近似后验拉向先验)。

(c) 正则项权重过大 → 后验坍塌(posterior collapse):q(z∣x)≈p(z)q(z\mid x)\approx p(z),潜变量对输入几乎不携带信息,解码器退化为无条件模型(先验采样直接重建)。几何图像:潜空间被强行拉平贴合先验,编码不再「按样本分散」。

评分:(a) 5 分(Jensen 2 分 + 分解 3 分);(b) 2 分;(c) 3 分。

第四部分 · 开放题(每题 10 分,共 20 分)

19.(10 分) 你有 4×A100 40GB,要微调一个 7B 开源模型到某垂直领域。请给出方案:(a) 显存账(为什么全参微调不可行);(b) 你选的微调方式与超参数策略;(c) 评测计划与失败判据。

20.(10 分) 你观察到「训练损失持续下降、验证损失先降后升」。写出你的诊断顺序(至少 4 步),每一步给出可证伪的判据;并说明在什么情况下这个现象不是过拟合。

第四部分参考答案

19.

(a) 显存账:全参微调用 Adam 混合精度约需 16N=16×7×109≈112 GB16N=16\times7\times10^9\approx112\ \text{GB} 静态显存,加激活远超 4 卡的 160 GB160\ \text{GB} 总容量(且需分片、通信昂贵)。即使上 ZeRO-3/FSDP,40GB 卡上的激活与通信也会把可行批大小压到极小,训练效率极低。

(b) 方案:QLoRA(4-bit NF4 量化基座 + LoRA 适配器)——冻结权重以 4-bit 存放(7B ≈ 4 GB),只训 LoRA 参数(通常 < 1% 参数);4 卡做数据并行或 DDP 提升吞吐;超参数:LoRA rank 16–64、alpha 取 2r2r、目标模块覆盖 WQ,WK,WV,WOW_Q,W_K,W_V,W_O 与 FFN、学习率 1 ⁣× ⁣10−4∼2 ⁣× ⁣10−41\!\times\!10^{-4}\sim2\!\times\!10^{-4}(比全参高 1–2 个数量级)、cosine 调度 + 3% warmup、批大小用梯度累积顶到 32–128。

(c) 评测与失败判据:① 域内留出集(本领域任务,含难例);② 通用能力回归(防止灾难性遗忘:通用问答/指令遵循小样本对照);③ 拒答与安全抽检。失败判据:域内提升 < 2 个点(说明数据或任务定义有问题);通用能力下降 > 5%(说明过拟合域内或学习率过大);输出格式不遵循比例 > 10%(说明 SFT 数据格式不一致)。评分:显存账 3 分;方案与超参 4 分;评测与判据 3 分(判据必须可测量)。

20. 诊断顺序(每步都要有可证伪的判据):

步 动作 可证伪判据
1 确认验证集没有泄漏/分布漂移 打乱标签重训:验证损失应显著变差;若几乎不变→指标或划分有问题
2 检查指标计算与 train/eval 模式 用同一批数据在 model.eval() 下前向,train 与 eval 损失应可比;差异巨大 → BN/Dropout 模式或统计量问题
3 检查正则化是否过弱 打开 dropout/weight decay/早停后曲线应改善;不动 → 正则不是主因
4 检查数据量与容量匹配 加大数据(或强增强)后验证损失应回升;不动 → 不是样本量问题
5 检查学习率与批大小 降 LR / 加 warmup 后验证曲线应更平缓;不动 → 不是优化问题

不是过拟合的情形(至少三种):① 验证集与训练集分布不同(域外更难的验证集本来就会先降后升;若测试集同分布则正常);② 指标本身的方差(小验证集 + 单轮评估的噪声可以造出「回升」假象;用多种子/交叉验证可证伪);③ 训练中途改了数据或超参(日志里能看到断点,曲线不是同一实验的连续结果)。

评分:诊断步骤 6 分(每步 > 1 分,需含判据);「非过拟合」情形 4 分。

评分标准

部分题量分值给分要点
一 · 概念判断1030判断 1 分 + 理由/反例 2 分;只写对错 1 分
二 · 填空简答520结果正确 2 分 + 关键说明 2 分
三 · 推导计算330首行/形状 3 分 + 链条完整 4 分 + 前提与讨论 3 分
四 · 开放题220方案具体 4 分 + 判据可测量 4 分 + 风险识别 2 分

段位换算:≥90 优秀(能教别人);75–89 良好(能独立做项目);60–74 及格(需补推导);<60 回到对应讲次的习题组重做。

漏点定位表

错题回去读立刻补做的题
1、21.1、1.2第 1 讲习题 A 组、B 组
3、41.4、1.7第 1 讲习题 A3、C2
5、6、72.4–2.6第 2 讲习题 B 组、C 组
7、84.5–4.6第 4 讲习题 B 组
8、155.6第 5 讲习题 D 组
9、10、136.2、9.2、9.5第 9 讲习题 C 组、D 组
11、123.2、2.5第 3 讲习题 C 组
14、184.3、4.5第 4 讲习题 B 组
16、17、19、201.5、工具箱第 1 讲习题 B 组 + 工具箱排查树

最后一句:这张卷子的目的不是打分,而是把你以为会的地方暴露出来。凡是有「写得出来但讲不清」的地方,回到竞技场的 60 秒速答再练一遍。