采样加速与蒸馏
一句话:扩散模型最大的工程痛点是反向采样要跑几十到上千步网络,加速的两条主线是「把反向过程当 ODE 用高阶求解器少步求解」和「把多步教师蒸馏成一步/少步学生」。 关键年份:DDIM (2020, arXiv:2010.02502)、DPM-Solver (2022, arXiv:2206.00927)、Progressive Distillation (2022, arXiv:2202.00512)、Consistency Models (2023, arXiv:2303.01469)、LCM (2023, arXiv:2310.04378)、ADD / SDXL-Turbo (2023, arXiv:2311.17042)。 前置阅读:扩散模型基础、架构演进与 Flow Matching、蒸馏
为什么慢,慢在哪里
标准 DDPM 的采样是一条马尔可夫链:从纯噪声
加速的核心观察是:反向过程本质上是在解一个常微分方程(probability flow ODE)。一旦把它看成数值积分问题,离散步数就不再需要等于训练时的噪声层数,可以用更聪明的积分格式大幅减少 NFE。沿着这个思路,业界形成了两条互补的技术路线:
两条路线的本质区别:求解器是训练无关(training-free)的,拿现成模型直接换采样器即可,质量接近原模型但步数有下限;蒸馏需要额外训练一个学生模型,能把步数压到个位数甚至 1 步,但要付出训练成本,且极少步时画质相对教师有所损失。
路线一:更快的求解器
DDIM —— 把采样确定化
DDIM(Denoising Diffusion Implicit Models)把 DDPM 的随机马尔可夫链重写为一个非马尔可夫的确定性过程。它引入参数
DPM-Solver —— 高阶 ODE 求解,10~20 步
DPM-Solver(Lu et al., 2022)把扩散 ODE 写成精确解的形式:解析地算出其中的线性部分,只把非线性的神经网络项留给数值积分。通过换元,反向 ODE 的解被化简成一个对网络输出的指数加权积分:
其中
求解器路线的边界很清楚:它逼近的是教师模型本身的 ODE 轨迹,质量上限就是原模型,但步数压到 4 步以下时离散误差会迅速放大、画质明显下降。要继续往极少步走,就得换到蒸馏路线。
路线二:蒸馏到极少步
Progressive Distillation —— 逐次折半
Progressive Distillation(Salimans & Ho, 2022)的思路很直接:训练一个学生网络,让它用一步复现教师两步的结果。把
Consistency Models —— 一步直接映射
Consistency Models(Song et al., 2023)提出了一个更优雅的目标:学一个一致性函数
训练时强制同一条轨迹上不同时刻的输出保持「自一致」(self-consistency)。一旦学成,从纯噪声
LCM —— 把一致性搬到潜空间,4~8 步
Latent Consistency Models(Luo et al., 2023)把一致性模型的思想搬到了 Latent Diffusion / Stable Diffusion 的潜空间(参见 Latent Diffusion 与 SD)。它直接预测增广 PF-ODE 的解,并把 classifier-free guidance 一并蒸馏进模型,因此推理时不再需要额外跑一遍无条件分支。一个 768×768 的 2~4 步 LCM,论文称仅需约 32 个 A100 GPU 小时即可从预训练模型蒸馏出来。LCM 通常在 4~8 步给出可用质量,是落地最广的少步方案之一。其衍生的 LCM-LoRA 把加速能力打包成一个 LoRA 模块,可即插即用地挂到不同 SD 底模上,极大降低了使用门槛。
ADD / SDXL-Turbo —— 对抗蒸馏,1~4 步
纯蒸馏在 1~2 步时容易出现模糊、细节丢失。Adversarial Diffusion Distillation(ADD,Sauer et al., 2023,即 SDXL-Turbo 背后的方法)把两种信号组合起来:一边用预训练大扩散模型作为教师提供**分数蒸馏(score distillation)**信号保住语义对齐,一边用 GAN 式对抗损失逼真度,让极少步输出也保持锐利。结果是 ADD 单步即超过此前的 GAN 和 LCM,4 步就能逼近 SDXL 的画质,并首次实现了基础模型上的单步实时图像合成。后续的 LADD(Latent Adversarial Diffusion Distillation,arXiv:2403.12015) 进一步把对抗蒸馏整体放到潜空间,是 SD3-Turbo 等的基础。
产品形态的 Turbo / Lightning / Hyper-SD 等少步模型在权重、许可与具体步数上各有差异,以官方发布为准。
步数—质量权衡与方法对比
少步采样的核心是用质量换速度:步数越少越快,但保真度、多样性、提示词遵从度都可能下降。求解器路线在 10~20 步几乎无损,再往下需要蒸馏;蒸馏路线能到 1~4 步,但极少步时多样性收窄、细节偶有牺牲。实践中常见组合是「蒸馏模型 + 高阶求解器」,把两条路线叠加。
| 方法 | 步数量级 | 是否需蒸馏/训练 | 质量是否无损 | 备注 |
|---|---|---|---|---|
| DDIM | 20~50 | 否 | 接近无损 | 确定性、可复现、可插值 |
| DPM-Solver(++) | 10~20 | 否 | 接近无损 | 高阶 ODE 求解,工具链默认 |
| Progressive Distillation | 1~8(折半迭代) | 是(多轮) | 极少步略损 | 逐次折半,训练成本高 |
| Consistency Models | 1~4 | 是(蒸馏或从头训练) | 1 步有损,多步可补 | 直接映射到轨迹起点 |
| LCM / LCM-LoRA | 4~8 | 是(蒸馏) | 轻度损失 | 潜空间、内置 CFG、可做 LoRA |
| ADD / SDXL-Turbo | 1~4 | 是(对抗蒸馏) | 1~2 步可见损失 | 分数蒸馏 + GAN,1 步实时 |
选型直觉:
- 想零成本提速且保质:直接换 DPM-Solver++,10~20 步。
- 想做实时/交互式生成:用 LCM / Turbo 类少步模型,4 步内出图。
- 想在自有底模上加速:优先 LCM-LoRA,挂载即用、迁移成本低。
- 极少步加速本质是推理侧优化,与 推理与部署 中的量化、批处理等手段可叠加。
参考文献
- Song et al. Denoising Diffusion Implicit Models (DDIM). arXiv:2010.02502, 2020.
- Lu et al. DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps. arXiv:2206.00927, 2022.
- Salimans & Ho. Progressive Distillation for Fast Sampling of Diffusion Models. arXiv:2202.00512, 2022.
- Song et al. Consistency Models. arXiv:2303.01469, 2023.
- Luo et al. Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference. arXiv:2310.04378, 2023.
- Sauer et al. Adversarial Diffusion Distillation (ADD / SDXL-Turbo). arXiv:2311.17042, 2023.
- Sauer et al. Fast High-Resolution Image Synthesis with Latent Adversarial Diffusion Distillation (LADD). arXiv:2403.12015, 2024.