An Introduction to Flow Matching and Diffusion Models(MIT 6.S184)
MIT 6.S184《Generative AI With Stochastic Differential Equations》(2026) 官方讲义,Peter Holderrieth & Ezra Erives 著,84 页。以微分方程为统一语言,从零推导流匹配(Flow Matching)与扩散模型(Diffusion Models):把”生成”形式化为”从数据分布采样”,用 ODE/SDE 把噪声搬运成数据,给出流匹配 / 得分匹配两条训练路径,再延伸到引导(CFG)、大规模图像/视频生成的架构(DiT/U-Net/VAE)与离散扩散语言模型(CTMC)。是把本库散落的 条件流匹配(CFM)、DDPM 前向与反向扩散公式推导、DiT(Diffusion Transformer)、MMDiT(多模态扩散 Transformer)、CFG(无分类器引导) 等概念串成一套自洽理论骨架的权威教科书。
核心要点
- 一句话主旨:“Creating noise from data is easy; creating data from noise is generative modeling.”(Song et al.)生成 = 从数据分布 采样;流/扩散模型通过模拟 ODE/SDE 把简单初始分布 (通常高斯)逐步搬运成 。
- 两类模型统一在一个向量场下:流模型 = ODE(),扩散模型 = SDE(加布朗运动)。ODE 是 SDE 的特例,二者共用同一个神经网络向量场 。
- 流匹配的核心技巧(边缘化 trick):难算的边缘向量场 无法直接回归,但条件向量场 有解析解;对条件目标做回归(条件流匹配损失 )与对边缘目标回归梯度相同,于是训练变成 simulation-free 的简单回归。
- 得分匹配是同一枚硬币的另一面:扩散模型学得分函数 。对高斯概率路径,向量场与得分可通过线性公式(Proposition 1)互相转换——学会其一即学会另一,因此”流匹配 vs 得分匹配”本质等价。
- 引导(Guidance):Vanilla guidance 直接把 prompt 喂进网络;**无分类器引导(CFG)**训练时随机丢弃 、推理时把”有条件 − 无条件”向量场之差放大 倍,是几乎所有 SOTA 图像/视频模型()的贴合度来源。
- 规模化落地:条件嵌入(时间用 Fourier features、文本用 CLIP/T5)→ 骨干用 DiT 或 U-Net → 在 VAE 潜空间训练(latent diffusion)以省算力。案例:Stable Diffusion 3(MMDiT,8B,50 步,CFG 2–5)与 Meta Movie Gen Video(30B,时序 VAE + DiT)。
- 离散扩散 = 语言模型:把 ODE/SDE 换成连续时间马尔可夫链(CTMC)、把向量场换成速率矩阵 ,同样的”条件→边缘→marginalization trick”成立。训练退化为逐位置分类(交叉熵),掩码扩散语言模型(MDLM)是其特例。
详细笔记
1. 生成即采样(Generative Modeling as Sampling)
- 对象即向量(Key Idea 1):图像 、视频 、分子结构 ——都可展平为 。
- 生成即采样(Key Idea 2):把”生成一张狗的图片”翻译成”从数据分布 采样”。“好不好”这一主观判断被替换为”在 下的似然高不高”。
- 引导生成(Key Idea 4):条件生成 = 从 采样, 为文本提示等条件。前 3 章聚焦无条件情形,因为条件情形可平滑推广。
2. 流模型与扩散模型(微分方程工具箱)
- ODE / 流:向量场 定义 ODE ;其解 (流)在弱假设下存在且唯一(Theorem 3)。向量场→ODE→流是同一对象的三种描述。
- 数值模拟:Euler 法 ;更精确的 Heun 法(预测-校正)。
- 流模型:把向量场参数化为神经网络 ,初值 随机,目标让终点 。注意:网络参数化的是向量场,不是流本身。
- SDE / 扩散:布朗运动 (正态增量 + 独立增量)驱动随机轨迹。SDE , 为扩散系数。用 Euler-Maruyama 法模拟:。
- OU 过程(Example 6):,收敛到 ,是扩散模型早期形式的原型。扩散模型 = 神经网络向量场 + 固定扩散系数 ; 时退化为流模型(Summary 7)。
3. 流匹配(Flow Matching)—— 训练算法
- 概率路径 :从 到 的插值(条件路径),诱导出边缘路径 ,满足 。
- 高斯概率路径(最重要,Example 8):, 为噪声调度器()。采样 。
- 边缘化 trick(Theorem 9,核心):条件向量场 可解析求出(高斯情形 Example 10:);边缘向量场为其按后验加权平均:
- 连续性方程(Theorem 11):——向量场生成概率路径的充要条件。
- 流匹配损失:边缘损失 不可算,但条件流匹配损失 可算,且 (Theorem 12)。这是流匹配能 simulation-free 训练的关键。
- 训练算法(Algorithm 3):采 、、 → 令 → 回归 。CondOT 路径()下损失极简:。Stable Diffusion 3、Meta Movie Gen 都用这一目标。
4. 得分函数与得分匹配(Score Matching)—— 训练扩散模型
- 得分函数 :对数似然的梯度(最陡上升方向)。同样有边缘化关系 (Eq. 38)。高斯路径下 。
- 向量场 ⇄ 得分的转换公式(Proposition 1,重要):高斯路径下二者都是 的线性函数,可互相恢复:,其中 。学会向量场就学会了得分,反之亦然。
- SDE 扩展 trick(Theorem 17):给定学好的向量场/得分,可对任意 构造保持同一边缘 的 SDE:。 在实践中有一个经验最优值(训练误差 + 模拟误差的权衡)。
- Fokker-Planck 方程(Theorem 19):连续性方程 + 拉普拉斯项 ,SDE 保持 的充要条件。Langevin 动力学是 恒定的特例(MCMC、分子动力学的基础)。
- 得分匹配损失:同样地 (Theorem 22),条件得分匹配 = 去噪得分匹配(denoising score matching)。DDPM 把 重参数化为噪声预测器 :(因 时 数值不稳定,故丢弃系数直接预测噪声)。详见 DDPM 前向与反向扩散公式推导。
5. 引导(Guidance)—— 如何条件化 prompt
- 术语澄清(Remark 25):为区别于”条件路径”里对 的 conditioning,专用 guided(引导) 指对 prompt 的条件化。
- Vanilla guidance:把 作为额外输入喂进网络 ,训练目标 ;数据集变成 对。
- CFG(无分类器引导):实践发现 vanilla guidance 贴合度不够。用贝叶斯 把引导向量场拆成”无条件 + 似然梯度”,放大似然项得 classifier guidance;进一步用同一网络同时学有条件/无条件(训练时以概率 把 替换为 ),得 CFG: (Summary 27, Algorithm 5)。 越大越贴合 prompt,但 不再严格服从 ——CFG 是”由出色实证结果支撑的启发式”。详见 CFG(无分类器引导)。
6. 大规模图像/视频生成器
- 条件嵌入:时间 用 Fourier features(归一化正弦编码);类别标签学一个 embedding;文本 prompt 用冻结的 CLIP / T5-XXL 编码为序列嵌入。
- DiT(Diffusion Transformer):Patchify 图像 → 加 patch/time/prompt 嵌入 → DiT Block(自注意力 patch + 交叉注意力 prompt + AdaLN 时间调制)→ Depatchify。类条件 DiT 常简化,去掉交叉注意力只用 AdaLN。详见 DiT(Diffusion Transformer)、MMDiT(多模态扩散 Transformer)。
- U-Net:编码器-中码器-解码器,残差连接,输入输出同形,早期扩散模型主流。
- 潜空间(VAE):直接在 (1024² 图 ≈ 3×10⁶)建模成本过高。VAE 用编码器 + 解码器 + KL 正则(先验 )把数据压到低维潜空间,-VAE 损失 = 重建 + KL,重参数化技巧使其可训练。Latent diffusion:在 VAE 潜空间训练流/扩散模型——当前几乎所有 SOTA 图像/视频模型的范式。详见 VAE(变分自编码器)。
- 案例:
- Stable Diffusion 3:条件流匹配 + CFG + 潜空间 + MMDiT(同时用 CLIP 与 T5-XXL 嵌入),最大 8B 参数,50 步 Euler,CFG 权重 2–5。见 资料摘要:SD3(MMDiT)。
- Meta Movie Gen Video:CondOT 流匹配()+ 时序自编码器(TAE) 压缩视频( 各 8×)+ 时空 patch 化 DiT + 三类文本嵌入(UL2 / ByT5 / MetaCLIP),最大 30B 参数。
7. 离散扩散模型(Discrete Diffusion)—— 用扩散造语言模型
- 动机:文本/DNA 是离散状态空间 ,无法用 SDE(离散空间不存在布朗运动)。改用连续时间马尔可夫链(CTMC),“离散版 SDE”。
- 速率矩阵 :状态间跳转速率(离散版向量场),对角非正、非对角非负、行和为零。CTMC 存在唯一性由 Theorem 33 保证。
- 因子化 CTMC(关键工程约束):状态空间 指数爆炸,故约束只允许单 token 跳变(因子化速率矩阵),输出形状 线性可存。
- 训练(与流匹配完全平行):因子化混合路径(Example 35,逐 token 独立加噪:)→ 条件速率矩阵(Example 37)→ 离散 marginalization trick(Theorem 36,用 Kolmogorov 前向方程证明)→ 边缘速率矩阵是去噪概率网络 的重参数化 → 训练退化为逐位置交叉熵:(Algorithm 8)。
- 掩码扩散语言模型(MDLM)(Example 39):词表加
[MASK]token,初始全 mask,逐步”解掩码”生成序列——当前 SOTA 离散扩散 LM(如 LLaDA 一类)的配方。
附录(补充)
- A:概率论提要(随机向量、条件密度期望);B:Fokker-Planck 方程证明;C:CTMC 存在唯一性证明;D:VAE 的额外视角;E:扩散模型文献导读。
引用与数据
- 课程主页:MIT 6.S184 / diffusion.csail.mit.edu(含 lecture recordings 与 labs,强烈建议动手实现)。
- 作者:Peter Holderrieth、Ezra Erives(MIT)。
- 配套引用:Lipman et al.(Flow Matching, ICLR 2023)、Song et al.(Score-Based SDE)、Ho et al.(DDPM, [17])、Ho & Salimans(CFG, [18])、Peebles & Xie(DiT, [30])、Esser et al.(SD3, [14])、Meta(Movie Gen, [33])。
- 规模数据点:SD3 最大 8B / 50 步 / CFG 2–5;Movie Gen 30B / TAE 8× 压缩;AlphaFold3 亦为扩散模型。
批判性评价
- 定位:这是一份教学导向的推导讲义而非研究综述——最大价值在于用统一的微分方程语言把 flow matching、score matching、CFG、离散扩散串成一条自洽推导链,且每个定理都给自足证明。适合作为本库所有扩散/流匹配概念页的”理论根页”。
- 可信度 high:MIT 官方课程材料、作者为该领域活跃研究者、内容与本库既有论文(DiT/SD3/DDPM)完全自洽。
- 局限:截至讲义仅覆盖到 flow/diffusion 的”训练-采样”骨架与两个案例,对采样加速(蒸馏、少步、分布匹配蒸馏(DMD)、对抗后训练(Adversarial Post-Training))、rectified flow reflow、consistency models 等推理提速方向着墨少——这些正是本库音频线(Stable Audio 3 / AudioX-Turbo)的重点,可互补。
- 与本库的衔接:本库此前的扩散知识多从音频/TTS 应用切入(CosyVoice、Stable Audio 等),本讲义补上了图像/视频视角 + 严格数学骨架 + 离散扩散语言模型这三块,显著提升理论完备度。
相关
- 条件流匹配(CFM) — 本讲义第 3 章的严格版;此前本库偏 TTS 应用,这里补齐通用推导
- DDPM 前向与反向扩散公式推导 — 第 4 章去噪得分匹配 / 噪声预测器的等价视角
- 得分匹配(Score Matching) — 第 4 章新建概念页
- 离散扩散模型(CTMC) — 第 7 章新建概念页
- VAE(变分自编码器) — 第 6.2 节新建概念页
- CFG(无分类器引导) — 第 5 章
- DiT(Diffusion Transformer) / MMDiT(多模态扩散 Transformer) — 第 6.1 节骨干架构
- 资料摘要:SD3(MMDiT) — 第 6.3 节案例
- 资料摘要:DiT — DiT 原始论文
- 资料摘要:Score-Based 音频生成综述 — 音频侧的扩散综述,可对照
Flow Matching 与扩散模型统一框架.excalidraw
⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’
Excalidraw Data
Text Elements
指向原始笔记的链接- Wiki 目录