跳转至

第 5 章练习与答案

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

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


一、概念题(8 题)

  1. SDXL 相比 SD1.5 的四项核心改动是什么?
  2. 双文本编码器为什么有效?
  3. micro-conditioning 解决什么问题?
  4. base + refiner 的分工是什么?
  5. SD3 的 MMDiT 和 Cross-Attention 有什么区别?
  6. Rectified Flow 和 DDPM 的区别是什么?
  7. SD3 为什么加 T5?
  8. DALL·E 2 的 prior 是做什么的?

二、推导题(5 题)

  1. 写出 Rectified Flow 的插值和速度目标。
  2. 写出 Rectified Flow 的训练损失。
  3. 写出 Flow 的 Euler 采样更新。
  4. 写出 SDXL 的 base + refiner 流程(文字即可)。
  5. 写出 SD 与 DALL·E 2 的条件注入路径对比。

三、计算题(5 题)

  1. 设 \(x_0=0.8\),\(\epsilon=-0.2\),\(t=0.3\),求 \(x_t\) 和 \(v\)。
  2. 设 \(x_t=0.5\),\(v=-1.0\),\(\Delta=0.1\),用 Euler 求 \(x_{t-\Delta}\)。
  3. 1024×1024 图像经 8 倍下采样、4 通道 VAE,latent 尺寸是多少?
  4. 若 SD3 用 16 通道、同样 8 倍下采样,1024 的 latent 元素数是 4 通道的几倍?
  5. 若 GAN 1 步、Diffusion 20 步,模型评估次数大约相差多少倍?

四、面试复述题(4 题)

  1. 用 90 秒回答 A10。
  2. 用 90 秒回答 A11。
  3. 用 90 秒回答 A7。
  4. 用 90 秒回答 D6。

答案与解析

一、概念题答案

1. SDXL 四项改动

  • 双文本编码器;
  • 更大 UNet;
  • micro-conditioning;
  • base + refiner。

2. 双文本编码器为什么有效

CLIP-L 和 OpenCLIP bigG 的训练数据/语义不同,拼接提供更丰富表示;pooled embedding 提供全局条件。

3. micro-conditioning 解决什么

训练随机裁剪导致构图偏移;告诉模型原图尺寸/裁剪坐标/目标尺寸,让它学会补偿。

4. base + refiner

  • base:主体结构/语义/构图;
  • refiner:低强度 img2img 精修细节;
  • refiner 可选。

5. MMDiT vs Cross-Attention

Cross-attn 是图像查文本、单向;MMDiT 把文本/图像 token 拼接做联合 attention,双向,不同模态独立投影。

6. Rectified Flow vs DDPM

DDPM 是随机前向 + 去噪;Flow 是确定性直线路径 + 速度回归,采样解 ODE。

7. SD3 为什么加 T5

CLIP 77 token/组合性限制;T5 适合长文本、计数、文字渲染。

8. DALL·E 2 prior

把文本嵌入映射到 CLIP 图像嵌入,桥接模态 gap,供 decoder 条件使用。


二、推导题答案

9. Flow 插值和速度

\[ x_t=(1-t)x_0+t\epsilon, \qquad v=\epsilon-x_0. \]

10. Flow 损失

\[ \mathcal L =\mathbb E\left[ \|v_\theta(x_t,t)-(\epsilon-x_0)\|^2 \right]. \]

11. Euler 采样

\[ x_{t-\Delta}=x_t-\Delta\,v_\theta(x_t,t). \]

12. base + refiner

  1. base 从噪声生成 latent;
  2. refiner 以 base latent 为输入,做低强度 img2img;
  3. VAE 解码。

13. 条件注入对比

  • SD:文本 token → cross-attention 的 K/V;
  • DALL·E 2:文本 → prior → CLIP image embedding → decoder 条件。

三、计算题答案

14. \(x_t\) 和 \(v\)

\[ x_t=(1-0.3)\times0.8+0.3\times(-0.2) =0.56-0.06=0.5. \]
\[ v=\epsilon-x_0=-0.2-0.8=-1.0. \]

15. Euler 一步

\[ x_{t-0.1}=0.5-0.1\times(-1.0)=0.6. \]

16. 1024 latent

\[ 1024/8=128, \]
\[ 128\times128\times4=65{,}536. \]

17. 16 通道 vs 4 通道

\[ 16/4=4 \]

倍。

18. 评估次数

\[ 20/1=20 \]

约 20 倍。


四、面试复述题自评

19. A10

  • 是否说四项改动?
  • 是否解释 micro-conditioning/refiner?
  • 是否避免“只是更大”?

20. A11

  • 是否说 MMDiT/Flow/T5/16ch VAE?
  • 是否写 Flow loss?
  • 是否解释与 SDXL 的区别?

21. A7

  • 是否说 LDM vs unCLIP?
  • 是否解释 prior?
  • 是否比较条件注入/开放程度?

22. D6

  • 是否比较训练/采样/稳定性/多样性?
  • 是否给出混合方案?
  • 是否避免绝对化?

五、错题归因

错题 可能原因 回到
9–11、14、15 Flow 公式不熟 5.2
16、17 latent 尺寸 3.2/5.1
2–4、19 SDXL 改动 5.1
8、13、21 unCLIP/prior 5.3

六、下一步

  • 公式错:重写 Flow loss/Euler;
  • 架构错:画 LDM/unCLIP/MMDiT;
  • 选型弱:做“场景—模型—代价”表;
  • 表达卡:用 05 的 90 秒答案录音。