跳转至

KAIST CS492D Lecture 10: Flow Matching 2

LaTeX 源码 · 备用 PDF · 观看视频

字段 内容
作者/整理 基于 Minhyuk Sung 授课内容整理
来源 Minhyuk Sung (KAIST)
日期 2025年秋季

KAIST CS492D Lecture 10: Flow Matching 2

引言:从 Flow Matching 1 到 Flow Matching 2

本讲是 KAIST CS492D(扩散模型与流模型)的第 10 讲,也是 Flow Matching 专题的第二部分。讲者 Minhyuk Sung 首先回顾了上一讲中引入的 Flow Matching 基本框架——流映射(Flow Map)、向量场(Vector Field)和概率路径(Probability Path)三大核心概念及其相互关系,然后在此基础上深入探讨以下关键问题:

  1. 扩散模型与流模型的数学等价关系:在何种条件下两者等价,如何互相转换?
  2. 速度场与分数函数的对应关系:velocity 与 score function 之间的精确数学表达式是什么?
  3. Rectified Flow:如何通过直线轨迹简化生成过程,又如何通过 Reflow 微调使轨迹更直?
  4. Optimal Transport 视角:随机配对 vs.\ 最优配对如何影响轨迹弯曲程度?
  5. 实际应用:Stable Diffusion 3(SD3)和 Flux 模型如何运用 Flow Matching 技术?

前置知识回顾

理解本讲需要以下来自上一讲(Lecture 9: Flow Matching 1)的前置概念:

  • 流映射(Flow Map) \(\psi_t\):从 \(t=0\)\(t\) 的确定性映射,\(\psi_0(\mathbf{x}) = \mathbf{x}\)
  • 向量场(Vector Field) \(u_t(\mathbf{x})\):流映射的时间导数,\(\frac{d\psi_t}{dt} = u_t(\psi_t(\mathbf{x}))\)
  • 概率路径(Probability Path) \(p_t\):随时间 \(t\) 变化的概率分布,满足 \(p_0 = p_{\text{ref}}\), \(p_1 = p_{\text{data}}\)
  • Fokker--Planck 方程:向量场与概率路径之间的联系方程
  • 条件流匹配(Conditional Flow Matching):将边际向量场分解为对条件向量场的期望

符号约定与时间域的变化

在 Flow Matching 的语境中,时间域与扩散模型有所不同:

  • 扩散模型:时间从 \(T\)(噪声端)到 \(0\)(数据端),生成是“逆过程”
  • 流模型:时间从 \(0\)(参考分布)到 \(1\)(数据分布),生成是“正向过程”

具体地:

  • \(\mathbf{x}_0 \sim p_0 = \mathcal{N}(\mathbf{0}, \mathbf{I})\):来自参考分布(标准高斯)的样本
  • \(\mathbf{x}_1 \sim p_1 = p_{\text{data}}\):来自数据分布的样本

容易混淆的符号

注意在 Flow Matching 中 \(\mathbf{x}_0\)噪声\(\mathbf{x}_1\)数据,这与 DDPM 中 \(\mathbf{x}_0\) 是数据、\(\mathbf{x}_T\) 是噪声的惯例恰好相反。此外,Lecture 9 中的 \(\mu_t, \sigma_t\) 函数与变分扩散模型中的 \(\alpha_t, \sigma_t\) 本质相同,只是由于时间域翻转,位置互换了。

条件流映射的一般形式

上一讲中引入了条件流映射(Conditional Flow Map)的线性高斯形式:

\[ \psi_t(\mathbf{x}_0 \mid \mathbf{x}_1) = \sigma_t \cdot \mathbf{x}_0 + \alpha_t \cdot \mathbf{x}_1 \]

其中:

  • \(\sigma_t, \alpha_t\) 是关于时间 \(t\) 的标量函数
  • 边界条件:\(\sigma_0 = 1, \alpha_0 = 0\)\(t=0\) 时得到纯噪声 \(\mathbf{x}_0\));\(\sigma_1 = 0, \alpha_1 = 1\)\(t=1\) 时得到数据 \(\mathbf{x}_1\)

对应的条件概率路径为高斯分布:

\[ p_t(\mathbf{x} \mid \mathbf{x}_1) = \mathcal{N}(\mathbf{x}; \alpha_t \mathbf{x}_1, \sigma_t^2 \mathbf{I}) \]

对条件流映射取时间导数,得到条件向量场:

\[ u_t(\mathbf{x} \mid \mathbf{x}_1) = \dot{\sigma}_t \cdot \mathbf{x}_0 + \dot{\alpha}_t \cdot \mathbf{x}_1 \]

本章小结

本节回顾了 Flow Matching 的基本设定,包括时间域约定、条件流映射的定义和条件向量场的推导。关键要点在于:流模型的时间从 \(0\)(噪声)到 \(1\)(数据),训练目标是学习一个神经网络来预测向量场(速度),这在概念上类似于扩散模型中预测噪声。

扩散模型与流模型的等价关系

本节是本讲的核心理论部分,讲者详细推导了扩散模型和流模型之间的精确数学等价关系。

从变分扩散模型出发

回忆变分扩散模型(Variational Diffusion Model, VDM)中,前向过程定义为:

\[ q(\mathbf{x}_t \mid \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_t; \alpha_t \mathbf{x}_0, \sigma_t^2 \mathbf{I}) \]

在 Flow Matching 的语境下,将这个前向过程重新解读为条件流映射:

\[ \psi_t(\mathbf{x}_0 \mid \mathbf{x}_1) = \sigma_t \cdot \mathbf{x}_0 + \alpha_t \cdot \mathbf{x}_1 \]

核心洞察:扩散模型是流模型的特殊情况

当条件流映射定义为上述线性高斯形式,且 \(\alpha_t, \sigma_t\) 函数与变分扩散模型中的调度函数完全一致时,扩散模型可以被视为流模型的一种特殊情况。换言之,流模型是扩散模型的推广。两者的区别仅在于:

  • 扩散模型:先定义概率路径(前向加噪过程),再推导出向量场和轨迹
  • 流模型:先定义条件流映射(轨迹),再推导出向量场和概率路径

Tweedie 公式的再现

讲者在此处引入了一个重要的计算工具——Tweedie 公式。给定中间数据点 \(\mathbf{x}_t = \sigma_t \mathbf{x}_0 + \alpha_t \mathbf{x}_1\),其中 \(\mathbf{x}_0 \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\), \(\mathbf{x}_1 \sim p_{\text{data}}\),我们可以计算 \(\mathbf{x}_1\) 的后验期望:

\[ \mathbb{E}[\mathbf{x}_1 \mid \mathbf{x}_t] = \frac{\mathbf{x}_t - \sigma_t \cdot \mathbb{E}[\mathbf{x}_0 \mid \mathbf{x}_t]}{\alpha_t} = \frac{\mathbf{x}_t + \sigma_t^2 \nabla_{\mathbf{x}_t} \log p_t(\mathbf{x}_t)}{\alpha_t} \]

其中:

  • \(\nabla_{\mathbf{x}_t} \log p_t(\mathbf{x}_t)\) 是分数函数(Score Function)
  • 这与 Lecture 5 中介绍的 Tweedie 公式完全一致,只是使用了 Flow Matching 的符号约定

Tweedie 公式的直觉

Tweedie 公式的核心思想是:给定一个被噪声污染的观测 \(\mathbf{x}_t\),原始信号 \(\mathbf{x}_1\) 的后验均值可以通过分数函数来计算。分数函数指向对数概率密度增长最快的方向,即“数据更密集”的方向。在高斯似然模型中,这等价于从当前位置向后验均值方向移动。

速度场与分数函数的关系

这是本讲最重要的推导之一。从条件向量场出发:

\[ u_t(\mathbf{x} \mid \mathbf{x}_1) = \dot{\sigma}_t \cdot \mathbf{x}_0 + \dot{\alpha}_t \cdot \mathbf{x}_1 \]

\(\mathbf{x}_0\)\(\mathbf{x}_t\)\(\mathbf{x}_1\) 表示:\(\mathbf{x}_0 = \frac{\mathbf{x}_t - \alpha_t \mathbf{x}_1}{\sigma_t}\),代入得到:

\[ u_t(\mathbf{x}_t \mid \mathbf{x}_1) = \frac{\dot{\sigma}_t}{\sigma_t}(\mathbf{x}_t - \alpha_t \mathbf{x}_1) + \dot{\alpha}_t \mathbf{x}_1 \]
\[ = \frac{\dot{\sigma}_t}{\sigma_t} \mathbf{x}_t + \left(\dot{\alpha}_t - \frac{\dot{\sigma}_t \alpha_t}{\sigma_t}\right) \mathbf{x}_1 \]

\(\mathbf{x}_1\) 取期望(边际化),并利用 Tweedie 公式,得到边际向量场:

速度场与分数函数的等价公式

\[ u_t(\mathbf{x}_t) = \frac{\dot{\sigma}_t}{\sigma_t} \mathbf{x}_t + \left(\dot{\alpha}_t - \frac{\dot{\sigma}_t \alpha_t}{\sigma_t}\right) \mathbb{E}[\mathbf{x}_1 \mid \mathbf{x}_t] \]

将 Tweedie 公式代入 \(\mathbb{E}[\mathbf{x}_1 \mid \mathbf{x}_t]\),可以建立速度场分数函数之间的等价关系:

\[ u_t(\mathbf{x}_t) = \frac{\dot{\sigma}_t}{\sigma_t} \mathbf{x}_t + \left(\dot{\alpha}_t - \frac{\dot{\sigma}_t \alpha_t}{\sigma_t}\right) \cdot \frac{\mathbf{x}_t + \sigma_t^2 \nabla_{\mathbf{x}_t} \log p_t(\mathbf{x}_t)}{\alpha_t} \]

这意味着:给定任意中间数据点 \(\mathbf{x}_t\) 和时间 \(t\),只要知道分数函数就能计算速度场,反之亦然。

速度场与噪声预测的关系

利用分数函数与噪声预测之间的已知关系 \(\nabla_{\mathbf{x}_t} \log p_t(\mathbf{x}_t) = -\frac{\boldsymbol{\epsilon}}{\sigma_t}\),可以进一步建立速度场与噪声预测网络之间的等价关系:

\[ u_t(\mathbf{x}_t) = \frac{\dot{\alpha}_t}{\alpha_t} \mathbf{x}_t - \left(\dot{\alpha}_t \frac{\sigma_t}{\alpha_t} - \dot{\sigma}_t\right) \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) \]

其中 \(\boldsymbol{\epsilon}_\theta\) 是扩散模型中训练好的噪声预测网络。

速度预测 vs.\ 噪声预测:不只是换个输出头

虽然速度场和噪声场在数学上可以精确互转,但在训练时选择预测哪个量会影响梯度的数值行为。近年来的实践表明,直接训练速度预测(v-prediction)在某些调度下比噪声预测(\(\epsilon\)-prediction)具有更好的数值稳定性,特别是在 \(t\) 接近端点时。这也是 SD3 和 Flux 选择 v-prediction 的原因之一。

与 Probability Flow ODE 的一致性

讲者进一步指出,从 Flow Matching 推导出的向量场与从 SDE 框架推导出的 Probability Flow ODE(PF-ODE)是完全一致的。回忆 PF-ODE 的一般形式:

\[ d\mathbf{x} = \left[f(\mathbf{x}, t) - \frac{1}{2}g(t)^2 \nabla_\mathbf{x} \log p_t(\mathbf{x})\right] dt \]

其中 \(f(\mathbf{x}, t)\)\(g(t)\) 分别是 SDE 的漂移项和扩散系数,它们与 \(\alpha_t, \sigma_t\) 的关系为:

\[ f(\mathbf{x}, t) = \frac{\dot{\alpha}_t}{\alpha_t} \mathbf{x}, \quad g(t)^2 = \frac{d\sigma_t^2}{dt} - 2\frac{\dot{\alpha}_t}{\alpha_t}\sigma_t^2 \]

将这些代入 PF-ODE,可以验证其结果与 Flow Matching 推导的向量场完全相同

三种等价视角的统一

到此为止,我们建立了以下三种视角的完全等价关系(在线性高斯条件路径下):

  1. 扩散模型视角:学习分数函数 \(\nabla_\mathbf{x} \log p_t(\mathbf{x})\) 或噪声 \(\boldsymbol{\epsilon}\)
  2. Flow Matching 视角:学习向量场/速度 \(u_t(\mathbf{x})\)
  3. PF-ODE 视角:通过 SDE 到 ODE 的转换获得确定性采样路径

三者在数学上可精确互转,区别在于训练时预测哪个量、以及采样时使用哪种求解策略。

本章小结

本节建立了扩散模型与流模型之间的精确数学等价关系。核心结论是:在线性高斯条件流映射下,扩散模型是流模型的特殊情况。速度场、分数函数、噪声预测三者可以自由互转。这一等价关系不仅具有理论意义,更在实际中意味着:一个预训练好的扩散模型可以直接被“重新解读”为流模型来使用。

流模型的优势与推广能力

在建立了等价关系之后,讲者转向讨论流模型相对于扩散模型的独特优势——即流模型在哪些方面真正“超越”了扩散模型。

非线性条件流映射

扩散模型本质上使用的是线性高斯形式的条件路径。而 Flow Matching 框架允许定义任意的条件流映射,不限于线性形式:

  • 可以尝试非线性的 \(\psi_t(\mathbf{x}_0 \mid \mathbf{x}_1)\),例如加入余弦、sigmoid 等非线性变换
  • 实验表明,虽然非线性流映射目前并没有显著超越线性形式,但框架本身的灵活性为未来探索提供了空间

任意参考分布

这是流模型最重要的推广之一。扩散模型要求参考分布必须是标准高斯分布 \(\mathcal{N}(\mathbf{0}, \mathbf{I})\),因为整个理论(前向扩散过程)建立在高斯噪声的基础上。而流模型可以使用任意参考分布:

分布到分布的映射

Flow Matching 允许学习从任意源分布到任意目标分布的映射。这不仅包括:

  • 标准高斯 \(\to\) 数据分布(经典生成任务)

还包括:

  • 数据分布 A \(\to\) 数据分布 B(风格迁移、域转换)
  • 低分辨率分布 \(\to\) 高分辨率分布(超分辨率)
  • 任意复杂分布之间的转换

这种灵活性是扩散模型框架所不具备的。

ODE vs.\ SDE 的出发点

两种建模哲学

扩散模型和流模型的另一个根本区别在于建模的出发点

  • 扩散模型:从随机微分方程(SDE)出发,将前向扩散定义为逐步加高斯噪声的随机过程;然后发现等价的确定性 ODE 也能给出相同的边际分布
  • 流模型:直接从常微分方程(ODE)出发,定义从源分布到目标分布的确定性映射,无需引入随机性

流模型的出发点更简洁,避免了 SDE 到 ODE 转换的复杂推导。

本章小结

流模型在以下方面推广了扩散模型:(1) 条件流映射不限于线性形式;(2) 参考分布不限于标准高斯;(3) 直接从 ODE 出发,概念更简洁。这些推广为更灵活的生成模型设计提供了理论基础。

Rectified Flow 与直线轨迹

本节是本讲在应用层面最重要的部分,讲者详细介绍了 Rectified Flow(矫正流)的思想、训练方法以及通过 Reflow 使轨迹变直的技术。

Rectified Flow 的定义

Rectified Flow 是 Flow Matching 的一种特殊情况,其条件流映射定义为 \(\mathbf{x}_0\)\(\mathbf{x}_1\) 之间的线性插值

\[ \psi_t(\mathbf{x}_0 \mid \mathbf{x}_1) = (1 - t)\, \mathbf{x}_0 + t\, \mathbf{x}_1 \]

对应的条件向量场(速度)极为简洁:

\[ u_t(\mathbf{x}_t \mid \mathbf{x}_0, \mathbf{x}_1) = \mathbf{x}_1 - \mathbf{x}_0 \]

即:条件速度恒定,方向始终指向从 \(\mathbf{x}_0\)\(\mathbf{x}_1\) 的直线方向。

Rectified Flow 的训练流程

Rectified Flow 的训练过程极其简洁:

  1. 从数据分布采样 \(\mathbf{x}_1 \sim p_{\text{data}}\)
  2. 从参考分布采样 \(\mathbf{x}_0 \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\)
  3. 均匀采样时间 \(t \sim \mathcal{U}(0, 1)\)
  4. 计算中间点 \(\mathbf{x}_t = (1-t)\mathbf{x}_0 + t\mathbf{x}_1\)
  5. 计算目标速度 \(v^* = \mathbf{x}_1 - \mathbf{x}_0\)
  6. 最小化 \(\mathcal{L} = \| v_\theta(\mathbf{x}_t, t) - v^* \|^2\)

条件轨迹 vs.\ 边际轨迹

这是理解 Rectified Flow 局限性的关键。虽然每一对 \((\mathbf{x}_0, \mathbf{x}_1)\)条件轨迹是严格直线,但训练后模型输出的边际向量场产生的轨迹通常不是直线。

条件直线不等于边际直线

考虑一个二维例子:源分布有两个高斯团,目标分布也有两个高斯团。每对 \((\mathbf{x}_0, \mathbf{x}_1)\) 之间的条件轨迹确实是直线,但由于 \(\mathbf{x}_0\)\(\mathbf{x}_1\)独立随机配对的,在某些中间点 \(\mathbf{x}_t\),条件速度可能指向截然不同的方向(向上或向下)。训练后神经网络输出的是这些条件速度的期望,结果可能既不向上也不向下,而是指向两者的平均方向。因此边际轨迹会发生弯曲。

弯曲轨迹的后果:如果边际轨迹弯曲,在求解 ODE 时就需要足够多的时间步才能准确跟踪轨迹。步数越少,离散化误差越大,生成质量越差。理想情况下,如果所有边际轨迹都是直线,那么只需一步就能从 \(\mathbf{x}_0\) 直接到达 \(\mathbf{x}_1\)

Reflow:通过微调使轨迹变直

为了使边际轨迹更接近直线,Liu et al.\ (2023) 提出了 Reflow(重流化)技术:

  1. 第一阶段:正常训练一个 Rectified Flow 模型(1-Rectified Flow)
  2. 生成配对数据:使用训练好的模型,从 \(\mathbf{x}_0 \sim \mathcal{N}(\mathbf{0}, \mathbf{I})\) 出发,通过完整的 ODE 求解生成 \(\mathbf{x}_1\),记录 \((\mathbf{x}_0, \mathbf{x}_1)\) 配对
  3. 第二阶段:用这些配对数据重新训练模型(2-Rectified Flow)
  4. 可以继续迭代:用 2-Rectified Flow 生成新配对,训练 3-Rectified Flow,以此类推

Reflow 为什么有效?

Reflow 之所以能使轨迹变直,核心直觉是:

  • 在第一阶段,\(\mathbf{x}_0\)\(\mathbf{x}_1\)独立采样的随机配对,没有对应关系
  • 经过第一阶段训练后,模型已经学到了一种从 \(\mathbf{x}_0\)\(\mathbf{x}_1\) 的(弯曲的)映射
  • 在 Reflow 阶段,\((\mathbf{x}_0, \mathbf{x}_1)\) 配对不再是随机的,而是由模型确定的确定性映射产生的。这些配对之间已经存在合理的对应关系
  • 用这些“有意义的配对”重新训练,轨迹的交叉和冲突大大减少,边际轨迹自然变得更直

实验表明:

  • 1-Rectified Flow:边际轨迹明显弯曲
  • 2-Rectified Flow:轨迹显著变直
  • 3-Rectified Flow:轨迹几乎是直线

直线轨迹与少步生成

直线轨迹的直接好处是可以用极少的 ODE 求解步数完成生成:

  • 如果轨迹是完美直线,从起点 \(\mathbf{x}_0\) 预测一次速度 \(v_\theta(\mathbf{x}_0, 0)\),沿该方向走到终点即可——这是单步生成
  • 即使轨迹接近直线但不完美,2--4 步的 Euler 求解也能获得高质量结果
  • 对比:标准扩散模型通常需要 20--100 步才能获得同等质量

从 GAN 到扩散再到单步流模型

讲者指出了生成模型发展的有趣循环:

  • GAN/VAE 时代:单步生成,速度快但质量/多样性受限
  • 扩散模型时代:多步迭代,质量大幅提升但速度牺牲
  • Rectified Flow + Reflow:通过微调回到单步/少步生成,同时保持高质量

这是一种“螺旋式上升”的发展路径。

本章小结

Rectified Flow 通过线性插值定义条件流映射,使训练极其简洁。然而随机配对导致边际轨迹弯曲,需要多步 ODE 求解。Reflow 技术通过使用模型自身生成的配对数据进行微调,可以有效地将边际轨迹“拉直”,从而实现少步甚至单步生成。

Optimal Transport 视角

轨迹弯曲的根本原因在于 \(\mathbf{x}_0\)\(\mathbf{x}_1\)配对方式。本节从 Optimal Transport(最优传输)的视角来理解这一问题。

随机配对 vs.\ 最优配对

在标准 Flow Matching 训练中,\(\mathbf{x}_0\)\(\mathbf{x}_1\)独立采样的:

\[ \mathbf{x}_0 \sim p_0, \quad \mathbf{x}_1 \sim p_1, \quad \text{两者独立} \]

这意味着一个噪声样本 \(\mathbf{x}_0\) 可能被“分配”到任意一个数据样本 \(\mathbf{x}_1\),没有空间结构上的偏好。

最优传输(Optimal Transport)的基本思想

最优传输问题关注的是:如何找到从分布 \(p_0\) 到分布 \(p_1\) 的最“经济”的传输方案?具体地,对于 \(L_2\) 代价(又称 Wasserstein-2 距离),最优传输方案最小化:

\[ W_2^2(p_0, p_1) = \inf_{\pi \in \Pi(p_0, p_1)} \int \|\mathbf{x}_0 - \mathbf{x}_1\|^2 \, d\pi(\mathbf{x}_0, \mathbf{x}_1) \]

其中 \(\Pi(p_0, p_1)\) 是所有耦合(联合分布)的集合,其边际分别为 \(p_0\)\(p_1\)

\medskip 直觉:最优传输倾向于将“近处”的点配对,避免长距离搬运,从而最小化总搬运代价。

OT 配对对轨迹直度的影响

如果我们用最优传输方案来配对 \(\mathbf{x}_0\)\(\mathbf{x}_1\),而不是随机配对,那么:

  • 配对更“合理”:附近的噪声点倾向于映射到附近的数据点
  • 不同配对之间的条件轨迹交叉更少
  • 边际向量场的冲突更少,边际轨迹自然更直

OT 配对的计算代价

尽管 OT 配对在理论上很有吸引力,但精确计算 Optimal Transport 方案的复杂度很高。对于 \(n\) 个样本,经典算法的复杂度为 \(O(n^3)\),这在大规模训练中不太实际。因此,实际中通常采用近似方法,例如在 mini-batch 内计算 OT(Mini-batch OT),或者使用 Reflow 作为替代方案——Reflow 可以看作是一种“隐式的” OT 配对优化。

Reflow 与 OT 的关系

Reflow 和 Optimal Transport 之间有深刻的联系:

  • Reflow 通过迭代微调,隐式地优化了 \(\mathbf{x}_0 \to \mathbf{x}_1\) 的配对方案
  • 每一轮 Reflow 都使配对更接近 OT 方案——因为模型学到的映射倾向于走“最短路径”
  • 理论上,无限次 Reflow 迭代的极限就是 OT 映射(在某些正则性条件下)

从传输代价看轨迹弯曲

轨迹弯曲的本质是传输代价过高。当远处的点被配对在一起时,连接它们的直线会穿越中间区域,与其他配对的直线交叉。交叉导致边际向量场不一致(同一点处有多个方向的速度),网络只能学习期望(平均)速度,结果就是弯曲的轨迹。OT 配对通过最小化传输代价来减少交叉,Reflow 则通过迭代隐式实现类似效果。

本章小结

Optimal Transport 提供了理解轨迹弯曲问题的理论框架。随机配对导致高传输代价和轨迹交叉,OT 配对可以缓解这一问题但计算代价高。Reflow 提供了一种实用的替代方案,通过迭代微调隐式优化配对。

实际应用:Stable Diffusion 3 与 Flux

本节讲者简要介绍了 Flow Matching 技术在当前最先进的图像和视频生成模型中的应用。

SD3 与 Flux 的流模型基础

讲者明确指出,许多当前最先进的生成模型已经从扩散模型转向了流模型:

  • Stable Diffusion 3(SD3):虽然名字中有“diffusion”,但实际上使用的是 Flow Matching 训练,网络预测的是速度(velocity)而非噪声
  • Flux:Black Forest Labs 开发的模型,同样基于 Rectified Flow 技术

SD3 的关键设计选择

Stable Diffusion 3 的核心技术决策包括:

  • Rectified Flow 训练:使用线性插值条件流映射,网络输出为速度 \(v_\theta(\mathbf{x}_t, t)\)
  • MM-DiT 架构:采用 Multimodal Diffusion Transformer 作为骨干网络
  • 直线轨迹目标:通过 Reflow 等技术追求更直的生成轨迹,减少采样步数
  • 速度预测(v-prediction):而非噪声预测(\(\epsilon\)-prediction),在某些噪声水平下提供更好的数值稳定性

Flux 模型

讲者提到,在课程第一讲中就让学生使用 Flux 模型生成图像。Flux 的一个关键变体是 Flux.1-schnell,它使用了 Rectified Flow 加 Reflow 的技术来实现单步少步高质量图像生成。

Consistency Model vs.\ Rectified Flow:加速生成的两条技术路线

在加速扩散/流模型的采样方面,目前存在两条主要的竞争路线:

  • Consistency Model(一致性模型):通过 Consistency Distillation (CD) 或 Consistency Training (CT) 学习 ODE 轨迹上的“快捷映射”,直接从任意中间点跳到终点。Lecture 8/9 中讨论过
  • Rectified Flow + Reflow:通过使轨迹本身变直来减少所需步数。本讲的主题

实验比较显示:

  • Consistency Model 在 1--2 步生成时,ImageNet 64\(\times\)64 上 FID 约 3--4
  • 2-Rectified Flow 在 1--2 步生成时,也能达到类似的 FID

两种方法各有优劣,目前仍是活跃的研究方向。

本章小结

Flow Matching,特别是 Rectified Flow 变体,已经成为当前最先进图像生成模型(SD3、Flux)的基础技术。其核心优势在于训练简洁、轨迹可控、少步生成成为可能。

训练与推理的全流程对比

为了帮助读者建立完整的理解,本节以表格形式对比扩散模型和流模型在训练与推理各环节的差异。

训练阶段对比

环节 扩散模型 流模型(Rectified Flow)
时间域 \(t 0, …, T\)\([0, T]\) \(t [0, 1]\)
前向过程 \(x_t = √α_t\,x_0 + √1-α_t\,\) \(x_t = (1-t)x_0 + tx_1\)
预测目标 噪声 或分数 $ p_t$ 速度 \(v = x_1 - x_0\)
训练损失 \(\|_θ(x_t,t) - \|^2\) \(\|v_θ(x_t,t) - (x_1-x_0)\|^2\)
数据需求 仅需 \(x_0 ≈ p_data\) 需要 \(x_0 ≈ p_0\)\(x_1 ≈ p_1\)
扩散模型 vs.\ 流模型:训练阶段对比

推理阶段对比

环节 扩散模型 流模型
起点 \(x_T ≈ N(0,I)\) \(x_0 ≈ N(0,I)\)
求解方式 SDE 或 PF-ODE ODE
每步更新 \(x_t-1 = x_t + f(x_t,t) t\) \(x_t+ t = x_t + v_θ(x_t,t) t\)
典型步数 20–100 步 1–10 步(Reflow 后)
高级求解器 DPM-Solver 等 Euler / Midpoint 即可
扩散模型 vs.\ 流模型:推理阶段对比

本章小结

流模型在训练和推理两个阶段都提供了更简洁的流程。特别值得注意的是,Rectified Flow 的推理阶段在 Reflow 后可以用极少步数完成,这是其在实际部署中的最大优势。

课程知识体系总览

讲者在课程结尾回顾了整个课程到目前为止的知识发展脉络。

技术演进路径

从课程开始到第 10 讲,讲者构建了以下完整的技术脉络:

  1. VAE/GAN(Lecture 1--2):单步生成模型,质量和多样性受限
  2. DDPM(Lecture 3--4):引入多步迭代去噪,大幅提升生成质量
  3. DDIM(Lecture 5--6):DDPM 的确定性采样变体,支持跳步
  4. SDE/ODE(Lecture 7):连续时间框架,统一视角
  5. DPM-Solver(Lecture 8):利用 ODE 结构加速采样
  6. Consistency Model(Lecture 9):学习快捷映射实现少步生成
  7. Flow Matching(Lecture 9--10):更一般的框架,Rectified Flow + Reflow 实现直线轨迹和单步生成

Flow Matching 不是扩散模型的“替代品”

虽然本讲强调了流模型的优势,但需要注意:

  • 扩散模型和流模型在数学上是等价的(在线性高斯条件路径下)
  • 已训练的扩散模型可以被直接转换为流模型使用
  • 选择哪种框架更多取决于实际考量:训练稳定性、采样效率、代码复杂度等
  • 当前的“最佳实践”是使用 Flow Matching 框架 + Rectified Flow 训练 + Reflow 微调

后续课程预告

讲者预告了接下来三周的课程内容:

  • 下一周:Inference-time Guidance(推理时引导),如何在不重新训练的前提下注入用户偏好
  • 之后:Discrete Diffusion Models(离散数据的扩散模型),将扩散/流的思想拓展到非连续数据(如文本)

本章小结

从 GAN 到扩散模型再到流模型,生成模型领域经历了从单步到多步再到少步的演进。Flow Matching 提供了一个统一且更灵活的框架,既能理解扩散模型的已有成果,又能为未来的改进提供空间。

总结与延伸

核心要点回顾

本讲(Flow Matching 2)的核心贡献在于建立了扩散模型与流模型之间的完整数学桥梁,并展示了如何利用这一桥梁来设计更高效的生成模型。主要结论包括:

  1. 数学等价:在线性高斯条件路径下,扩散模型是流模型的特殊情况。速度场 \(u_t\)、分数函数 \(\nabla \log p_t\)、噪声预测 \(\boldsymbol{\epsilon}_\theta\) 三者可以精确互转
  2. 三种视角统一:SDE(扩散)、PF-ODE(概率流)、Flow ODE(流匹配)在数学上完全一致
  3. Rectified Flow:线性插值定义条件轨迹,训练目标为速度预测,形式极其简洁
  4. 轨迹弯曲问题:随机配对导致条件轨迹交叉,边际轨迹弯曲,需要多步 ODE 求解
  5. Reflow 微调:通过使用模型自身生成的配对数据重新训练,可有效将轨迹拉直,实现少步生成
  6. Optimal Transport 联系:OT 配对可减少轨迹交叉,Reflow 隐式逼近 OT 映射
  7. 实际影响:SD3、Flux 等当前最先进模型已采用 Flow Matching / Rectified Flow 作为核心技术

拓展阅读

  • Lipman, Y., et al. Flow Matching for Generative Modeling. ICLR 2023. { Flow Matching 的奠基论文}
  • Liu, X., Gong, C., & Liu, Q. Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow. ICLR 2023. { Rectified Flow 和 Reflow 的原始论文}
  • Esser, P., et al. Scaling Rectified Flow Transformers for High-Resolution Image Synthesis. ICML 2024. { SD3 的技术报告,将 Rectified Flow 扩展到大规模图像生成}
  • Tong, A., et al. Improving and Generalizing Flow-Based Generative Models with Minibatch Optimal Transport. TMLR 2024. { Mini-batch OT 在 Flow Matching 中的应用}
  • Albergo, M. S. & Vanden-Eijnden, E. Building Normalizing Flows with Stochastic Interpolants. ICLR 2023. { Stochastic Interpolant 视角,与 Flow Matching 密切相关}
  • Song, Y., et al. Consistency Models. ICML 2023. { 加速采样的竞争方案,可与 Rectified Flow 对比}