第 9 讲 · 学习目标自检表
目标原文来自学习目标(K / S / A)第 9 讲一节。用法:读完一讲,逐条自问能否做到;「半」或「不能」按最后两列回查。 打分口径:能不看书写出算式或配置并在白纸上说清理由,才算「能」;只能认出答案算「半」;想不起依据算「不能」。凡涉及数字的,必须带口径(精度 + 优化器 + 是否含主权重 + 分片级数)才算完整。
| 编号 | 目标(能……) | 自评 | 依据 | 对应习题 |
|---|---|---|---|---|
| K9.1 | 列出显存五账单,写出 规则,并说明纯 fp32 / 混合精度 / 8-bit 三种口径的差别与相同点 | ☐ 能 / ☐ 半 / ☐ 不能 | 方法 9.1.1、定义 9.1.1、例 9.5.1、附录 C.18 | A1、B1、C1 |
| K9.2 | 说清 DP / TP / PP 各自的切分对象、通信模式与主要代价,并各给一条「什么时候别用它」 | ☐ 能 / ☐ 半 / ☐ 不能 | 定义 9.2.1、定义 9.3.1、定义 9.4.1、9.6.5 | A3、A6、A7、B4、D3 |
| K9.3 | 说出 ZeRO 三个阶段各分片什么、每卡账怎么算,并解释「为什么越高不一定越快」 | ☐ 能 / ☐ 半 / ☐ 不能 | 定义 9.2.3、例 9.2.3、方法 9.2.2 | A4、B6、C1 |
| K9.4 | 说明 BF16 与 FP16 的位布局差别,以及 fp16 为何需要 loss scaling、FP8 的缩放为何不同 | ☐ 能 / ☐ 半 / ☐ 不能 | 定义 9.5.1、定义 9.5.2、附录 C.14 | A8、C5 |
| S9.1 | 对给定模型与硬件算出显存需求,给出并行方案并写明失败判据 | ☐ 能 / ☐ 半 / ☐ 不能 | 方法 9.7.1、例 9.7.1、例 9.7.2、9.7.5 | C1、D1、D2 |
| S9.2 | 推导流水线气泡公式,并给出至少三种减小气泡的手段(含各自的代价) | ☐ 能 / ☐ 半 / ☐ 不能 | 结论 9.4.1、方法 9.4.1、例 9.4.1 | B3、D2 |
| S9.3 | 完成一次 LoRA / QLoRA 微调,并报告吞吐、显存与评测结果(三方对照) | ☐ 能 / ☐ 半 / ☐ 不能 | 定义 9.5.5、例 9.5.4、9.7.3、9.7.4、Lab 3 | C5、D3 |
| A9.1 | 在「更省显存」与「更快」之间做取舍,并说明验证方式与失败判据 | ☐ 能 / ☐ 半 / ☐ 不能 | 方法 9.5.1、方法 9.6.1、9.6.3、方法 9.2.2 | C6、D3、D4 |
附加核对(不计入上述八条,但「不能」就意味着会踩坑)
| 主题 | 能…… | 依据 | 对应习题 |
|---|---|---|---|
| 三种「放不下」的诊断 | 按「模型状态 → 激活 → 单层」的顺序定位,并各给首选处方(含为什么不是别的) | 方法 9.1.2、9.1.5 | A2、A5、A7、D1 |
| 通信量与通信时间 | 写出 All-Reduce / Reduce-Scatter / All-Gather / P2P 的每卡量级,并区分「大消息看带宽、小消息看延迟」 | 定义 9.6.1、例 9.6.1、例 9.2.2 | A3、A6、B2、C6 |
| 通信重叠 | 说出四种做法(分桶异步归约 / 参数预取 / 计算分块 / 算子融合),并用 profiler 判定重叠是否生效 | 方法 9.6.1、例 9.6.2 | C6、D3 |
| 扩展效率验收 | 用同样的全局批测 ,并说明为什么不能用总吞吐替代 | 定义 9.1.3、例 9.1.3、9.7.4 | A3、C2、D1、D3 |
| 容错与恢复一致性 | 说出检错 / 恢复 / 弹性 / 静默损坏 / 确定性五层要做什么,并列出恢复时必须一并还原的五项状态 | 方法 9.6.3、9.6.4、方法 9.6.5 | B5、C4、D4 |
| 分片 checkpoint 与最优间隔 | 用「期望故障损失 vs 保存开销」求最优间隔,并指出公式之外的硬约束 | 方法 9.6.2、例 9.6.3 | B5、C4、D4 |
| 记账口径 | 对任何一次训练都能报出「卡数 + 精度 + + + + 是否重计算 + 是否分片」 | 9.6.5、9.7.4、工程工具箱 | C1、C5、D1 |
| 5D 配平 | 说出五个轴各切什么、通信特征如何、配平的四条硬约束与三条软目标 | 定义 9.6.2、方法 9.6.4 | D1、D2 |