综合自测卷 · 100 分制
像被考一样练,才不会在真被问住时失手。 这一页是一份闭卷、计时、100 分制的综合自测卷,覆盖九讲主干(范式 → 序列 → 视觉 → 生成 → 决策 → 前沿 → 安全 → 科学 → 规模)。 与面试与答辩竞技场的分工:竞技场练单点反射(快、碎、连击),这里练整卷节奏(慢、整、按点给分)。
- 必要 / 充分必须分清:「 复杂度」是事实,「所以不能用」是判断——判断必须给条件。
- 前提条件缺不得:注意力复杂度要说明是训练还是推理、是否含 KV cache;显存估算要说明精度与优化器。
- 一句话理由也要写:概念判断题只写「对/错」不给分,必须给理由或反例。
- 公式要能自己推:推导题按步给分,写结论不写过程最多给 3 分。
- 工程题给判据:凡涉及取舍,必须写出验证方式与失败判据。
第一部分 · 概念判断(每题 3 分,共 30 分)
判断对错,并给出一句话理由或反例。只写「对 / 错」不得分。
1. 把一个十层 MLP 的所有激活函数都去掉(变成纯线性层),整个网络等价于一个线性变换。
2. 把单层网络的阶跃激活换成 Sigmoid 后,它能解决异或问题。
3. 在 PyTorch 里,如果网络输出层已经加了 softmax,再使用 nn.CrossEntropyLoss 是标准做法。
4. 推理阶段的 BatchNorm 使用当前 batch 的均值与方差。
5. 自注意力的计算复杂度是 ,其训练时的中间激活显存同样是 量级。
6. 位置编码只是工程细节,删掉它模型仍能通过训练自己掌握序列顺序。
7. 扩散模型的采样必须串行执行 步,因此无法加速。
8. DPO 不需要训练奖励模型,但仍需要成对的偏好数据。
9. 在同样的集群上,ZeRO-3 一定比 ZeRO-1 训得更快,因为它省下更多显存。
10. 缩放律(scaling law)说明「参数越多效果一定越好」。
第一部分答案(每题 3 分:判断 1 分 + 理由 2 分)
1. 对。 线性层的复合仍是线性层:。这正是「非线性是深度的意义所在」(1.2)。
2. 错。 判决仍由 的超平面决定, 只要单调递增就不改变「哪一侧」。能力边界的突破靠分层,不靠激活光滑化(1.1、习题 B3)。
3. 错。 CrossEntropyLoss 内部已含 log_softmax,再加一次等于让模型对已归一化的概率再做 softmax(二次 softmax),训练会明显变差。失分点:只答「会重复」而不说清「重复了什么」只给 1 分。
4. 错。 推理阶段用训练期累积的滑动统计量(running_mean/var),否则单样本推理无法定义「批统计」。这也是 BN 在 batch 很小时表现差的原因。
5. 对。 是 矩阵,训练时需要保存用于反向传播;显存 往往是长序列真正的瓶颈(FlashAttention 用分块重算把它降到 )。
6. 错。 自注意力对输入置换等变(把词序打乱,输出同样被打乱),没有任何机制能感知顺序;位置信息必须显式注入(2.6)。
7. 错。 反向过程形式上串行,但可被重参数化/蒸馏/求解 ODE:DDIM 把步数压到几十步,一致性模型与流匹配可到 1–4 步(4.6)。
8. 对。 DPO 省掉的是「奖励模型 + 在线采样」,损失函数直接作用在成对偏好 上(5.6)。
9. 错。 分片越多,通信量越大(ZeRO-3 需要参数 all-gather)。判据:小集群/慢网络下 ZeRO-1/2 往往更快;选择要看「显存是否真的不够」(9.2)。
10. 错。 缩放律给的是给定算力下的最优配比(Chinchilla:数据与参数等比例扩张),并受数据质量、训练策略与评测效度制约(6.2)。
第二部分 · 填空与简答(每题 4 分,共 20 分)
11. 输入 ,一层 卷积、64 个输出通道、步幅 1、无填充。求输出尺寸与本层参数量(含偏置)。
12. 写出多头自注意力(,头数 ,忽略偏置)的参数量表达式,并说明每一部分的形状。
13. 用 规则估算:13B 参数的模型用 Adam 混合精度训练,静态显存大约多少 GB?若换成 8-bit 优化器可以降到多少?
14. 写出扩散模型前向过程的闭式表达 ,并说明 的定义与取值范围。
15. 举一个 reward hacking 的具体例子,并说明它为什么必然可能发生。
第二部分答案(每题 4 分)
11. 输出 ;参数量 。 输出边长 ;参数=核空间×输入通道×输出通道+偏置。
12. 总参数量 。 各 (合起来 ),输出投影 为 。注意:多头只是把 切成 份,总量不变;若 不能被 整除则实现上是分别取 维。
13. 静态显存 GB(参数 2N + 梯度 2N + 优化器 8N + 主权重 4N)。8-bit 优化器把 8N 压到约 2N,总量 GB。两组数字都远超单卡 80GB,因此必须分片(工具箱、9.5)。
14. ,,其中 、, 随 单调递减( 时接近 0)。
15. 例:推荐系统只以点击率(CTR)为奖励,模型学会写标题党文案——CTR 上升而用户长期满意度下降。必然性:代理奖励只是真实目标的有偏估计,任何优化都在放大这个偏差(Goodhart 效应);只优化代理指标时,偏差方向会被系统性利用(5.6、7.2)。
第三部分 · 推导与计算(每题 10 分,共 30 分)
16.(10 分) 设 为 logits,,真实标签为 one-hot 。证明 softmax + 交叉熵的梯度为 并说明这个结果为什么不随饱和而消失。
17.(10 分) 一个 12 层、、8 头的 Transformer 在推理阶段缓存 KV(fp16): (a) batch 、序列长 时,KV cache 约多少 MiB? (b) 若改为 GQA(KV 头数降为 2),显存降为原来的几分之几? (c) 若上下文升到 ,你有哪些可选手段?(列三条并各写一句判据)
18.(10 分) 推导 VAE 的证据下界(ELBO): (a) 从 出发,引入近似后验 ,写出分解式; (b) 指出哪一项是重建项、哪一项是正则项; (c) 若正则项权重过大(β-VAE 的 β 很大),会出现什么现象?它对应哪个几何图像?
第三部分答案
16.(10 分) 交叉熵 。
① 先求 softmax 的雅可比( 与 两种情形):
② 链式法则:
③ 因 (one-hot),得 ,即 。
为什么不像 MSE 那样消失:梯度只依赖预测与真值的差,与 的饱和程度无关;预测越错,梯度越大()。MSE + softmax 则含 因子,饱和时该因子趋 0(1.4)。
评分:雅可比 3 分;链式展开 4 分;one-hot 归一化简 2 分;饱和讨论 1 分。
17.(10 分)
(a) 。每 token 每层 KV 元素数 ;fp16 下 字节/层。12 层 → 字节/token。 token,故
(b) KV 头降到 2:每 token 每层 元素 → 512 字节/层 → 6144 字节/token,总量约 MiB——降为原来的 (与 KV 头数成正比)。
(c) 三条可选手段(各一句判据):
- GQA/更少 KV 头:判据——质量回归是否在容忍范围内(一般很轻微);
- KV 量化/压缩(int8、低秩、淘汰低重要度 token):判据——长程召回任务的准确率是否掉;
- 分页 + 前缀缓存 + 批调度(vLLM 类):判据——吞吐与 P99 延迟是否同时达标;若单卡放不下则上序列/上下文并行(9.6)。
评分:(a) 5 分(公式与数值各半);(b) 2 分;(c) 3 分(三条各 1 分,需带判据)。
18.(10 分)
(a) 引入任意分布 : 末步用 Jensen 不等式。整理成分解式:
(b) 第一项 是重建项;第二项 是正则项(把近似后验拉向先验)。
(c) 正则项权重过大 → 后验坍塌(posterior collapse):,潜变量对输入几乎不携带信息,解码器退化为无条件模型(先验采样直接重建)。几何图像:潜空间被强行拉平贴合先验,编码不再「按样本分散」。
评分:(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 混合精度约需 静态显存,加激活远超 4 卡的 总容量(且需分片、通信昂贵)。即使上 ZeRO-3/FSDP,40GB 卡上的激活与通信也会把可行批大小压到极小,训练效率极低。
(b) 方案:QLoRA(4-bit NF4 量化基座 + LoRA 适配器)——冻结权重以 4-bit 存放(7B ≈ 4 GB),只训 LoRA 参数(通常 < 1% 参数);4 卡做数据并行或 DDP 提升吞吐;超参数:LoRA rank 16–64、alpha 取 、目标模块覆盖 与 FFN、学习率 (比全参高 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 分。
评分标准
| 部分 | 题量 | 分值 | 给分要点 |
|---|---|---|---|
| 一 · 概念判断 | 10 | 30 | 判断 1 分 + 理由/反例 2 分;只写对错 1 分 |
| 二 · 填空简答 | 5 | 20 | 结果正确 2 分 + 关键说明 2 分 |
| 三 · 推导计算 | 3 | 30 | 首行/形状 3 分 + 链条完整 4 分 + 前提与讨论 3 分 |
| 四 · 开放题 | 2 | 20 | 方案具体 4 分 + 判据可测量 4 分 + 风险识别 2 分 |
段位换算:≥90 优秀(能教别人);75–89 良好(能独立做项目);60–74 及格(需补推导);<60 回到对应讲次的习题组重做。
漏点定位表
| 错题 | 回去读 | 立刻补做的题 |
|---|---|---|
| 1、2 | 1.1、1.2 | 第 1 讲习题 A 组、B 组 |
| 3、4 | 1.4、1.7 | 第 1 讲习题 A3、C2 |
| 5、6、7 | 2.4–2.6 | 第 2 讲习题 B 组、C 组 |
| 7、8 | 4.5–4.6 | 第 4 讲习题 B 组 |
| 8、15 | 5.6 | 第 5 讲习题 D 组 |
| 9、10、13 | 6.2、9.2、9.5 | 第 9 讲习题 C 组、D 组 |
| 11、12 | 3.2、2.5 | 第 3 讲习题 C 组 |
| 14、18 | 4.3、4.5 | 第 4 讲习题 B 组 |
| 16、17、19、20 | 1.5、工具箱 | 第 1 讲习题 B 组 + 工具箱排查树 |
最后一句:这张卷子的目的不是打分,而是把你以为会的地方暴露出来。凡是有「写得出来但讲不清」的地方,回到竞技场的 60 秒速答再练一遍。