生成模型 / 采样与蒸馏 原理笔记进阶 5 分钟阅读 查看源文件 ↗

扩散模型蒸馏#

本页内容6 个部分
查看概览图
FOUNDATIONS · 04b

减少步数,
也减少每步前向次数

先区分教师轨迹、生成分布与 guidance 三种监督,再比较质量、NFE 和真实延迟。

求解器步数×网络每步前向次数×单次计算成本

步数、NFE 与实际延迟要分别记录;CFG 两个分支也可以合并成加倍 batch 的一次调用。

方法监督信号需要分清
Progressive Distillation教师两步 → 学生一步逐轮减半;v-pred 是设计选择
LCM同一教师轨迹的相邻状态含 guided teacher;边界条件锚定映射
ADD对抗目标 + 教师蒸馏不是 LCM 直接加 GAN
Guidance Distillation把教师 CFG 结果内化可与步数蒸馏组合
CM一致性

同一轨迹 → 同一终点

  • Teacher:构造近似相邻状态
  • Student:通过梯度学习映射
  • EMA target:平滑回归目标
  • 边界 f(x, ε) = x:排除常数映射
减少成本 不同的监督信号
CFG引导蒸馏

把双分支结果学进学生

  • FLUX.1-dev:guidance distillationguidance 条件 ≠ 外部双分支 CFG
  • FLUX.1-schnell:latent adversarial distillation官方示例 4 步、guidance_scale = 0
  • 训练是否支持可调 guidance,要看模型
边界
EMA 不能单独防塌缩

常数 student 与相同常数 target 仍能令纯一致性损失为零。边界条件与轨迹监督不能省略;有限训练也不保证收敛。

PD · LCM · ADDEMA ≠ 防塌缩保证guidance 条件 ≠ 双分支 CFG

扩散推理的成本可以粗略拆成 求解器步数 × 每步网络前向次数 × 单次前向成本。这只是预算模型:不同步的计算、批处理和通信成本也会影响实际延迟。

蒸馏主要处理前两个因子。它与量化、编译、注意力 kernel 优化可以组合,但训练成本、质量和模型兼容性需要分别评估。

1. 三类问题先分开#

目标 典型方法 学生学习什么
减少求解步数 Progressive Distillation、Consistency Distillation、ADD 多步教师的映射或生成分布
减少 CFG 双分支前向 Guidance Distillation 把教师的引导结果内化到一次预测
降低积分难度 Rectified Flow / reflow 等 改善路径与耦合;不自动等于蒸馏

一步采样不代表所有输入都能准确恢复原图。生成模型学习的是分布或映射,少步模型也有近似误差和训练分布限制。

2. Progressive Distillation:两步压成一步#

从一个确定性教师采样器出发,让学生的一步更新匹配教师连续两步的结果。训练完成后,把学生作为下一轮教师,逐轮减半步数。若从 NN 步降到 KK 步且 N/KN/K 是 2 的幂,需要 log⁡2(N/K)\log_2(N/K) 轮。

参数化为什么重要? 对 xt=αtx0+σtϵx_t=\alpha_t x_0+\sigma_t\epsilon,若通过噪声预测还原

x^0=xt−σtϵ^αt,\hat x_0=\frac{x_t-\sigma_t\hat\epsilon}{\alpha_t},

则 αt\alpha_t 很小时,噪声预测中的误差会被放大。这不等于“预测噪声本身一定很难”:高噪声端 xtx_t 就已经接近噪声。

在 αt2+σt2=1\alpha_t^2+\sigma_t^2=1 的约定下,定义

v=αtϵ−σtx0,x0=αtxt−σtv.v=\alpha_t\epsilon-\sigma_t x_0,\qquad x_0=\alpha_t x_t-\sigma_t v.

vv 参数化避免了上述除以很小 αt\alpha_t 的转换,论文还讨论了其他参数化和损失权重。它是少步蒸馏的重要设计选择,不是所有蒸馏都必须使用的形式,也不保证任意步数下训练稳定。

参考:Progressive Distillation。

3. Consistency Models 与 LCM#

一致性函数希望把同一条 probability flow ODE 轨迹上的各个状态映射到其近数据端终点:

fθ(xt,t)≈fθ(xs,s).f_\theta(x_t,t)\approx f_\theta(x_s,s).

这里的终点不必等于某次随机前向加噪时配对的训练图 x0x_0。条件独立加噪配对与 ODE 轨迹是不同概念。

LCM 把这类一致性蒸馏放到 latent space,并使用带 guidance 的教师 ODE。典型训练包含三种角色:

角色 更新方式 用途
预训练 diffusion teacher 冻结 构造相邻时间的近似轨迹状态
Student 梯度更新 学习一致性映射
Target student EMA 更新、停止梯度 提供较平稳的回归目标

给定 ztn+1z_{t_{n+1}},教师求解器近似走到 z~tn\tilde z_{t_n},然后最小化

L=E[d(fθ(ztn+1,tn+1,c,w),sg⁡ ⁣[fθ−(z~tn,tn,c,w)])].\mathcal L=\mathbb E\left[d\left(f_\theta(z_{t_{n+1}},t_{n+1},c,w),\operatorname{sg}\!\left[f_{\theta^-}(\tilde z_{t_n},t_n,c,w)\right]\right)\right].

cc 是条件,ww 表示引导强度;符号和 scale 约定随实现不同。教师的一次数值更新只近似对应连续 ODE 轨迹,不是精确解。

3.1 EMA 不等于防塌缩保证#

EMA 平滑目标参数,stop-gradient 截断目标端梯度;两者是不同操作。若只要求两个输出相等,那么常数 student 与相同常数 target 仍可令损失为零。

真正需要的锚点是边界条件,例如

fθ(x,ε)=x,f_\theta(x,\varepsilon)=x,

通常通过 skip/output 系数的参数化实现。常数函数无法对所有不同的 xx 满足这个边界。边界条件、轨迹监督和优化过程共同起作用,不能由 EMA 单独推出收敛。

3.2 推理时发生什么?#

一次前向预测近数据端结果;多步一致性采样可再次加噪到下一个较低噪声时间,再做预测。它不等同于把普通 DDIM 的步数直接设成 1。训练和部署可以使用 student 的不同权重版本,例如 EMA 权重,须以 checkpoint 和实现为准。

LCM 已蒸馏 classifier-free guided 教师;不能笼统写成“推理时仍必须跑 CFG 两个分支”。LCM-LoRA 则把蒸馏更新参数化为低秩适配器,便于复用同一兼容基座;与其他 LoRA 的组合效果仍需验证。

参考:Consistency Models、LCM、LCM-LoRA。

4. ADD:对抗学习与教师蒸馏#

Adversarial Diffusion Distillation 将对抗目标与扩散教师提供的蒸馏信号结合,用于少步生成。对抗项鼓励生成结果接近真实图像分布;教师项为学生提供预训练生成模型的知识。

它不是“LCM 的一致性损失再加一个 GAN”。不同蒸馏方法可以共享少步目标,却使用不同监督信号、判别器和训练流程。判别器也不是无误差的感知 oracle,可能带来训练不稳定或覆盖不足。

SDXL Turbo 的官方配置不使用额外 CFG 双分支前向,但不能将这归因成“GAN 在数学上禁止 CFG”,也不能据此推断所有对抗蒸馏模型都使用同一配置。

参考:Adversarial Diffusion Distillation。

5. Guidance Distillation:把双分支合并写入模型#

普通 CFG 常用两次条件预测合成

ϵ^cfg=ϵ^u+w(ϵ^c−ϵ^u).\hat\epsilon_{\rm cfg}=\hat\epsilon_u+w(\hat\epsilon_c-\hat\epsilon_u).

Guidance distillation 让学生学习这一引导结果,从而减少推理时的双分支计算。若训练覆盖多个 ww 并把它作为输入,推理时可在训练支持范围内调节;固定 guidance 蒸馏则不自动提供这种自由度。

模型例子 官方公开的信息 使用时注意
FLUX.1-dev Guidance distillation guidance_scale 是模型的 guidance 条件,不能等同于普通双分支 CFG
FLUX.1-schnell Latent adversarial diffusion distillation,1–4 步 官方示例 guidance_scale=0;不从名字或调用方式反推未公开训练细节

参考:FLUX.1-dev model card、FLUX.1-schnell model card。

6. 如何比较,而不是只比较步数#

  • 固定基座或说明基座差异,同时记录分辨率、scheduler、guidance、精度、硬件和 batch size。
  • 区分求解器步数、网络评估次数(NFE)与端到端延迟;高阶 solver 一步可能调用网络多次,CFG 也可能合并成加倍 batch 的一次调用。
  • 同时评估视觉质量、提示词遵循、样本多样性和任务成功率。更少步数不自动表示更高质量。
  • 检查 prediction type、时间步配置、VAE scaling 与 LoRA 基座是否匹配;不把少步 checkpoint 直接套入任意采样器。

蒸馏降低的是部署时的部分成本。是否值得采用,要连同蒸馏训练、维护和质量损失一起衡量。

相关阅读路线

理解生成模型 ↗