第 2 章讲师手册
用途:把第 2 章 4 节课讲顺,控制节奏,知道哪里停、哪里追问。
原则:讲采样公式、分类和取舍,不做代码实现;用问题驱动,不堆名词。
1. 授课对象与前置
对象:
- 已学完 DDPM 基础;
- 知道前向/后验/噪声预测;
- 准备面试,需要把采样、加速、引导讲清楚。
前置:
- 第 1 章;
- 会写 DDPM 采样公式;
- 知道 CFG 的基本概念(没有也可以,本节会讲)。
不需要:
- 实现过 sampler;
- 跑过 benchmark;
- 训练过蒸馏模型。
2. 四节课总览
| 课次 |
主题 |
核心产出 |
对应材料 |
| 第 1 课 |
DDPM 采样 + DDIM |
两个采样公式 + 特例关系 |
2.1 |
| 第 2 课 |
SDE/ODE + 蒸馏 |
采样器分类表 + 加速选型 |
2.2、2.3 |
| 第 3 课 |
Guidance |
CFG 推导 + \(w\) 调参 |
2.4 |
| 第 4 课 |
面试演练 |
90 秒答案 + 模拟面试 |
05、06 |
3. 第 1 课:DDPM 采样与 DDIM
3.1 时间安排(90 分钟)
| 时间 |
环节 |
内容 |
| 0–5 |
开场 |
采样在整章的位置、4 道题 |
| 5–25 |
DDPM |
后验均值、祖先采样、最后一步 |
| 25–45 |
DDIM |
非马尔可夫前向、更新式、\(\sigma\) |
| 45–60 |
关系 |
特例表、跳步、反演 |
| 60–75 |
白板 |
手算 DDIM 一步 |
| 75–85 |
面试 |
90 秒 D4 |
| 85–90 |
小结 |
作业 |
3.2 板书布局
左侧:DDPM 采样公式
中间:DDIM 更新式 + σ 的三种取值
右侧:DDPM/DDIM 对比表
底部:跳步 = 子序列反向
3.3 关键提问
- 为什么 DDPM 每步要加噪声?
- DDIM 为什么可以不加?
- DDPM 是 DDIM 的什么特例?
- 跳步为什么不会破坏分布?
- DDIM inversion 为什么能编辑?
3.4 常见卡点
| 卡点 |
处理 |
| 记不住 DDIM 公式 |
先写 \(\hat x_0\),再写三项 |
| 把 \(\sigma=0\) 当成全部 |
强调 \(\sigma>0\) 仍可随机 |
| 认为跳步=丢步 |
画子序列 \(\tau\) |
| 反演理解不了 |
用“确定性 ODE 可逆”类比 |
4. 第 2 课:SDE/ODE 与蒸馏
4.1 时间安排(90 分钟)
| 时间 |
环节 |
内容 |
| 0–5 |
回忆 |
DDIM 更新式 |
| 5–25 |
SDE/ODE |
前向/反向 SDE、概率流 ODE |
| 25–45 |
采样器 |
Euler/Heun/PLMS/DPM/UniPC |
| 45–60 |
蒸馏 |
渐进/LCM/Turbo/DMD/Flow |
| 60–75 |
选型 |
场景—方案—代价 |
| 75–85 |
面试 |
90 秒 D1/D3 |
| 85–90 |
小结 |
作业 |
4.2 板书布局
左侧:SDE → 反向 SDE → PF ODE
中间:采样器分类(随机/确定,一阶/二阶/多步)
右侧:蒸馏分类(一致性/对抗/分布匹配)
底部:选型表(质量/速度/多样性)
4.3 关键提问
- 为什么 ODE 和 SDE 边缘相同?
- DPM-Solver 为什么不是蒸馏?
- 高阶为什么能少步?
- LCM 和 Turbo 的区别?
- 少步模型为什么多样性下降?
4.4 常见卡点
| 卡点 |
处理 |
| 把 sampler 当 model |
强调不改权重 |
| 把 DPM-Solver 当蒸馏 |
强调数值积分 |
| 只会背名字 |
用分类表串起来 |
| 选型没逻辑 |
用“质量/速度/多样性”三角 |
5. 第 3 课:Guidance
5.1 时间安排(90 分钟)
| 时间 |
环节 |
内容 |
| 0–5 |
回忆 |
条件生成 |
| 5–20 |
score 分解 |
条件/无条件/分类器 |
| 20–40 |
classifier guidance |
公式、要求、缺点 |
| 40–65 |
CFG |
训练 dropout、公式、负向 prompt |
| 65–80 |
\(w\) |
调参、过饱和、rescale |
| 80–90 |
面试 |
90 秒 D8 |
5.2 板书布局
左侧:∇log p(x|c) = ∇log p(x) + ∇log p(c|x)
中间:classifier guidance 公式
右侧:CFG 公式 + 负向 prompt
底部:w 的影响(1 / 7 / 12)
5.3 关键提问
- CFG 为什么不需要分类器?
- 训练时为什么要 dropout 条件?
- \(w\) 太大为什么会过饱和?
- 负向 prompt 是“删除”吗?
- CFG 的成本为什么翻倍?
5.4 常见卡点
| 卡点 |
处理 |
| 说 CFG 需要分类器 |
强调 classifier-free |
| 把 CFG 与 classifier 等同 |
画“隐式分类器” |
| 认为 \(w\) 越大越好 |
展示过饱和现象 |
| 负向 prompt 理解成删除 |
用“推离”解释 |
6. 第 4 课:面试演练
6.1 时间安排(90 分钟)
| 时间 |
环节 |
内容 |
| 0–5 |
回忆 |
4 道核心题 |
| 5–25 |
抽答 |
D4/D1/D3/D8 |
| 25–50 |
追问 |
每人 2 层追问 |
| 50–75 |
模拟面试 |
15 分钟一轮 |
| 75–85 |
反馈 |
评分 + 改进 |
| 85–90 |
小结 |
下章预告 |
6.2 评分
6.3 常见问题
- 把 DDIM、DPM-Solver、LCM 混为一谈;
- 只背名字,不会选型;
- CFG 公式符号错;
- 不会解释 \(w\) 的代价。
7. 教学节奏控制
如果学生基础弱
- 先讲 DDPM 采样,再讲 DDIM;
- SDE/ODE 只讲直觉,不展开公式;
- 蒸馏只讲“改不改模型”;
- CFG 先讲公式,再讲 score。
如果学生基础好
- 加问“概率流 ODE 的边缘等价”;
- 加问“DPM-Solver 的指数积分”;
- 加问“DMD 与 LCM 的分布匹配”;
- 加问“CFG++/APG/PAG”。
如果时间不够
优先级:
- DDIM 更新式;
- DDPM/DDIM 特例;
- CFG 公式;
- 采样器分类;
- 蒸馏只讲 LCM/Turbo。
8. 课堂禁忌
- ❌ 不要现场实现 sampler;
- ❌ 不要跑 benchmark;
- ❌ 不要堆几十个 sampler 名字;
- ❌ 不要只讲公式,不讲选型;
- ❌ 不要把 CFG 说成分类器。
9. 课前检查清单
- [ ] DDIM 公式和数值例子已准备;
- [ ] 采样器分类表已画;
- [ ] CFG 公式已练;
- [ ] \(w\) 的对比图/描述已准备;
- [ ] 90 秒答案已练;
- [ ] 模拟面试评分表已打印。
10. 相关材料