跳转到内容

输入关键词开始搜索

    An Introduction to Flow Matching and Diffusion Models(MIT 6.S184)

    资料摘要更新 2026-07-13置信度 high待阅读原始来源 ↗#深度#教程#综述#扩散模型#生成模型

    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.)生成 = 从数据分布 pdatap_{\text{data}} 采样;流/扩散模型通过模拟 ODE/SDE 把简单初始分布 pinitp_{\text{init}}(通常高斯)逐步搬运成 pdatap_{\text{data}}
    • 两类模型统一在一个向量场下:流模型 = ODE(σt=0\sigma_t=0),扩散模型 = SDE(加布朗运动)。ODE 是 SDE 的特例,二者共用同一个神经网络向量场 utθu_t^\theta
    • 流匹配的核心技巧(边缘化 trick):难算的边缘向量场 uttarget(x)u_t^{\text{target}}(x) 无法直接回归,但条件向量场 uttarget(xz)u_t^{\text{target}}(x\mid z) 有解析解;对条件目标做回归(条件流匹配损失 LCFM\mathcal{L}_{\text{CFM}})与对边缘目标回归梯度相同,于是训练变成 simulation-free 的简单回归
    • 得分匹配是同一枚硬币的另一面:扩散模型学得分函数 logpt(x)\nabla\log p_t(x)。对高斯概率路径,向量场与得分可通过线性公式(Proposition 1)互相转换——学会其一即学会另一,因此“流匹配 vs 得分匹配”本质等价。
    • 引导(Guidance):Vanilla guidance 直接把 prompt yy 喂进网络;**无分类器引导(CFG)**训练时随机丢弃 yy、推理时把“有条件 − 无条件”向量场之差放大 w>1w>1 倍,是几乎所有 SOTA 图像/视频模型(w4w\geq 4)的贴合度来源。
    • 规模化落地:条件嵌入(时间用 Fourier features、文本用 CLIP/T5)→ 骨干用 DiTU-Net → 在 VAE 潜空间训练(latent diffusion)以省算力。案例:Stable Diffusion 3(MMDiT,8B,50 步,CFG 2–5)与 Meta Movie Gen Video(30B,时序 VAE + DiT)。
    • 离散扩散 = 语言模型:把 ODE/SDE 换成连续时间马尔可夫链(CTMC)、把向量场换成速率矩阵 QtQ_t,同样的“条件→边缘→marginalization trick”成立。训练退化为逐位置分类(交叉熵),掩码扩散语言模型(MDLM)是其特例。

    1. 生成即采样(Generative Modeling as Sampling)

    Section titled “1. 生成即采样(Generative Modeling as Sampling)”
    • 对象即向量(Key Idea 1):图像 zRH×W×3z\in\mathbb{R}^{H\times W\times 3}、视频 RT×H×W×3\mathbb{R}^{T\times H\times W\times 3}、分子结构 R3×N\mathbb{R}^{3\times N}——都可展平为 zRdz\in\mathbb{R}^d
    • 生成即采样(Key Idea 2):把“生成一张狗的图片”翻译成“从数据分布 zpdataz\sim p_{\text{data}} 采样”。“好不好”这一主观判断被替换为“在 pdatap_{\text{data}} 下的似然高不高”。
    • 引导生成(Key Idea 4):条件生成 = 从 pdata(y)p_{\text{data}}(\cdot\mid y) 采样,yy 为文本提示等条件。前 3 章聚焦无条件情形,因为条件情形可平滑推广。

    2. 流模型与扩散模型(微分方程工具箱)

    Section titled “2. 流模型与扩散模型(微分方程工具箱)”
    • ODE / 流:向量场 u:Rd×[0,1]Rdu:\mathbb{R}^d\times[0,1]\to\mathbb{R}^d 定义 ODE ddtXt=ut(Xt)\frac{d}{dt}X_t=u_t(X_t);其解 ψt\psi_t(流)在弱假设下存在且唯一(Theorem 3)。向量场→ODE→流是同一对象的三种描述。
    • 数值模拟:Euler 法 Xt+h=Xt+hut(Xt)X_{t+h}=X_t+h\,u_t(X_t);更精确的 Heun 法(预测-校正)。
    • 流模型:把向量场参数化为神经网络 utθu_t^\theta,初值 X0pinitX_0\sim p_{\text{init}} 随机,目标让终点 X1pdataX_1\sim p_{\text{data}}注意:网络参数化的是向量场,不是流本身
    • SDE / 扩散:布朗运动 WtW_t(正态增量 + 独立增量)驱动随机轨迹。SDE dXt=ut(Xt)dt+σtdWtdX_t=u_t(X_t)dt+\sigma_t dW_tσt\sigma_t扩散系数。用 Euler-Maruyama 法模拟:Xt+h=Xt+hut(Xt)+hσtϵX_{t+h}=X_t+h\,u_t(X_t)+\sqrt{h}\,\sigma_t\epsilon
    • OU 过程(Example 6):dXt=θXtdt+σdWtdX_t=-\theta X_t dt+\sigma dW_t,收敛到 N(0,σ2/2θ)\mathcal{N}(0,\sigma^2/2\theta),是扩散模型早期形式的原型。扩散模型 = 神经网络向量场 utθu_t^\theta + 固定扩散系数 σt\sigma_tσt=0\sigma_t=0 时退化为流模型(Summary 7)。

    3. 流匹配(Flow Matching)—— 训练算法

    Section titled “3. 流匹配(Flow Matching)—— 训练算法”
    • 概率路径 pt(z)p_t(\cdot\mid z):从 pinitp_{\text{init}}δz\delta_z 的插值(条件路径),诱导出边缘路径 pt(x)=pt(xz)pdata(z)dzp_t(x)=\int p_t(x\mid z)p_{\text{data}}(z)dz,满足 p0=pinit, p1=pdatap_0=p_{\text{init}},\ p_1=p_{\text{data}}
    • 高斯概率路径(最重要,Example 8):pt(z)=N(αtz,βt2Id)p_t(\cdot\mid z)=\mathcal{N}(\alpha_t z,\beta_t^2 I_d)αt,βt\alpha_t,\beta_t 为噪声调度器(α0=β1=0, α1=β0=1\alpha_0=\beta_1=0,\ \alpha_1=\beta_0=1)。采样 x=αtz+βtϵx=\alpha_t z+\beta_t\epsilon
    • 边缘化 trick(Theorem 9,核心):条件向量场 uttarget(xz)u_t^{\text{target}}(x\mid z) 可解析求出(高斯情形 Example 10:uttarget(xz)=(α˙tβ˙tβtαt)z+β˙tβtxu_t^{\text{target}}(x\mid z)=(\dot\alpha_t-\frac{\dot\beta_t}{\beta_t}\alpha_t)z+\frac{\dot\beta_t}{\beta_t}x);边缘向量场为其按后验加权平均: uttarget(x)=uttarget(xz)pt(xz)pdata(z)pt(x)dzu_t^{\text{target}}(x)=\int u_t^{\text{target}}(x\mid z)\frac{p_t(x\mid z)p_{\text{data}}(z)}{p_t(x)}dz
    • 连续性方程(Theorem 11):tpt=div(ptuttarget)\partial_t p_t=-\text{div}(p_t u_t^{\text{target}})——向量场生成概率路径的充要条件。
    • 流匹配损失:边缘损失 LFM\mathcal{L}_{\text{FM}} 不可算,但条件流匹配损失 LCFM=Eutθ(x)uttarget(xz)2\mathcal{L}_{\text{CFM}}=\mathbb{E}\|u_t^\theta(x)-u_t^{\text{target}}(x\mid z)\|^2 可算,且 θLFM=θLCFM\nabla_\theta\mathcal{L}_{\text{FM}}=\nabla_\theta\mathcal{L}_{\text{CFM}}(Theorem 12)。这是流匹配能 simulation-free 训练的关键
    • 训练算法(Algorithm 3):采 zpdataz\sim p_{\text{data}}tUnift\sim\text{Unif}ϵN(0,I)\epsilon\sim\mathcal{N}(0,I) → 令 x=αtz+βtϵx=\alpha_t z+\beta_t\epsilon → 回归 utθ(x)uttarget(xz)2\|u_t^\theta(x)-u_t^{\text{target}}(x\mid z)\|^2。CondOT 路径(αt=t,βt=1t\alpha_t=t,\beta_t=1-t)下损失极简:utθ(tz+(1t)ϵ)(zϵ)2\|u_t^\theta(tz+(1-t)\epsilon)-(z-\epsilon)\|^2Stable Diffusion 3、Meta Movie Gen 都用这一目标

    4. 得分函数与得分匹配(Score Matching)—— 训练扩散模型

    Section titled “4. 得分函数与得分匹配(Score Matching)—— 训练扩散模型”
    • 得分函数 logpt(x)\nabla\log p_t(x):对数似然的梯度(最陡上升方向)。同样有边缘化关系 logpt(x)=logpt(xz)pt(xz)pdata(z)pt(x)dz\nabla\log p_t(x)=\int\nabla\log p_t(x\mid z)\frac{p_t(x\mid z)p_{\text{data}}(z)}{p_t(x)}dz(Eq. 38)。高斯路径下 logpt(xz)=xαtzβt2\nabla\log p_t(x\mid z)=-\frac{x-\alpha_t z}{\beta_t^2}
    • 向量场 ⇄ 得分的转换公式(Proposition 1,重要):高斯路径下二者都是 x,zx,z 的线性函数,可互相恢复:uttarget(x)=atlogpt(x)+btxu_t^{\text{target}}(x)=a_t\nabla\log p_t(x)+b_t x,其中 at=(βt2α˙tαtβ˙tβt), bt=α˙tαta_t=(\beta_t^2\frac{\dot\alpha_t}{\alpha_t}-\dot\beta_t\beta_t),\ b_t=\frac{\dot\alpha_t}{\alpha_t}学会向量场就学会了得分,反之亦然
    • SDE 扩展 trick(Theorem 17):给定学好的向量场/得分,可对任意 σt0\sigma_t\geq 0 构造保持同一边缘 ptp_t 的 SDE:dXt=[uttarget(Xt)+σt22logpt(Xt)]dt+σtdWtdX_t=[u_t^{\text{target}}(X_t)+\frac{\sigma_t^2}{2}\nabla\log p_t(X_t)]dt+\sigma_t dW_tσt\sigma_t 在实践中有一个经验最优值(训练误差 + 模拟误差的权衡)。
    • Fokker-Planck 方程(Theorem 19):连续性方程 + 拉普拉斯项 σt22Δpt\frac{\sigma_t^2}{2}\Delta p_t,SDE 保持 ptp_t 的充要条件。Langevin 动力学ptp_t 恒定的特例(MCMC、分子动力学的基础)。
    • 得分匹配损失:同样地 LSM=LCSM+C\mathcal{L}_{\text{SM}}=\mathcal{L}_{\text{CSM}}+C(Theorem 22),条件得分匹配 = 去噪得分匹配(denoising score matching)。DDPM 把 stθs_t^\theta 重参数化为噪声预测器 ϵtθ\epsilon_t^\thetaLDDPM=Eϵtθ(αtz+βtϵ)ϵ2\mathcal{L}_{\text{DDPM}}=\mathbb{E}\|\epsilon_t^\theta(\alpha_t z+\beta_t\epsilon)-\epsilon\|^2(因 βt0\beta_t\to 01/βt1/\beta_t 数值不稳定,故丢弃系数直接预测噪声)。详见 DDPM 前向与反向扩散公式推导

    5. 引导(Guidance)—— 如何条件化 prompt

    Section titled “5. 引导(Guidance)—— 如何条件化 prompt”
    • 术语澄清(Remark 25):为区别于“条件路径”里对 zz 的 conditioning,专用 guided(引导) 指对 prompt yy 的条件化。
    • Vanilla guidance:把 yy 作为额外输入喂进网络 utθ(xy)u_t^\theta(x\mid y),训练目标 LCFMguided\mathcal{L}_{\text{CFM}}^{\text{guided}};数据集变成 (z,y)(z,y) 对。
    • CFG(无分类器引导):实践发现 vanilla guidance 贴合度不够。用贝叶斯 logpt(xy)=logpt(x)+logpt(yx)\nabla\log p_t(x\mid y)=\nabla\log p_t(x)+\nabla\log p_t(y\mid x) 把引导向量场拆成“无条件 + 似然梯度”,放大似然项得 classifier guidance;进一步用同一网络同时学有条件/无条件(训练时以概率 η\etayy 替换为 \varnothing),得 CFG: u~t(xy)=(1w)uttarget(x)+wuttarget(xy),w>1\tilde u_t(x\mid y)=(1-w)u_t^{\text{target}}(x\mid\varnothing)+w\,u_t^{\text{target}}(x\mid y),\quad w>1 (Summary 27, Algorithm 5)。ww 越大越贴合 prompt,但 X1X_1 不再严格服从 pdata(y)p_{\text{data}}(\cdot\mid y)——CFG 是“由出色实证结果支撑的启发式”。详见 CFG(无分类器引导)
    • 条件嵌入:时间 ttFourier 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):直接在 d=HW3d=H\cdot W\cdot 3(1024² 图 ≈ 3×10⁶)建模成本过高。VAE 用编码器 qϕ(zx)q_\phi(z\mid x) + 解码器 + KL 正则(先验 N(0,I)\mathcal{N}(0,I))把数据压到低维潜空间,β\beta-VAE 损失 = 重建 + β\beta\cdotKL,重参数化技巧使其可训练。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 流匹配(αt=t,σt=1t\alpha_t=t,\sigma_t=1-t)+ 时序自编码器(TAE) 压缩视频(T/H/WT/H/W 各 8×)+ 时空 patch 化 DiT + 三类文本嵌入(UL2 / ByT5 / MetaCLIP),最大 30B 参数。

    7. 离散扩散模型(Discrete Diffusion)—— 用扩散造语言模型

    Section titled “7. 离散扩散模型(Discrete Diffusion)—— 用扩散造语言模型”
    • 动机:文本/DNA 是离散状态空间 S=VdS=\mathcal{V}^d,无法用 SDE(离散空间不存在布朗运动)。改用连续时间马尔可夫链(CTMC),“离散版 SDE”。
    • 速率矩阵 Qt(yx)Q_t(y\mid x):状态间跳转速率(离散版向量场),对角非正、非对角非负、行和为零。CTMC 存在唯一性由 Theorem 33 保证。
    • 因子化 CTMC(关键工程约束):状态空间 S=Vd|S|=V^d 指数爆炸,故约束只允许单 token 跳变(因子化速率矩阵),输出形状 d×Vd\times V 线性可存。
    • 训练(与流匹配完全平行):因子化混合路径(Example 35,逐 token 独立加噪:mjBernoulli(κt)m_j\sim\text{Bernoulli}(\kappa_t))→ 条件速率矩阵(Example 37)→ 离散 marginalization trick(Theorem 36,用 Kolmogorov 前向方程证明)→ 边缘速率矩阵是去噪概率网络 p1tθ(zj=vix)p_{1\mid t}^\theta(z_j=v_i\mid x) 的重参数化 → 训练退化为逐位置交叉熵LDFM=E[jlogp1tθ(zjx)]\mathcal{L}_{\text{DFM}}=\mathbb{E}[\sum_j-\log p_{1\mid t}^\theta(z_j\mid x)](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 等),本讲义补上了图像/视频视角 + 严格数学骨架 + 离散扩散语言模型这三块,显著提升理论完备度。