跳转至

第 2 章材料设计理由

这份文档回答:为什么第 2 章选这些内容?学完能做什么?不学/不做会缺什么?
也可以作为你提出新需求/修改课程的依据。


1. 本章定位

第 2 章不是“采样器实现课”,而是:

把采样、加速、引导三件事讲清楚,让面试官知道你不仅会用,还知道为什么、怎么选。

因此材料遵循四条原则:

  1. 公式必须能写:DDIM、CFG 是高频白板题;
  2. 方法必须能分类:采样器/加速/引导不能混为一谈;
  3. 选择必须有理由:不仅知道 DPM-Solver,还要知道何时用;
  4. 不做代码实现:不在 sampler/benchmark 上耗时间。

2. 材料地图

材料 为什么选 学完能做什么 不做什么
2.1 DDPM/DDIM D4 的核心,采样基础 写两个公式,解释跳步/反演 不实现 sampler
2.2 SDE/ODE 与采样器 D1 分类、D3 training-free 分类/选型,解释 DPM-Solver 不推数值分析细节
2.3 蒸馏与少步 D3 training-based 比较 LCM/Turbo/DMD 不训练蒸馏模型
2.4 Guidance D8 全部 推 CFG,解释 \(w\)/负向 prompt 不实现 guidance
05 面试题库 把知识变成表达 90 秒回答 4 道核心题 不覆盖所有题
06 练习 纸面检查 手算、推导、选型 不做编程题
07 讲师手册 可授课 4 节课节奏/板书 不是学生必读
08 设计理由 解释取舍 判断增删/加深 不是知识点讲义

3. 每份材料的详细理由

3.1 为什么先讲 DDPM/DDIM(2.1)

选择理由:

  • D4 是采样部分最高频的题;
  • DDIM 是“确定性采样/跳步/反演”的入口;
  • 不会 DDIM,后面 SDE/ODE、编辑、加速都讲不深。

学到什么:

  • DDPM 祖先采样;
  • DDIM 非马尔可夫前向与更新式;
  • \(\sigma\) 的三种取值;
  • 特例关系、跳步、反演。

能处理什么:

  • D4;
  • “DDIM 为什么能跳步”;
  • “DDPM 和 DDIM 哪个好”;
  • “DDIM inversion 怎么用于编辑”。

为什么不做:

  • 不实现采样循环;
  • 不跑步数对比;
  • 不展开所有非马尔可夫推导。

取舍:用“公式 + 特例表 + 数值例子”替代代码实验。


3.2 为什么讲 SDE/ODE(2.2)

选择理由:

  • D1 需要分类框架;
  • D3 的 training-free 加速需要解释 solver;
  • “采样器不是模型”是常见误区。

学到什么:

  • 前向/反向 SDE;
  • 概率流 ODE;
  • Euler/Heun/PLMS/DPM-Solver/UniPC;
  • sampler vs scheduler;
  • 选型。

能处理什么:

  • D1;
  • “DPM-Solver 为什么快”;
  • “SDE 和 ODE 怎么选”;
  • “为什么步数少不一定快”。

为什么不做:

  • 不推数值分析证明;
  • 不实现 solver;
  • 不跑 benchmark。

取舍:保留“分类 + 直觉 + 选型”,删掉“代码 + 调参”。


3.3 为什么讲蒸馏(2.3)

选择理由:

  • D3 的高分回答必须区分“采样器加速”和“模型加速”;
  • LCM/Turbo 是产品落地高频;
  • 少步模型的代价是常见追问。

学到什么:

  • 渐进蒸馏、LCM、Turbo、DMD、Rectified Flow;
  • 训练信号与步数;
  • 质量/多样性/成本取舍;
  • 选型。

能处理什么:

  • “LCM 和 Turbo 的区别”;
  • “为什么 Turbo 要低 CFG”;
  • “少步模型为什么多样性下降”;
  • “手机端怎么选”。

为什么不做:

  • 不训练蒸馏模型;
  • 不实现 consistency loss;
  • 不跑 1/4/8 步对比。

取舍:把“训练细节”压缩成“训练信号 + 取舍”,服务面试。


3.4 为什么讲 Guidance(2.4)

选择理由:

  • D8 是条件生成的核心题;
  • CFG 是 SD 默认组件;
  • 负向 prompt、\(w\)、过饱和是工程高频。

学到什么:

  • score 分解;
  • classifier guidance;
  • CFG 与条件 dropout;
  • 负向 prompt;
  • \(w\) 的影响与改进。

能处理什么:

  • D8;
  • “CFG 需要分类器吗”;
  • “\(w\) 为什么不能太大”;
  • “负向 prompt 怎么实现”。

为什么不做:

  • 不实现 CFG 采样;
  • 不训练分类器;
  • 不展开所有改进变体。

取舍:公式 + 对比表 + 调参经验,足够面试。


4. 为什么没有代码

第 2 章最容易滑向“实现 sampler/跑 benchmark”。本课程刻意不做,原因:

  1. 面试考的是解释和选型,不是复现;
  2. 代码会消耗大量时间,但不会自动提升表达;
  3. 跑通不等于理解:可以调库,但讲不清 \(\sigma\) 的作用;
  4. 本章的产出是公式、分类表、选型逻辑,不是 repo。

如果以后需要代码,建议作为“可选实验”,不进入主线。


5. 学什么 → 能处理什么

学完 能处理的问题 能做的动作
2.1 D4、DDIM 跳步/反演 写公式、画特例表
2.2 D1、DPM-Solver 分类、选型、解释
2.3 D3、LCM/Turbo 比较、选型、说代价
2.4 D8、CFG/\(w\) 推导、调参、解释负向 prompt
05 面试追问 90 秒回答
06 自我检查 手算、推导、错题归因

6. 本章不覆盖什么

  • 不覆盖 SDE 的严格数学;
  • 不覆盖 DPM-Solver 的完整推导;
  • 不覆盖蒸馏训练细节;
  • 不覆盖采样器工程实现;
  • 不覆盖所有 guidance 变体(CFG++/APG/PAG 只点名)。

这些不是不重要,而是不属于第 2 章的面试主线。


7. 你可以怎么改

7.1 加深数学

  • 加 Fokker–Planck;
  • 加 DPM-Solver 指数积分推导;
  • 加 consistency model 的数学;
  • 加 CFG 的 score 严格推导。

7.2 增加代码(可选)

  • 给 DDIM 20 行伪代码;
  • 给“代码阅读题”;
  • 不要求运行。

7.3 增加面试训练

  • 加 30 题题库;
  • 加英文版;
  • 加压力追问;
  • 加“选型 case”。

7.4 调整比例

  • 少讲 SDE,多讲 DDIM/CFG;
  • 少讲蒸馏,多讲采样器;
  • 增加 Flow 采样;
  • 增加编辑/反演。

建议:每加一块内容,就删一块低优先级内容,保持 90 分钟。


8. 怎么判断学会了

L1 能复述

能讲 3 分钟“采样器怎么选”。

L2 能推导

能写 DDIM 更新式和 CFG 公式。

L3 能比较

能比较 DDPM/DDIM、DPM-Solver/蒸馏、CFG/classifier。

L4 能应对追问

能回答“为什么跳步”“为什么 DPM-Solver 快”“为什么高 CFG 过饱和”。

本章目标是 L2–L3,面试冲刺是 L4。


9. 最后一句话

第 2 章的价值,不是让你会写 sampler,而是让你在面试中把“怎么采样、怎么加速、怎么引导”讲成三条清晰的线。