扩散模型虽然生成质量优异,但其弯曲的随机轨迹需要大量采样步数,流匹配的诞生就是为了找到从噪声到数据的更直、更快的确定性路径。
Grathwohl等人提出FFJORD,将离散的正则化流推广为连续时间形式:用神经网络参数化速度场 $v_t(x)$,通过求解常微分方程 $dx/dt = v_t(x)$ 变换分布。这在理论上极为优雅,但训练时需要通过ODE求解器反向传播(伴随方法),计算代价高昂,难以扩展到高维图像或音频数据。FFJORD奠定了"用ODE做生成"的理论基础,但实用性受限。
Song等人在NeurIPS 2020提出Score-based SDE框架,将扩散模型和得分匹配统一在随机微分方程下。关键发现是:每个前向SDE都对应一个确定性的概率流ODE,两者生成相同的边际分布。这暗示了一个深刻的可能性——也许根本不需要随机性,确定性ODE路径就足够了。但该工作仍然依赖扩散过程定义的弯曲路径,未能找到最优路径。
Lipman、Chen等人(Meta AI)在ICLR 2023发表"Flow Matching for Generative Modeling",提出了改变范式的条件流匹配(CFM)训练目标。核心突破在于:无需在训练中求解任何ODE,只需对条件速度场做简单的均方误差回归。他们证明了一个关键定理——条件流匹配损失在期望意义下等价于不可计算的边际流匹配损失。这使得CNF的训练复杂度降至与扩散模型完全相同,同时路径可以自由选择为直线(最优传输路径)。几乎同时,Liu等人独立提出Rectified Flow,使用线性插值 $x_t=(1-t)x_0+tx_1$ 定义路径,并提出"reflow"迭代矫正技术进一步拉直路径。
Stability AI在Stable Diffusion 3中采用流匹配替代传统扩散,图像质量和采样效率均获提升。Meta的Voicebox(2023)率先将流匹配引入语音合成,在零样本TTS上取得突破性结果。随后字节跳动Seed-TTS、微软E2 TTS、CosyVoice等主流语音系统纷纷转向流匹配。在音乐生成领域,Stability Audio和后续工作也采用此框架。流匹配从理论创新迅速成为音频、图像乃至视频生成的事实标准。
如FlashTTS [31]所示,流匹配与蒸馏技术结合实现极低步数(1-4步)的高质量生成。PianoKontext [9]展示了流匹配在音乐表现力渲染中的应用。当前研究聚焦于一步生成的质量保持、离散数据上的流匹配扩展、以及与自回归模型的统一框架。
流匹配的核心是学习速度场 $v_\theta(x,t)$,定义从噪声 $p_0=\mathcal{N}(0,I)$ 到数据 $p_1$ 的ODE:$\frac{dx_t}{dt}=v_\theta(x_t,t),\; t\in[0,1]$。直接匹配边际速度场不可行,因为它需要知道所有数据点的贡献。条件流匹配(CFM)的突破在于:定义条件概率路径 $p_t(x|x_1)$,对于最优传输线性路径取 $x_t=(1-t)x_0+tx_1$,其条件速度场为常数 $u_t(x|x_1)=x_1-x_0$。训练损失为:$$\mathcal{L}_{\text{CFM}}=\mathbb{E}_{t\sim U[0,1],\,x_1\sim p_1,\,x_0\sim\mathcal{N}(0,I)}\|v_\theta(x_t,t)-(x_1-x_0)\|^2$$其中 $x_t=(1-t)x_0+tx_1$ 是线性插值点。Lipman等人的定理2证明 $\nabla_\theta\mathcal{L}_{\text{CFM}}=\nabla_\theta\mathcal{L}_{\text{FM}}$,即条件损失的梯度等于边际损失的梯度,因此优化条件损失等价于优化不可计算的边际损失。为什么速度目标是 $x_1-x_0$?因为线性路径上任意时刻的瞬时速度恒等于终点减起点,这是直线运动的本质特征。相比扩散模型的得分函数 $\nabla_x\log p_t(x)$(随 $t$ 剧烈变化),恒定速度目标使回归问题更加良态。推理时用Euler法采样:$x_{t+\Delta t}=x_t+\Delta t\cdot v_\theta(x_t,t)$,步长 $\Delta t=1/N$。路径越直,$N$ 可以越小——这是流匹配相比扩散在采样效率上的根本优势。
流匹配通过在训练时学习噪声到数据的直线速度场,在推理时沿该速度场做ODE积分来生成样本,整个过程无需随机噪声注入。
从数据集采样真实样本 $x_1$,从标准高斯采样噪声 $x_0$,构成配对 $(x_0,x_1)$。选择线性插值路径 $x_t=(1-t)x_0+tx_1$,对应欧氏空间中的最优传输路径。为什么选线性而非其他参数化?因为线性路径是两点间的测地线,速度场恒定(无曲率),神经网络只需学习一个与时间无关的方向场,学习难度最低。相比扩散模型中先加噪到纯高斯再沿弯曲路径去噪,线性路径的"信噪比"在时间轴上均匀变化,避免了扩散模型在 $t\to0$ 和 $t\to1$ 附近的数值不稳定。关键参数:$\sigma_{\min}$(路径终点残余噪声,通常 $10^{-5}$)控制路径是否严格到达数据点。
均匀采样时间 $t\sim U[0,1]$,计算插值点 $x_t$ 和目标速度 $u_t=x_1-x_0$,训练网络 $v_\theta(x_t,t)$ 最小化MSE损失。网络架构复用扩散模型的成熟设计——图像用DiT/U-Net,语音用Transformer或U-Net处理mel谱。时间 $t$ 通过正弦编码或自适应LayerNorm注入。为什么训练不需要ODE求解器?CFM定理保证对条件速度场的回归在梯度意义下等价于对边际速度场的回归,因此只需标准的前向-反向传播。这使得流匹配的训练代码与扩散模型几乎相同——只需将噪声预测目标 $\epsilon$ 替换为速度目标 $x_1-x_0$,将噪声调度替换为线性插值。实现细节:batch中每个样本独立采样 $t$,梯度累积与扩散训练完全一致。
推理时从 $x_0\sim\mathcal{N}(0,I)$ 出发,用数值ODE求解器沿速度场积分到 $t=1$。最简单的Euler法:x = torch.randn_like(target_shape) # x_0 for i in range(N): t = i / N x = x + (1/N) * model(x, t, condition) # Euler step(Midpoint、Heun、Dopri5)可用更少步数达到相同精度。为什么ODE而非SDE?确定性路径没有随机噪声注入,每一步都朝目标前进不会"走弯路"。实际中Euler法10-50步即可获得高质量结果,而扩散SDE采样器通常需50-1000步。对于语音生成,FlashTTS使用约8步流匹配采样即达到高自然度。关键权衡:步数 $N$ 越大精度越高但延迟越大,需根据应用场景选择。
为将步数压缩到1-4步,采用两类技术。第一类是Reflow迭代矫正:用训练好的模型生成大量ODE轨迹 $(x_0\to x_1)$,将轨迹端点作为新的配对数据重新训练模型。每轮reflow使路径更直,因为新配对的 $x_0$ 和 $x_1$ 已经被模型"对齐"过。2-3轮后路径接近完美直线,一步生成成为可能。第二类是一致性蒸馏:训练学生模型直接预测ODE轨迹终点,跳过中间步骤。FlashTTS [31]的X-pred均值流蒸馏属此类——教师模型提供多步轨迹作为监督,学生模型学习单步到达。为什么蒸馏对流匹配特别有效?因为原始路径已接近直线,学生只需学习微小曲率修正,而非扩散模型中的大幅路径矫正。
实际应用需要条件生成(文本→语音、文本→图像)。将条件 $c$(文本编码、说话人嵌入、乐谱等)注入速度场:$v_\theta(x_t,t,c)$。分类器自由引导(CFG)同样适用:$\tilde{v}=v_\theta(x_t,t,\varnothing)+w\cdot(v_\theta(x_t,t,c)-v_\theta(x_t,t,\varnothing))$,其中 $w$ 是引导强度。训练时以概率 $p_{uncond}$(通常10-20%)随机丢弃条件,使模型同时学习有条件和无条件速度场。PianoKontext [9]通过此机制将简洁的演奏上下文编码为条件,引导流匹配生成富有表现力的钢琴音频。Voicebox则用掩码条件实现语音编辑和风格迁移——将已知音频区域作为条件,让模型填充被掩码的区域。
流匹配已成为2024-2026年生成模型的主流范式。Stability AI的SD3用它生成图像,Meta的Voicebox/AudioBox用它生成语音和音效,字节Seed-TTS、微软E2 TTS、阿里CosyVoice均基于此框架。其训练简单性(与扩散等价)、采样高效性(步数少5-10倍)和理论优雅性(最优传输连接)使其在未来数年仍将是生成建模的核心框架。视频生成领域也在快速采用。
当前热点:(1) 1-2步生成的质量保持与多样性维持问题;(2) 离散数据(文本、代码)上的流匹配扩展(如Flow Matching on discrete state spaces);(3) 流匹配与自回归的统一框架探索;(4) 高分辨率长视频中的时空流匹配架构设计;(5) 最优传输耦合在高维空间的可扩展近似算法。