跳转至

第 2 章练习与答案

目标:用纸笔检查理解,不写代码。
建议:先做,再看答案;错题标记,回到对应讲义。

题量:概念 8 + 推导 5 + 计算 7 + 面试复述 4。


一、概念题(8 题)

  1. 采样器和调度器的区别是什么?
  2. DDPM 和 DDIM 的前向过程有什么不同?
  3. 为什么 DDIM 能跳步?
  4. DDPM 是 DDIM 的什么特例?
  5. 反向 SDE 和概率流 ODE 的关系是什么?
  6. 为什么 DPM-Solver 不是蒸馏模型?
  7. LCM、Turbo、DMD 分别是什么类型的加速?
  8. CFG 为什么叫 classifier-free?

二、推导题(5 题)

  1. 写出 DDIM 的更新式,并说明 \(\sigma_t=0\) 时为什么是确定性的。
  2. 说明当 \(\sigma_t^2=\tilde\beta_t\) 且取全部步时,DDIM 如何退化为 DDPM。
  3. 从 score 分解推导 classifier guidance 的 \(\epsilon\) 形式。
  4. 写出 CFG 公式,并说明它为什么是隐式分类器引导。
  5. 写出负向 prompt 的 CFG 公式。

三、计算题(7 题)

  1. 设 \(\alpha_t=0.8\),\(\bar\alpha_t=0.5\),\(\bar\alpha_{t-1}=0.625\),\(x_t=1\),\(\epsilon_\theta=0.3\),求 DDIM 的 \(\hat x_0\) 和 \(\sigma_t=0\) 时的 \(x_{t-1}\)。
  2. 在题 14 中,若 \(\sigma_t=0.2\),\(z=0.5\),求 \(x_{t-1}\)(保留两位小数)。
  3. 设 \(\epsilon_\theta(x_t,\varnothing)=0.1\),\(\epsilon_\theta(x_t,c)=0.4\),\(w=5\),求 CFG 的 \(\tilde\epsilon\)。
  4. 设 \(\epsilon_\theta(x_t,c_{\mathrm{neg}})=0.2\),\(\epsilon_\theta(x_t,c)=0.5\),\(w=7\),求负向 prompt 的 \(\tilde\epsilon\)。
  5. 若 DDPM 用 1000 步,DPM-Solver 用 20 步,模型评估次数大约相差多少倍?
  6. 若 Heun 每步评估 2 次模型,20 步共评估多少次?和 DDPM 1000 步比呢?
  7. 若 \(w=1\),CFG 输出等于什么?\(w=0\) 呢?

四、面试复述题(4 题)

  1. 用 90 秒回答 D4。
  2. 用 90 秒回答 D1。
  3. 用 90 秒回答 D3。
  4. 用 90 秒回答 D8。

答案与解析

一、概念题答案

1. 采样器 vs 调度器

  • Scheduler:定义噪声水平、时间步、\(\sigma\)/beta schedule;
  • Sampler:给定噪声水平,如何数值积分/更新样本。

两者可独立组合,例如 DPM++ 2M + Karras。

2. DDPM 与 DDIM 前向

  • DDPM:马尔可夫链 \(q(x_t|x_{t-1})\);
  • DDIM:非马尔可夫族 \(q_\sigma(x_{t-1}|x_t,x_0)\),但保持相同的 \(q(x_t|x_0)\)。

3. 为什么 DDIM 能跳步

因为反向定义在子序列上,前向边缘仍匹配训练分布;不是简单丢步,而是重新定义一致的反向轨迹。

4. DDPM 是 DDIM 的什么特例

当 \(\sigma_t^2=\tilde\beta_t\) 且取全部时间步时,DDIM 退化为 DDPM 祖先采样。

5. 反向 SDE 与概率流 ODE

概率流 ODE 去掉了反向 SDE 的随机项,但边缘分布相同;因此可以用确定性 ODE 采样。

6. DPM-Solver 为什么不是蒸馏

它不改网络、不训练学生,只是更好的数值积分器;蒸馏会改变模型权重。

7. LCM、Turbo、DMD

  • LCM:一致性蒸馏;
  • Turbo:对抗蒸馏;
  • DMD:分布匹配蒸馏。

8. CFG 为什么叫 classifier-free

它不需要显式分类器,而是用条件/无条件模型的差近似分类器梯度。


二、推导题答案

9. DDIM 更新式

\[ \hat x_0 =\frac{x_t-\sqrt{1-\bar\alpha_t}\epsilon_\theta}{\sqrt{\bar\alpha_t}}, \]
\[ x_{t-1} =\sqrt{\bar\alpha_{t-1}}\hat x_0 +\sqrt{1-\bar\alpha_{t-1}-\sigma_t^2}\epsilon_\theta +\sigma_t\epsilon. \]

当 \(\sigma_t=0\),最后一项消失,\(x_{t-1}\) 由 \(x_t\) 和网络确定,所以是确定性的。

10. 退化为 DDPM

当 \(\sigma_t^2=\tilde\beta_t\) 且取全部时间步时,DDIM 的前向族与 DDPM 的后验一致,反向更新等价于 DDPM 的祖先采样:

\[ x_{t-1}=\mu_\theta+\sigma_t z. \]

11. Classifier guidance

由:

\[ \nabla\log p(x|c)=\nabla\log p(x)+\nabla\log p(c|x). \]

score 与 \(\epsilon\) 的关系:

\[ \nabla\log p_t(x)=-\frac{\epsilon}{\sqrt{1-\bar\alpha_t}}. \]

所以:

\[ \tilde\epsilon =\epsilon_\theta(x_t) -s\sqrt{1-\bar\alpha_t}\nabla\log p_\phi(c|x_t). \]

12. CFG

\[ \tilde\epsilon =\epsilon_\theta(x_t,\varnothing) +w(\epsilon_\theta(x_t,c)-\epsilon_\theta(x_t,\varnothing)). \]

它用条件/无条件 score 差近似:

\[ \nabla\log p(c|x) \propto \nabla\log p(x|c)-\nabla\log p(x). \]

所以是隐式分类器引导。

13. 负向 prompt

\[ \tilde\epsilon =\epsilon_\theta(x_t,c_{\mathrm{neg}}) +w(\epsilon_\theta(x_t,c)-\epsilon_\theta(x_t,c_{\mathrm{neg}})). \]

三、计算题答案

14. DDIM 确定性一步

\[ \hat x_0 =\frac{1-\sqrt{0.5}\times0.3}{\sqrt{0.5}} \approx1.114. \]
\[ x_{t-1} =\sqrt{0.625}\times1.114 +\sqrt{0.375}\times0.3 \approx0.881+0.184 \approx1.065. \]

15. \(\sigma_t=0.2\),\(z=0.5\)

在题 14 的基础上加:

\[ 0.2\times0.5=0.1. \]

所以:

\[ x_{t-1}\approx1.065+0.1=1.165. \]

16. CFG

\[ \tilde\epsilon =0.1+5\times(0.4-0.1) =0.1+1.5 =1.6. \]

17. 负向 prompt

\[ \tilde\epsilon =0.2+7\times(0.5-0.2) =0.2+2.1 =2.3. \]

18. 评估次数

DDPM 1000 步约 1000 次模型评估;DPM-Solver 20 步约 20 次(若每步一次)。约 50 倍。

19. Heun 20 步

每步 2 次评估:

\[ 20\times2=40. \]

和 DDPM 1000 步比:

\[ 1000/40=25. \]

约 25 倍。

20. \(w=1\) 和 \(w=0\)

  • \(w=1\):
\[ \tilde\epsilon=\epsilon_\theta(x_t,c). \]
  • \(w=0\):
\[ \tilde\epsilon=\epsilon_\theta(x_t,\varnothing). \]

四、面试复述题自评

21. D4

  • 是否说“共享训练目标,区别在反向”?
  • 是否写出 DDIM 更新式?
  • 是否说明 DDPM 是特例?
  • 是否提到跳步/反演?

22. D1

  • 是否按随机性/数值方法分类?
  • 是否给出至少 6 个 sampler?
  • 是否能按任务选型?

23. D3

  • 是否区分 training-free / training-based?
  • 是否比较 LCM/Turbo/DMD?
  • 是否说明少步的代价?

24. D8

  • 是否写出 score 分解?
  • 是否说明 CFG 不需要分类器?
  • 是否解释 \(w\) 和负向 prompt?

五、错题归因

错题 可能原因 回到
14、15 DDIM 公式不熟 2.1
16、17 CFG 公式不熟 2.4
18、19 评估次数/步数概念混 2.2
9、10 特例关系不清 2.1
11、12 score/CFG 推导不熟 2.4

六、下一步

  • 计算错:重做 2.1/2.4 的数值例子;
  • 概念错:画采样器分类表;
  • 表达卡:用 05 的 90 秒答案录音;
  • 选型弱:做一张“场景—方案—代价”表。