---
title: "Flow Matching"
created: 2026-05-13
updated: 2026-05-13
type: concept
tags: [generative-modeling, diffusion, continuous-time, ODE]
sources:
  - https://arxiv.org/abs/2210.02747
---

# Flow Matching

Flow Matching 是一种连续时间生成建模框架，通过学习速度场（velocity field）来定义从噪声到数据的连续变换路径。

## 核心公式

给定数据分布 p_data(x) 和噪声分布 p_noise(ε)（通常 ε ~ N(0,I)），定义**线性插值路径**（[[rectified-flows]]）：

```
z_t = t·x + (1-t)·ε,  t ∈ [0,1]
```

速度场定义为 z_t 对时间的导数：

```
v = dz/dt = x - ε
```

训练目标是最小化预测速度与真实速度的 MSE：

```
L_MSE = E_{t,x,ε} ||v_θ(z_t, t) - v||²
```

## x-prediction vs v-prediction

由于 v = (x - z_t)/(1-t)，网络可以直接预测 x（[[x-prediction-parameterization]]）而非 v：

```
x_θ = net_θ(z_t, t)
v_θ = (x_θ - z_t) / (1-t)
```

x-prediction 在 [[embedded-language-flows|ELF]] 中至关重要：它与解码任务（预测干净离散 token）的语义一致，使得共享权重设计可行。

## 推理

通过求解 ODE `dz_t/dt = v_θ(z_t, t)` 从 z_0 ~ N(0,I) 逐步推进到 z_1 ≈ x。可使用欧拉求解器或更高级的数值方法。

## 与其他框架的关系

- **DDPM**：离散时间步，高斯前向过程 + 去噪后向过程
- **Score-based models**：通过 score function ∇log p_t(z) 参数化；Flow Matching 可统一在此框架下
- **Rectified Flows**：Flow Matching 的特例，使用直线插值路径

## 在语言建模中的应用

[[embedded-language-flows|ELF]] 将 Flow Matching 应用于语言生成：离散 token → T5 编码 → 连续嵌入空间 → Flow Matching 去噪 → 最后一步解码回 token。

## 在 Wan-Streamer 中的应用

[[wan-streamer|Wan-Streamer]] 使用条件流匹配（conditional flow matching）联合生成音频和视频响应。同一个 clean streaming context（用户观测 + 已提交的 Agent 响应）同时条件化音频和视频速度场的预测，使语音、动作、外观和场景演化作为一个耦合响应进行优化。去噪后的 clean latents 直接追加到历史上下文中。

## 参考

- Lipman et al., "Flow Matching for Generative Modeling", ICLR 2023
- Albergo & Vanden-Eijnden, "Stochastic Interpolants", JMLR 2025
- [[wan-streamer]] — 条件流匹配在端到端流式音视频交互中的应用
