跳转至

第 3 章讲师手册

用途:把第 3 章 4 节课讲顺,控制节奏,知道哪里停、哪里追问。
原则:讲架构、公式和训练流程,不做代码实现;用图和白板驱动。


1. 授课对象与前置

对象:

  • 已学完 DDPM/采样/CFG;
  • 知道 latent diffusion 的大致概念;
  • 准备面试,需要把 SD 讲成系统。

前置:

  • 第 1–2 章;
  • 会写 VAE ELBO;
  • 知道 attention 的基本公式(不熟也没关系,本节会讲)。

不需要:

  • 训练过 SD;
  • 写过 UNet;
  • 做过微调。

2. 四节课总览

课次 主题 核心产出 对应材料
第 1 课 AE/VAE/VQ-VAE 三者对比表 + 损失 3.1
第 2 课 LDM 与 SD SD 数据流图 3.2
第 3 课 Attention attention 公式 + 形状 3.3
第 4 课 SD 训练 + Offset Noise 两阶段训练图 + 亮度解释 3.4

3. 第 1 课:AE/VAE/VQ-VAE

3.1 时间安排(90 分钟)

时间 环节 内容
0–5 开场 tokenizer 在 SD 中的位置
5–25 AE/VAE 重建、ELBO、重参数
25–45 VQ-VAE codebook、三项损失、straight-through
45–60 对比 连续 vs 离散、SD 的选择
60–75 白板 写 ELBO/VQ 损失
75–85 面试 90 秒 A2
85–90 小结 作业

3.2 板书布局

左侧:AE → VAE → VQ-VAE 演进
中间:VAE ELBO + 重参数
右侧:VQ 三项损失 + straight-through
底部:SD 为什么用连续 VAE

3.3 关键提问

  • AE 为什么不能采样?
  • VAE 为什么模糊?
  • VQ-VAE 的 codebook 怎么更新?
  • straight-through 和重参数化有什么区别?
  • SD 为什么不用 VQ-VAE?

3.4 常见卡点

卡点 处理
分不清 AE/VAE 用“有无先验”区分
VQ 三项损失记不住 用“重建/codebook/commit”三个词
重参数化理解不了 先讲 \(z=\mu+\sigma\epsilon\)
SD 的 VAE 混淆 强调连续、4 通道、8 倍

4. 第 2 课:LDM 与 SD

4.1 时间安排(90 分钟)

时间 环节 内容
0–5 回忆 VAE 压缩
5–25 LDM 像素 vs latent、数据流
25–45 组件 VAE/UNet/CLIP/Cross-Attn/CFG
45–60 计算 48 倍压缩、latent 尺寸
60–75 白板 画 SD 数据流
75–85 面试 90 秒 A5
85–90 小结 作业

4.2 板书布局

左侧:图像 → VAE → latent → UNet → VAE → 图像
中间:文本 → CLIP → Cross-Attn
右侧:512→64 的计算
底部:瓶颈(VAE/文本/采样)

4.3 关键提问

  • 为什么在 latent 上扩散?
  • VAE 只跑几次?
  • 文本怎么进去?
  • CFG 在哪里?
  • SD 的瓶颈是什么?

4.4 常见卡点

卡点 处理
说 SD 在像素扩散 画 latent 尺寸
只会说“用了 VAE” 讲 VAE 只编码/解码一次
忽略 cross-attn 画文本→K/V
不知道瓶颈 列 VAE/文本/采样

5. 第 3 课:Self/Cross Attention

5.1 时间安排(90 分钟)

时间 环节 内容
0–5 回忆 SD 数据流
5–25 Self-Attn QKV、公式、复杂度
25–45 Cross-Attn Q 图像、K/V 文本、形状
45–60 位置/作用 UNet 中的位置、attention map
60–75 白板 写公式 + 算形状
75–85 面试 90 秒 A8/A16
85–90 小结 作业

5.2 板书布局

左侧:Self-Attn 公式(QKV 同源)
中间:Cross-Attn 公式(Q 图像,KV 文本)
右侧:形状 N×L、复杂度
底部:MMDiT = 联合 attention

5.3 关键提问

  • Q/K/V 分别来自哪里?
  • 为什么 cross-attn 放低分辨率?
  • attention map 怎么解释?
  • 77 token 有什么影响?
  • MMDiT 和 cross-attn 的区别?

5.4 常见卡点

卡点 处理
Q/K/V 来源说反 用颜色标注图像/文本
不会算形状 先写 N、L、d
把 attention 当解释 强调相关性
以为 MMDiT 只是更大 讲联合双向

6. 第 4 课:SD 训练 + Offset Noise

6.1 时间安排(90 分钟)

时间 环节 内容
0–5 回忆 SD 架构
5–25 两阶段 VAE 训练 + LDM 训练
25–45 trick CFG dropout/EMA/bucketing/数据
45–60 预测目标 ε/v/flow
60–75 Offset Noise 动机、公式、代价
75–85 面试 90 秒 D7 / 2 分钟 A6
85–90 小结 作业

6.2 板书布局

左侧:阶段 1 VAE(重建+perceptual+GAN)
中间:阶段 2 LDM(z0 → zt → εθ)
右侧:Offset Noise 低频偏移
底部:ε / v / flow 对比

6.3 关键提问

  • 为什么分两阶段?
  • 为什么冻结 VAE/文本编码器?
  • CFG dropout 的作用?
  • Offset Noise 为什么是低频?
  • 它和 zero terminal SNR 的区别?

6.4 常见卡点

卡点 处理
说端到端训练 画两阶段
把 Offset Noise 当推理 强调训练时
混淆亮度/端点问题 用三者对比表
不知道预测目标 讲 ε/v/flow

7. 教学节奏控制

基础弱

  • 先画图,再上公式;
  • VQ-VAE 只讲三项损失和 straight-through;
  • attention 只讲 Q/K/V 来源;
  • Offset Noise 用“平均亮度”直觉。

基础好

  • 加问 VAE posterior collapse;
  • 加问 codebook collapse;
  • 加问 attention 复杂度/显存;
  • 加问 SDXL/SD3 的 VAE 变化。

时间不够

优先级:

  1. SD 数据流;
  2. Cross-Attention;
  3. 两阶段训练;
  4. Offset Noise;
  5. VQ-VAE 细节。

8. 课堂禁忌

  • ❌ 不要现场写 UNet/VAE;
  • ❌ 不要跑训练;
  • ❌ 不要堆架构细节;
  • ❌ 不要只讲公式,不画数据流;
  • ❌ 不要把 Offset Noise 说成推理技巧。

9. 课前检查清单

  • [ ] SD 数据流图已准备;
  • [ ] VAE/VQ 公式已练;
  • [ ] Attention 形状例子已算;
  • [ ] 两阶段训练图已画;
  • [ ] Offset Noise 对比表已准备;
  • [ ] 90 秒答案已练。

10. 相关材料