Consistency Models
整体判断
这篇论文的核心思路是把扩散模型从“逐步去噪的长链式采样”推进到“沿同一条 Probability Flow ODE 轨迹的一步回到数据端”。传统扩散模型通常依赖几十到上千步数值求解来从噪声恢复样本,一致性模型则训练一个函数,让轨迹上任意噪声水平的点都映射到同一个干净数据起点,从而把慢采样问题改写成轨迹一致性学习问题。
需要注意的是,论文中的 FID、SOTA、outperform 等性能表述应理解为论文报告的结果;这里没有额外复核所有数据集、指标定义、采样步数和协议是否完全可比。
论文的核心贡献
- 提出一致性模型这一生成模型范式: 论文定义一致性函数
f_theta(x_t, t),目标是把 Probability Flow ODE 轨迹上的任意点映射回该轨迹的数据端x_0。这区别于扩散模型逐步预测局部去噪方向的做法,核心价值是让单步生成在训练目标上变得自然,而不是依赖事后加速技巧。 - 保留单步和多步采样的兼容性: 一致性模型可以从高噪声状态一次映射到样本,也可以通过“加噪到中间时间点,再用模型映射回数据端”的多步过程提升质量。这样既保留快速生成,又保留扩散模型用更多计算换更好样本的弹性。
- 支持一致性蒸馏和独立一致性训练: 论文既可以从预训练扩散模型或 score model 蒸馏出一致性模型,也可以不依赖教师模型,从数据和扰动分布中直接训练。前者面向加速已有扩散模型,后者把一致性模型定位为独立的生成模型家族。
- 把零样本编辑能力带入快速采样框架: 论文展示了图像修复、上色、超分等逆问题可以通过一致性模型的采样过程处理,而不必为每个编辑任务重新训练专门模型。这一点继承了扩散模型处理约束生成的优势,同时减少了采样成本。
复杂 Pipeline 深度解析

图中元素对照解读
- 图中左端黑色“Data”和清晰狗图
(x_0, 0): 对应论文中的数据样本变量x_0;它在 pipeline 中的作用是作为 PF ODE 轨迹的起点,也是所有一致性映射要回到的目标。 - 图中顶部浅绿色水平箭头“Probability Flow ODE”: 对应论文中的确定性概率流 ODE 前向轨迹;它在 pipeline 中的作用是把数据端连续推向更高噪声水平,定义哪些状态属于同一条轨迹。
- 图中从左到右逐渐被噪声覆盖的狗图序列: 对应论文中的同一轨迹上不同时间点的状态;它在 pipeline 中的作用是直观展示
t增大时样本从可识别图像变成近似噪声的过程。 - 图中红框标出的中间狗图
(x_t, t): 对应论文中的中等噪声状态变量;它在 pipeline 中的作用是说明模型不只从终点采样,也要能把任意中间噪声状态映射回数据端。 - 图中右侧红框标出的高噪声狗图
(x_t', t'): 对应论文中的更大时间步状态变量;它在 pipeline 中的作用是强调不同噪声强度的输入仍应共享同一个预测起点。 - 图中最右端黑色“Noise”和红框噪声块
(x_T, T): 对应论文中的最大噪声状态或采样初态;它在 pipeline 中的作用是支持从纯噪声附近一步调用f_theta(x_T, T)生成样本。 - 图中下方红色弧形箭头和标签
f_theta(x_t,t)、f_theta(x_t',t')、f_theta(x_T,T): 对应论文中的 consistency function;它在 pipeline 中的作用是把轨迹上不同位置的输入直接送回左侧同一个数据端。 - 图中红色箭头都汇入左下方
(x_0, 0)附近的同一点: 对应论文中的 self-consistency 训练信号;它在 pipeline 中的作用是约束同一 PF ODE 轨迹上的不同输入得到一致输出,而不是各自执行独立的局部去噪。
论文:Yang Song, Prafulla Dhariwal, Mark Chen, Ilya Sutskever, Consistency Models, arXiv:2303.01469.
核心图选择为 Figure 1:Given a Probability Flow (PF) ODE that smoothly converts data to noise...。已提取的图像为 figures/page_001_figure1_consistency_overview.jpeg。
这张图不是完整网络结构图,而是论文最关键的框架图:上方绿色箭头表示 PF ODE 将数据连续推向噪声,下方红色箭头表示一致性模型把同一轨迹上的不同噪声状态直接映射回共同起点。
1. 数据到噪声的 PF ODE 轨迹
- 输入: 数据样本
x_0,图中左侧是清晰狗图。 - 操作: 沿连续时间
t通过 Probability Flow ODE 逐步增加噪声,使样本从数据分布平滑移动到近似高斯噪声分布。 - 输出: 同一条轨迹上的多个状态,如
x_t、x_t'、x_T。 - 作用: 这条确定性轨迹提供了“一致性”的参照系:轨迹上不同点虽然噪声强度不同,但应对应同一个数据起点。
2. 一致性映射函数
- 输入: 轨迹上的任意带噪状态及其时间标签,例如
(x_t, t)、(x_t', t')、(x_T, T)。 - 操作: 神经网络
f_theta直接预测该轨迹的数据端,而不是只预测下一小步去噪结果。 - 输出: 对同一条轨迹上的输入,模型输出应一致地落到
x_0。 - 作用: 这一步为单步或少步采样提供直接映射。训练目标要求相邻或同轨迹样本的输出相同,从而让模型学到“轨迹归属”,而不只是局部去噪方向。
3. 采样与编辑
- 输入: 纯噪声
x_T,或编辑任务中带约束的中间噪声状态。 - 操作: 单步采样时直接计算
f_theta(x_T, T);多步采样时可反复在中间时间点加噪并再次映射回数据端。 - 输出: 生成图像或满足约束的编辑结果。
- 作用: 单步路径解决扩散模型慢推理问题,多步路径保留质量-计算折中和逆问题编辑能力。
关键术语
- Probability Flow ODE: 连续时间扩散模型中的确定性轨迹。本文把它用作一致性学习的几何骨架,因为同一条轨迹上的所有点都应回到同一数据起点。
- Consistency Function: 要学习的映射函数
f_theta(x_t, t)。它的功能不是执行一步去噪,而是直接估计轨迹起点。 - Self-consistency: 同一 PF ODE 轨迹上不同时间点输入应给出相同输出。这是将串行去噪链压缩为快速生成器的关键约束。
- Boundary Condition: 模型在接近数据端的时间点应近似保持输入不变。它防止模型学到无意义常数输出,并把映射锚定在真实数据附近。
- Consistency Distillation / Consistency Training: 前者利用已有扩散/score 模型产生训练信号,后者不依赖教师模型直接训练一致性模型。两者分别服务于加速已有模型和建立独立生成模型。
为什么 Figure 1 是核心图
Figure 1 用一个清晰的数据流说明了整篇论文的逻辑:绿色 PF ODE 轨迹定义“同源”的噪声状态,红色 f_theta 箭头定义从任意噪声水平回到数据端的一致性映射。论文的单步生成、多步采样、蒸馏训练、独立训练和零样本编辑都围绕这张图中的同一个原则展开:不再沿扩散链一步步回退,而是学习轨迹级别的直接回归。