枢纽
输入模态vision

Consistency Models:把「去噪 1000 步」压成「去噪 1 步」

Yang Song, Prafulla Dhariwal, Mark Chen, Ilya Sutskever(OpenAI)。ICML 2023;arXiv:2303.01469v2, 2023-05。 foundation_models生成模型一步生成

🧠 一句话心智模型:扩散模型从噪声到图像,要走一条 ODE 轨迹,每步算一次网络 —— 慢。Consistency Model 的奇思妙想:直接学一个函数 $f$,把轨迹上任意一点映射回起点(干净图像)。这样推理时:从噪声出发,调用一次 $f$,就直接得到图像。一步出图,质量逼近上千步的扩散。

🎯 为什么重要:扩散模型的「慢」是它最后一块短板

扩散模型已经赢了图像/音频/视频生成,但有一个老大难:。生成一张图要 10~2000 次网络前向(NFE),而 GAN / VAE 只要 1 次。这让它进不了实时应用。Consistency Model 是 OpenAI 给出的系统性答案:

扩散模型:迭代去噪 x_T 噪声 x_0 干净图 10 ~ 2000 NFE Consistency Model:一步映射 x_T 噪声 f_θ(·, T) 一次网络前向 x_0 干净图 1 NFE(多步可选)
图 1(依论文 Fig.1/2 重绘):扩散要沿着 ODE 轨迹走 10~2000 步;Consistency Model 直接学「轨迹任一点 → 起点」的映射,一次前向出图。
核心矛盾:单步模型(GAN / VAE / Flow)快,但丢掉了扩散的两个红利——「算力换质量」「零样本编辑」(inpainting、上色、超分等)。Consistency Model 的目标:一步出图,但需要时还能多步换质量、还能做零样本编辑。鱼和熊掌兼得。

💡 核心思想:自洽性 —— 同一条轨迹上的点都映射到同一处

关键观察:扩散模型的 PF-ODE 给出一条从数据 $x_0$ 到噪声 $x_T$ 的确定轨迹 $\{x_t\}_{t\in[\epsilon, T]}$。论文定义一致性函数

$$f: (x_t, t) \mapsto x_\epsilon \quad \text{(轨迹起点)}$$

它必须满足自洽性同一条轨迹上的任意两点,输出相同

轨迹 A(同一个 x_0) x_ε x_t1 x_t2 x_T f(x_t1,t1) = f(x_t2,t2) = f(x_T,T) = x_ε (同轨迹 → 同输出,即「自洽性」) 轨迹 B(不同 x_0) 映射到另一个起点 x'_ε
图 2(依论文 Fig.2 重绘):一致性函数的作用——把同一条 ODE 轨迹上的所有点都「拽回」起点。训练目标就是让这个性质成立。

为了满足边界条件 $f(x_\epsilon, \epsilon) = x_\epsilon$,论文用跳跃连接参数化(和 EDM 的扩散模型架构很像):

$$f_\theta(x, t) = c_{\text{skip}}(t)\, x + c_{\text{out}}(t)\, F_\theta(x, t), \quad c_{\text{skip}}(\epsilon) = 1, \ c_{\text{out}}(\epsilon) = 0$$

🛠️ 怎么做:两种训练方式

方式需要预训练扩散?训练目标特点
① 一致性蒸馏 (CD)需要从 $\text{pdata}$ 取 $x$,加噪到 $x_{t_{n+1}}$;用数值 ODE 求解器(Euler/Heun)走一步得 $\hat{x}^\phi_{t_n}$;最小化 $d(f_\theta(x_{t_{n+1}}, t_{n+1}), f_{\theta^-}(\hat{x}^\phi_{t_n}, t_n))$把扩散模型的知识蒸馏成单步采样器;精度高,FID 最好
② 一致性训练 (CT)不需要从 $\text{pdata}$ 取 $x$,分别加噪到 $t_n$ 和 $t_{n+1}$(相邻);最小化两个输出的距离;用 EMA 目标网络 $f_{\theta^-}$ 提供稳定监督把 CM 当成独立生成模型家族训;首次摆脱「必须有扩散先验」
$$\mathcal{L}_{\text{CD}}(\theta, \theta^-; \phi) = \mathbb{E}\left[\lambda(t_n)\, d\!\left(f_\theta(x_{t_{n+1}}, t_{n+1}),\ f_{\theta^-}(\hat{x}^\phi_{t_n}, t_n)\right)\right]$$
关键工程选择(CD)最优值原因
距离函数 $d(\cdot, \cdot)$LPIPS输出是图像,LPIPS 比 L1/L2 更贴近人眼;Fig.3a 验证
ODE 求解器Heun(二阶)同 N 下,二阶比一阶 Euler 误差小(Theorem 1)
离散化步数 N18够大就饱和(Fig.3c)
CT 中的 N(·) 和 μ(·)渐进增长小 N → 快收敛但有偏;大 N → 慢但精度高;渐进调度两段都吃
🔮 直觉:为什么「多步采样」还能要回来?
单步出图难免粗糙,CM 设计了 多步采样算法(Algorithm 1):从 $x_T$ 出发用 $f$ 得到 $\hat{x}_0$ → 给 $\hat{x}_0$ 在 $t_n$ 加一点噪声 → 再用 $f$ 去噪 → 重复。每多一次「加噪-去噪」循环,质量就提升一点。这就是「用算力换质量」的回归——把扩散的优点拿了回来。

📊 关键结果:CIFAR-10 单步 FID 3.55(新 SOTA),ImageNet64 单步 6.20

数据集方法NFEFID ↓
CIFAR-10DDIM504.67
Knowledge Distillation(合成数据)19.36
Progressive Distillation (PD)18.34
CD(本文,蒸馏)13.55
CD(本文,两步)22.93
ImageNet 64×64PD115.39
DFNO(合成数据)18.35
CD16.20
CD24.70
LSUN Bedroom 256×256PD28.47
CD17.80
CD25.22
维度结论(PDF 溯源)
蒸馏效果CD 在所有数据集 / 所有步数上都优于 PD(progressive distillation),除了 Bedroom 单步 + L2 的一个 corner case(Fig.4)
独立训练CT 在无预训练扩散的情况下:CIFAR-10 单步 FID 8.70、两步 5.83,超过大多数单步 GAN(如 BigGAN 14.7、Diffusion GAN 14.6)和非对抗单步生成模型
vs StyleGAN2-ADACIFAR-10 上 CD 两步 2.93 已追平 StyleGAN2-ADA 的 2.92(GAN 的强项就是单步)
vs 扩散CD 两步 FID 2.93(CIFAR-10)已优于 DDPM 1000 步(3.17)和 DDIM 50 步(4.67)——少 25-500 倍算力
零样本编辑无需专门训练,CM 可做:图像去噪、样本插值、inpainting、上色、超分、笔触引导编辑(SDEdit 风格)—— 论文 §6.3 + Fig.6/8/10/13
关键洞察:CM 不是单纯的「扩散加速」——它的独立训练模式(CT)证明了:不需要预训练扩散、不需要对抗训练,单步生成模型也能达到 GAN 级质量。这是生成模型家族的一次重要扩容。

🌐 在领域中的位置

GAN / VAE / Normalizing Flow(单步,但难训 / 质量受限) 扩散模型(质量好,但 10-2000 步) Progressive Distillation(PD,2 的幂次递减) Consistency Model(单步,可多步,零样本编辑)⭐ Latent Consistency Model / Consistency Trajectory Model / Flow Matching

Consistency Model 是「生成模型加速」线的里程碑:它把扩散的多步迭代折成单步映射,同时保留了多步换质量和零样本编辑能力。后续工作(LCM、CTM、Rectified Flow、一致性 Policy)都沿着这条路。对机器人动作生成也有直接影响——Diffusion Policy 的多步去噪是延迟瓶颈,CM 思路被借去做了「一致性 Policy」(如 Consistency Policy)。

❓ 常见误区

Consistency Model 是扩散模型的一种吗?

两种身份:(1)作为蒸馏时,它是扩散模型的「压缩版」,把上千米步压成 1 步;(2)作为独立训练时(CT 模式),它和扩散模型没关系,是一类新的生成模型。论文 §1 明确说「a new family of generative models」。

它和 Progressive Distillation 有什么不同?

PD 是「2 的幂次」递减(1024 → 512 → 256 → ... → 1),蒸馏一次只能砍半;CM 直接学「轨迹任一点 → 起点」,一次训练就支持单步。论文 Fig.4 显示 CM 在同 NFE 下全面优于 PD。

单步生成会不会丢失多模态性?

不会。CM 是从 $x_T \sim \mathcal{N}(0, T^2 I)$ 出发的一次映射——不同的 $x_T$ 对应不同的 $x_0$,多模态性来自初始噪声的多样性,和扩散一样。

CT 真的不需要扩散预训练吗?

对,CT 直接从随机初始化训练。但 CT 的精度(CIFAR-10 单步 8.70)暂时不如 CD(3.55)——后者毕竟「抄」了扩散的答案。CT 证明了「独立生成模型」身份,CD 才是当下的实用模式。

它对机器人动作生成有用吗?

非常有用。Diffusion Policy 类方法的主要瓶颈就是去噪步数(实时性差)。Consistency Policy 等后续工作直接把 CM 思路搬到动作空间,把几十步去噪压到 1~4 步,让扩散 Policy 进入实时控制。