扩散与流匹配
第一部分沿着下一词元预测这条路线,考察模型如何为序列赋予概率。第二部分从另一种选择开始:先在数据与已知参考分布之间规定一条简单的扰动或传输路径,再学习如何沿这条路径返回数据。扩散(diffusion),也就是训练时加噪、生成时去噪的配方,是图像、音频和视频生成中的主要模型家族。流匹配(flow matching) 则直接训练连续的传输速度。两类方法在数学上有所重叠,但谁都不能普遍取代另一方,也不能普遍取代自回归。
真正改变的是串行依赖所在的位置。自回归模型必须等待前一个输出位置。扩散或流采样器可以同时更新当前状态中的所有位置,却要在多个噪声水平或求解器步骤上重复执行整张网络。每次网络评估仍要承担表示大小与模型架构带来的全部成本。只有同时考察质量和单步成本,减少采样步数才有意义。
选择因子分解,而不是选阵营
对于有序表示 ,其中 表示完整输出,自回归把概率写成
这里, 是第 个输出位置, 是此前的所有位置, 是模型表示的概率分布。这种因子分解让文本天然适合流式输出,也可以用序列结束符决定输出长度。图像和音频同样可以序列化为词元,问题并不在于它们完全没有顺序,而在于不存在一种序列化方式,始终都是空间或时间结构的最佳归纳偏置。
扩散与流模型先确定状态形状,再整体修改这个状态。因此,编辑、内容填补和全局协调更自然,但形状通常需要预先确定或由另一套机制预测。两种路线在运行方式上的差别如下:
| 属性 | 自回归模型 | 扩散或流模型 |
|---|---|---|
| 串行轴 | 输出位置 | 去噪步骤或求解器步骤 |
| 每个串行步骤的工作量 | 通常利用缓存历史生成一个新词元 | 对完整状态做一次网络评估 |
| 长度 | 持续生成,直到满足停止条件 | 在路径开始前或路径之外确定 |
| 修改方式 | 较早的输出通常保持不变 | 当前状态中的所有位置都可以改变 |
| 常见优势 | 流式输出、可变长度、词元似然 | 固定形状生成、编辑、内容填补 |
这些只是常见倾向,不是不可跨越的边界。分块与推测式方法会混合两种路线,而潜表示还会改变单个「位置」的实际成本。
构造离散扩散过程
Sohl-Dickstein 等人在 2015 年提出扩散概率模型:先逐步加噪,再学习逆转这一过程。其思路受到非平衡热力学启发 (Sohl-Dickstein et al. 2015)。常用的 去噪扩散概率模型(DDPM),也就是 Ho 等人在 2020 年提出的去噪扩散表述,采用一条预先规定的高斯马尔可夫链 (Ho et al. 2020):
这里, 是数据样本, 是第 步的扰动状态, 是固定的前向过程, 是第 步加入的方差, 是该步保留的比例, 是累计保留比例, 是单位协方差, 表示均值为 、协方差为 的高斯密度。调度含有超参数,但没有可学习参数。
高斯分布可以直接复合,因此无需逐步运行中间链,就能得到任意一步的边缘分布:
这里, 是新采样的标准高斯噪声。如果 接近零,终点边缘分布 就近似标准正态分布。对任意有限调度,它都不一定严格等于标准正态分布。
生成阶段需要学习逆向转移:
这里, 是参数为 的模型, 是逆向均值, 是固定或学习得到的逆向协方差。在常用的噪声预测参数化中,均值为
这里, 估计 中的噪声分量。Ho 等人先推导出一个变分目标,再采用实用的重加权版本,去掉随时间步变化的系数:
在这个期望中, 来自数据分布, 从训练步骤中采样, 是标准高斯噪声。该损失教会模型得到逆向转移所需的均值;逆向方差仍是另一项独立的设计选择。
下面的可运行示例去掉神经网络近似,只检查逆转过程本身。对于一维高斯数据,每个前向边缘分布和逆向条件分布都有解析形式。从精确的终点边缘分布出发,再依次应用这些逆向条件分布,就能恢复原始数据分布。
import numpy as np
rng = np.random.default_rng(0)
data_mean, data_variance = 3.0, 1.0
steps = 1000
beta = np.linspace(1e-4, 0.02, steps)
alpha = 1.0 - beta
alpha_bar = np.cumprod(alpha)
def marginal(alpha_bar_t):
"""计算高斯数据在 q(x_t) 下的均值与方差。"""
mean = np.sqrt(alpha_bar_t) * data_mean
variance = alpha_bar_t * data_variance + (1.0 - alpha_bar_t)
return mean, variance
# 从 q(x_T) 开始;对这条调度,它接近 N(0, 1)。
terminal_mean, terminal_variance = marginal(alpha_bar[-1])
x = rng.normal(terminal_mean, np.sqrt(terminal_variance), size=10_000)
for t in range(steps - 1, -1, -1):
previous_alpha_bar = alpha_bar[t - 1] if t > 0 else 1.0
previous_mean, previous_variance = marginal(previous_alpha_bar)
current_mean, current_variance = marginal(alpha_bar[t])
# 精确的高斯条件分布 q(x_{t-1} | x_t)。
gain = np.sqrt(alpha[t]) * previous_variance / current_variance
reverse_mean = previous_mean + gain * (x - current_mean)
reverse_variance = previous_variance - gain**2 * current_variance
x = reverse_mean + np.sqrt(max(reverse_variance, 0.0)) * rng.normal(size=x.shape)
print(f"终点信号比例:{alpha_bar[-1]:.6f}")
print(f"目标均值={data_mean:.2f},方差={data_variance:.2f}")
print(f"恢复均值={x.mean():.2f},方差={x.var():.2f}")
把调度与预测目标分开
噪声调度决定训练和采样把工作量分配到哪些信噪比上。Nichol 与 Dhariwal 在 和 的实验中发现,原始线性调度并不理想,因为后期步骤已经接近纯噪声。他们采用余弦调度,其中累计信号比例沿归一化的余弦平方变化 (Nichol and Dhariwal 2021):
这里, 是加噪总步数, 是步骤索引, 是论文采用的小偏移量, 把累计信号比例归一化为一。这是一种有实验记录的调度,而不是普遍最优设置。
网络要预测什么是另一项选择。令
这里, 是信号系数, 是噪声系数。模型可以预测 、,或方差保持路径中的目标
对于这条指定路径,这里的 包含同样的去噪信息。从 预测恢复 需要除以 ,在高噪声处会出现病态条件。从 预测恢复 需要除以 ,在低噪声处会出现病态条件。从 做转换时,系数始终有界,因此它适合渐进式蒸馏 (Salimans and Ho 2022)。这个 绑定于方差保持扩散路径的角度参数化;若不进行时间变量转换,它并不是后文流匹配所用的速度。
把去噪连接到分数、SDE 与 ODE
分数是对数密度对空间位置的导数。在噪声水平 上,定义
这里, 是带噪数据的边缘密度, 是状态空间中的一点, 是自然对数, 表示对 求导。噪声预测与分数预测只在总体最优解处完全一致:
这里, 是注入噪声在给定 后的条件均值,。训练后的网络只能近似这一关系,任意的 并不等于精确分数。去噪与分数的联系早于 DDPM (Vincent 2011),也是噪声条件分数网络配合退火 Langevin 动力学采样的基础 (Song and Ermon 2019)。
连续时间把常见构造放进同一个随机框架。前向 随机微分方程(SDE) 可以写成
这里, 是漂移项, 是标量扩散系数, 是无穷小时间增量, 是标准布朗运动。在 Song 等人采用的条件下,逆向过程为 (Anderson 1982; Song et al. 2021)
这里, 是从噪声向数据反向积分时间时的布朗运动。DDPM 的扰动过程收敛到方差保持 SDE,Langevin 动力学分数匹配所用的扰动过程则收敛到方差爆炸 SDE。一般的分数匹配是一种训练原理,本身并不是这两种离散化之一。
同一个精确分数还定义了确定性的概率流 常微分方程(ODE):
这里的符号与 SDE 中含义相同。在分数精确且满足正则性条件时,ODE 与 SDE 在每个单独时刻具有相同的边缘密度;二者并不共享单条随机轨迹或转移规律。使用学习得到的分数时,这种等价关系也只是近似成立。
2015 年的构造受到非平衡热力学启发。现代配方还依赖去噪分数匹配、逆向随机过程、数值 ODE 求解器和学习得到的神经网络参数化。物理学是方法谱系的一部分,却不能完整推导后来的每一种方法。第 3 章 进一步讨论这条边界。
把模型与采样器分开
一个部署中的扩散系统不能只用「采用扩散」来描述。至少要分别记录以下六项选择:
| 层 | 示例 | 改变什么 |
|---|---|---|
| 表示 | 像素、波形、自编码器潜张量 | 状态大小与信息瓶颈 |
| 骨干网络 | U-Net、Transformer | 每次评估的成本与感受野 |
| 训练目标 | 、、扩散 、分数 | 数值条件与损失加权 |
| 条件机制 | 类别标签、文本交叉注意力、引导 | 实际采样的条件分布 |
| 路径与调度 | 、、连续 | 训练和采样工作分配到何处 |
| 采样器 | 祖先采样、DDIM、ODE/SDE 求解器、蒸馏模型 | 网络评估次数、随机性与误差 |
潜空间扩散不在像素上运行去噪器,而是把状态缩小为预训练自编码器产生的低分辨率空间张量。编码器与最终解码器位于去噪链之外。交叉注意力可以注入文本、边界框或其他条件 (Rombach et al. 2022)。潜空间瓶颈能节省计算,也可能丢失细节,因此自编码器的重建误差也必须进入评测契约。
骨干网络的选择与表示选择彼此独立。U-Net 使用多分辨率卷积块。扩散 Transformer(DiT) 则用处理潜图块的 Transformer 取代 U-Net。在论文的类别条件 ImageNet 实验中,通过增加深度、宽度或图块数量来提高单次前向计算量,与更低的 FID 相关 (Peebles and Xie 2023)。这是同一模型族内部的受控证据,并不是普遍扩展律。
条件机制也会改变推断成本。无分类器引导(CFG) 训练一个模型,并在部分训练样本中用空输入替换条件;采样时再组合两次预测 (Ho and Salimans 2022):
这里, 是条件, 是训练时做条件丢弃所用的空条件, 与 分别是有条件和无条件噪声预测, 是引导强度。按这一约定, 返回普通的有条件预测,更大的值则沿远离无条件结果的方向外推。该方法不再需要独立分类器,但通常仍需在每个采样步骤计算有条件与无条件两次网络预测,无论两次计算是分开执行还是合并成一个批次。
采样器步数与网络函数评估次数(NFE)并不是同一个量。一阶方法每步可能调用一次去噪器,二阶方法则可能调用两次。DDIM 定义了与 DDPM 训练目标相同的非马尔可夫前向过程;在论文实验中,其确定性设置把实际采样时间缩短了 10 到 50 倍 (Song et al. 2021)。在连续极限且预测器最优时,经重新参数化后,它的 ODE 与概率流 ODE 一致。然而,有限步的粗粒度 DDIM 更新并不等同于在通常时间坐标上直接使用 Euler 法。DPM-Solver 则在对数信噪比坐标中构造高阶更新,并在所测模型上以约 10 到 20 NFE 得到较强样本 (Lu et al. 2022)。这些数字不能自动迁移到其他模型、分辨率或引导设置。
EDM 为一大类高斯扩散模型明确拆开了这些选择 (Karras et al. 2022)。它把输入、输出、跳连和噪声预处理,与连续噪声水平上的训练分布组合起来。其幂律采样网格为
这里, 是第 个噪声水平, 与 是有限端点, 是非零噪声水平的数量, 控制网格密度分布。论文在报告的设置中使用 ,随后再加入最后一步 。这些都是论文特定的设置。论文报告的 35 NFE 结果同样只属于其指定的基准配置,并不是 EDM 定义的一部分。
流匹配直接学习传输
流匹配从连续归一化流出发,而不是从逆向马尔可夫链出发。令一个 ODE 按如下方式移动样本:
这里, 是路径时间, 是当前状态, 是随时间变化的速度场。当一条足够正则的密度路径 满足连续性方程时,这个速度场就会传输该密度:
这里, 是时间导数, 是状态空间中的散度。该方程守恒概率质量,但它本身并不能唯一确定速度场。
边缘流匹配需要回归 的速度,而这个速度通常无法直接取得。条件流匹配(CFM)改为选择容易处理的条件路径 (Lipman et al. 2023):
这里,, 标识一次采样得到的路径条件数据, 是该条件路径上的一点, 是解析的条件速度, 是学习得到的边缘速度。在论文给出的正则性与可积条件下,CFM 目标与无法直接计算的边缘目标对 的梯度相同,但标量损失本身不必相等。
一条简单的成对线性路径可以把训练目标写得更具体:
这里, 是参考分布,通常取高斯分布; 是数据分布; 来自事先声明的耦合。如果没有另行构造耦合,常见做法是独立采样。对一组固定配对而言,目标 是常量;总体回归器则为
这里, 会平均所有能在时间 经过状态 的成对目标。因此,即使每条条件插值都是直线,边缘轨迹仍可能弯曲。这些训练点与目标都无需先求解 ODE,因此流匹配训练不依赖轨迹仿真;采样时仍要积分学习到的 ODE。
「最优传输」这个说法也需要限定范围。Lipman 等人研究的是条件高斯最优传输路径,这并不意味着独立采样得到的噪声与数据配对就是两个边缘分布之间的全局最优耦合。耦合、路径与求解器是三项彼此独立的选择。
拉直或压缩采样路径
修正流(rectified flow) 使用上面的成对线性目标,并可以执行重流:先积分学习到的模型,把每个参考样本与其生成终点重新配对,再在这些新配对上训练 (Liu et al. 2023)。重新配对并重训往往能拉直模型诱导的耦合,论文还证明凸传输成本不会增加。但它并不保证得到全局最优的数据耦合。只有学到的轨迹严格保持常速度时,一个 Euler 步才是精确的;经验上的笔直程度会让粗粒度积分更有用,却不会自动保证精确。
随机插值揭示了更广泛的共同构造 (Albergo and Vanden-Eijnden 2023; Albergo et al. 2025):
这里, 是满足端点条件的选定插值, 与 是端点随机变量, 是独立标准高斯噪声, 控制额外随机性,并在端点处为零。在适当的正则条件下,同一个插值既可以支持确定性 ODE,也可以支持一族 SDE。构造 SDE 还需要分数与选定的扩散系数,因此「统一」并不意味着每种算法都可以互换。
减少网络评估次数有三条不同路线:
| 路线 | 改变什么 | 代表方法 |
|---|---|---|
| 改进积分 | 保留训练好的模型;降低每次 NFE 的数值误差 | DDIM、DPM-Solver、EDM Heun 采样器 |
| 教师蒸馏 | 依据多步模型训练新学生 | 渐进式蒸馏、LCM、DMD、ADD |
| 直接优化少步目标 | 训练支持大步跳跃的一致性或区间目标 | 一致性训练、MeanFlow |
渐进式蒸馏反复训练学生模型,让一步学生复现两步确定性教师 (Salimans and Ho 2022)。潜一致性模型(LCM)把一致性蒸馏应用到带无分类器引导的潜空间扩散概率流 ODE,并以两到四步为目标 (Luo et al. 2023)。分布匹配蒸馏(DMD)结合近似分布匹配与回归项 (Yin et al. 2024),对抗扩散蒸馏(ADD)则把教师分数蒸馏与对抗损失结合起来,以一到四步为目标 (Sauer et al. 2024)。这些方法的目标与失效模式不能相互替代。
一致性模型学习一个函数,把同一条概率流 ODE 轨迹上的任意一点映射到相同的数据端边界,并在该边界满足恒等条件。它从设计上支持一步生成,也可以多走几步,以计算换质量;训练既可以蒸馏预训练扩散模型,也可以独立进行一致性训练 (Song et al. 2023)。MeanFlow 是较晚出现的无教师路线,它根据瞬时流场之间的关系学习区间平均速度 (Geng et al. 2025)。这并不是说平均速度与瞬时速度相等。
评测完整的生成契约
只看训练损失,无法比较两个部署后的生成系统。有效的评测需要固定提示词或类别分布、输出分辨率、样本数量与随机种子策略,再报告以下指标:
- 分布质量与覆盖: 报告 FID 或另一项明确声明的特征空间统计量,并同时提供覆盖率或多样性指标。特征编码器与样本数量也是结果的一部分。
- 条件正确性: 报告提示词对齐、类别准确率或任务特定约束;当自动代理指标不完整时,还要加入人类评测。
- 表示损失: 分开报告自编码器的重建质量与潜空间中的去噪质量。
- 效率: 报告求解器步数、NFE、实际延迟、吞吐量、峰值内存、批大小、硬件、数值精度,以及有条件与无条件引导是否合批。
- 稳定性: 报告不同随机种子和引导强度下的变化,以及畸形输出、饱和或模式丢失的失败率。
检查点只是可复现记录的一部分。还应保存自编码器及其缩放常数、预测参数化、训练噪声分布、损失加权、条件丢弃、采样器方程、时间或噪声网格、求解器容差、引导约定、输出形状与解码后处理。
常见症状往往指向不同层:
| 症状 | 首先比较什么 | 可能所在的层 |
|---|---|---|
| 增加 NFE 后样本改善 | 用细粒度参考对比粗粒度求解器 | 采样器或路径曲率 |
| 增加很多步骤后仍缺少细节 | 比较潜表示重建与输入 | 自编码器瓶颈 |
| 只有高引导强度才能对齐提示词,同时多样性坍缩 | 固定随机种子扫描引导强度 | 条件机制或 CFG |
| 训练损失下降,但样本仍然很差 | 固定评测套件并检查目标转换 | 目标加权或参数化 |
| 一步模型很清晰,却遗漏部分模式 | 对照教师评估精度与覆盖 | 蒸馏或对抗目标 |
| 报告步数很少,但延迟仍很高 | 分析 NFE 与每次评估成本 | 骨干网络、引导或运行时 |
把连续状态交给离散文本
文本改变了状态空间。D3PM 用类别转移矩阵取代高斯噪声,其中一种选择会把词元送入吸收态 [MASK] (Austin et al. 2021)。这把扩散与掩码式生成连接起来,但普通的固定掩码率语言模型并不会自动成为完整的扩散生成器。SEDD 学习离散状态概率之间的比值,并报告在论文所采用的评测设置中,与 GPT-2 规模的自回归模型相比具有竞争力 (Lou et al. 2024)。LLaDA 从头训练一个 8B 掩码扩散模型,并在选定的零样本与少样本任务上报告了广泛的竞争力;它与外部自回归模型在数据和评测上存在重要差异 (Nie et al. 2025)。
输出长度控制、似然界、缓存复用和迭代解掩码由 第 13 章 继续展开。下一章会详细讨论这些离散目标及其服务权衡,而不是把快速变化的语言模型文献压缩进本章的连续状态框架。
扩散与流匹配并不是两个边界分明的对立阵营。流匹配目标可以采用扩散概率路径,扩散采样也可以写成逆向 SDE 或概率流 ODE。直线条件路径不能保证学到的边缘轨迹也是直线,一步目标也不能保证达到多步教师的水平。陈述结论时必须同时说明路径、目标、采样器、NFE 与评测设置。
服务成本大致等于网络评估次数乘以单次评估成本,再加上自编码器与后处理开销。引导可能让每一步多一次预测,更大的潜空间网格会增加注意力或卷积工作量,高阶求解器也可能在每一步调用网络多次。因此,四步模型并不自动构成延迟结论;还必须固定骨干网络、NFE 核算方式、批大小、硬件、数值精度与输出形状。训练目标与服务系统最终在这份测量契约上相遇。
评论
登录后评论