Flow Matching 连续归一化流的直接训练方法
Lipman et al. 2023 ICLR · 比 Diffusion 更直的路径 · 少步推理 · VLA 动作头标配
Flow Matching 是 Meta AI 的 Yaron Lipman 等人在 2023 ICLR 发表的理论框架,它为「连续归一化流(Continuous Normalizing Flow, CNF)」提供了一种新的直接训练方法。核心思想:与其像 Diffusion 那样学"去噪得分"(score),不如直接学"从起点流向终点的速度场"(velocity field)。
为什么这很重要?比喻一下:Diffusion 像一列火车在复杂的铁轨网络里反复摸索(多个噪声时间步),每一步都要猜"我被加了多少噪声";Flow Matching 像直接规划一条光滑的曲线,模型学的是"沿这条曲线应该以什么速度移动"。数学上等价,但训练效率和推理速度都更好。
从 2023 年起,Flow Matching 逐渐成为 VLA 领域的标配动作生成方法。π₀(Physical Intelligence)、Qwen-VLA(阿里)、Wall-OSS-Flow(国内)等主流模型都采用了 flow matching 而非 diffusion 作为动作头,因为它能用极少的推理步数(通常 1-10 步)生成平滑连续的轨迹,而且和离散 token 架构结合更顺。
数学基础:从 Diffusion 到 Flow Matching
Diffusion 的训练方式(快速回顾)
Diffusion 模型学的是一个时间条件的得分函数,即梯度的对数概率:
加噪动作:A_t = √α_t · A_0 + √(1−α_t) · ε
模型学习:s_θ(A_t, t) ≈ ∇log p_t(A_t)
训练目标:最小化 ||s_θ(A_t, t) − ∇log p_t(A_t)||²
这里的 t 通常有 1000 多个离散步。推理时,从纯噪声开始,用数值求解器(比如 DDPM、DDIM)逐步去噪到数据。
Flow Matching 的新思路
Flow Matching 转换视角,学一个速度场(velocity field)而非得分:
生成过程:x_t = φ_t(x_0) 是时间连续的轨迹
速度场定义:v_t(x) = dx_t / dt
模型学习:v_θ(x_t, t) ≈ v_t(x)
训练目标:最小化 ||v_θ(x_t, t) − v_t(x_t)||²
关键差异:(1) 速度场是确定性的映射,不需要概率归一化常数(这对 Diffusion 来说是隐性的复杂度);(2) 可以自由选择路径 φ_t(下面讲 Optimal Transport 路径);(3) 推理时用 ODE 求解器(Euler、RK45)走连续步,天然支持任意步数采样。
数学等价性(简化版)
通过 Fokker-Planck 方程,可以证明 Diffusion 的得分和 Flow Matching 的速度场背后是同一族概率路径的不同参数化。即选对了路径,两种方法收敛到同一个分布。但流程更直接 —— Flow Matching 不需要反向 SDE,也不需要学习偏微分算子。
Conditional Flow Matching(CFM): VLA 里的标准用法
VLA 背景下,动作生成必须条件于观测(当前图像、文本指令等)。Flow Matching 的条件版本叫 Conditional Flow Matching(CFM),训练目标是:
给定观测 obs、标签动作轨迹 A_0
采样时间 t ~ [0,1] 和轨迹点数 i ~ [0, H]
采样噪声 z ~ N(0, I)
构造路径:x_t = (1−t)·z + t·A_0
目标速度:v_t^* = A_0 − z
模型学习:v_θ(x_t, t, obs) ≈ v_t^*
损失:MSE(v_θ(...) − v_t^*)
这里关键的几个概念
- 路径选择(Path):从什么起点(z)到什么终点(A_0)。最常见是「从高斯噪声到数据」,但 Optimal Transport 路径选更优的映射
- 目标速度(Target Velocity):路径的导数 v_t^* = dφ_t/dt,模型要拟合这个
- 条件注入(Conditioning):通过 cross-attention 或 FiLM 把 obs 和文本指令融入到速度场
Rectified Flow: 拉直路径 → 少步推理
为什么「拉直」很关键
标准 Diffusion 和 Flow Matching 都面临一个问题:从 z ~ N(0,I) 到 A_0 的映射是「弯曲的」(尤其是数据维度高时),所以需要很多小步才能准确追踪。Rectified Flow(Liu et al., arXiv 2209.03003)的思想很简洁:通过重新配对,把映射拉成直线。
具体做法:不是随机配对「噪声 z_i」和「数据 A_j」,而是通过 Optimal Transport 找到最优的配对方式,使得从 z_i 到对应 A_j 的路径最短。这样:
- 一次迭代后,流线变直
- 相同的模型架构,用更少的采样步数也能生成高质量轨迹
- 可以递归做多轮「整直」,每轮都能进一步减少所需步数
和 Optimal Transport Path 的关系
Optimal Transport(最优传输)是数学中的经典问题:给定起始分布和目标分布,找最小成本的运输方案。在 Flow Matching 里,OT 路径通常选的是:
路径:φ_t(x_0) = (1−t)·z* + t·A_0
其中 z* 是通过 OT 找到的「与 A_0 配对的最优噪声」
这种线性路径已经接近最优,配合足够的训练,用 10 步以下的 ODE 求解就能达到好效果。相比 Diffusion 需要 50-100 步,效率显著提升。
Flow Matching vs Diffusion Policy: 详细对比
| 维度 | Diffusion Policy | Flow Matching Policy |
|---|---|---|
| 学什么 | 去噪得分 s_θ(x_t, t) ≈ ∇log p_t | 速度场 v_θ(x_t, t) ≈ dx/dt |
| 路径 | 加噪过程(A_0 → 纯噪声) | 自由选择(通常 Optimal Transport) |
| 训练目标 | Score matching / denoising loss | Velocity matching / flow matching loss |
| 推理采样器 | DDPM(100 步)/ DDIM(10 步)/ SDE 求解 | ODE 求解(Euler / RK45)· 常 1-10 步 |
| 推理延迟(A100 上) | ~100-200 ms(10 步 DDIM) | ~10-50 ms(少于 10 步 ODE) |
| 多模态能力 | 强(学整个分布) | 强(等价于 Diffusion) |
| 编码复杂度 | 较高(需要 SDE 理论) | 相对简洁(常微分方程) |
| 生态成熟度 | 成熟(2020 年起广泛应用) | 较新但增长快(2023 年+) |
为什么 VLA 选 Flow Matching?π₀ 论文的原话
Physical Intelligence 的 π₀ 论文(arXiv 2410.24164)明确指出选择 flow matching 的理由:(1) 推理步数少、低延迟,适合实时机器人控制;(2) 和离散 token 架构共存时,梯度流更清晰;(3) ODE 求解相比 SDE 更确定性、更容易部署。论文里 π₀ 的动作生成器用 10 个 flow matching 步、达到 50 Hz 实时率,而如果用 Diffusion 的 100 步会严重超过实时性预算。
在主流 VLA 里的应用案例
π₀ / π₀.₅(Physical Intelligence)
arXiv 2410.24164 · 主论文里的架构:VLM(PaliGemma 3B)输出「子目标 + 初始点」,然后一个 flow-matching 动作 head(DiT 结构)用 10 步生成 16 步的动作 chunk。π₀.₅(arXiv 2504.16054)进一步优化了 flow matching 的条件注入和路径选择。
- 推理步数:论文明确 10 integration steps(每个 step 一个 Euler/RK45 方程更新)
- 为什么快:OT-CFM 拉直了路径,10 步就能追踪到足够精度
- 性能:多个 benchmark 上(Robomimic 等)超过了 Diffusion Policy 的基线
Qwen-VLA(阿里)
arXiv 2605.30280 · 闭源 VLA,但论文明确讲了动作生成部分:DiT flow-matching expert(1.15B 参数)+ Qwen3.5 4B VLM backbone。论文里没有明确说推理步数,但从架构推断应该也是少于 15 步。
Wall-OSS-Flow(X² Robotics)
arXiv 2509.11766 · 开源 VLA,提供了 flow-matching 动作头的完整实现。关键特色:Action-Space Supervision —— 和常规的 velocity field 不同,Wall-OSS-Flow 直接在原始动作空间(joint 位置/速度)落 loss,而不是映射到速度空间。这样梯度更直接、收敛更快。
- Wall-OSS-0.5(arXiv 2605.30877)进一步整合了 flow matching 和离散 action token,用「梯度桥」把两者学到的知识相互融通
- 论文没有单独报告纯 flow matching 部分的推理延迟,但提到整体推理 15 Hz 实时率
Flow Matching 的局限
1. ODE 求解需要小的时间步
虽然 flow matching 比 diffusion 少步数,但 ODE 求解的精度仍受限于步长。如果要追求极致的 1-2 步推理,需要额外蒸馏(类似 Consistency Distillation)或其他加速方法,这又增加了工程成本。
2. 路径选择需要精细调优
Optimal Transport 路径计算有成本,简单的线性路径 φ_t = (1−t)z + t·A_0 通常已经足够,但不同任务可能对「最优配对」有不同需求。这块的探索还在进行中。
3. 训练稳定性仍需关注
相比 Diffusion 的广泛应用和调参经验,Flow Matching 的训练稳定性指南还在积累。特别是在跨具身、高维动作空间时,速度场的泛化需要细心的设计。
4. 和离散 token 的混合尚未标准化
Wall-OSS-0.5 尝试了梯度桥方案,但如何让「离散 token loss」和「flow matching loss」平衡,还没有通用的最佳实践。不同团队的做法略有不同。
Flow Matching 与其他动作生成路线的对标
| 动作策略 | 推理速度 | 多模态支持 | 学习曲线 | 适用场景 |
|---|---|---|---|---|
| Flow Matching(本篇) | 高(1-10 步 ODE) | 强 | 中(概念新但资料增多) | 低延迟 VLA · 实时机器人 · 替代多步扩散 |
| Diffusion Policy | 中(10-100 步) | 强 | 中(概念需理解) | 多模态行为学习 · 行为克隆基线 |
| ACT(动作块 Transformer) | 高(单步) | 中 | 高(简洁易上手) | 双臂遥操作 · 少示教 · 精细装配 |
| Discrete Action Token | 极高(单步自回归) | 中 | 中 | 大规模 VLM 集成 · 长序列 · 移动操纵 |
| 行为克隆 MLP | 极高(1 步) | 弱(平均化) | 极高 | 快速原型 · 单模态任务 |
选型决策树
Q1:需要多模态动作吗?(比如「左绕」和「右绕」都对)
- 是 → Flow Matching 或 Diffusion Policy
- 否 → ACT、Discrete Token 或 BC MLP 都可
Q2:推理延迟要求?
- < 20 ms(50 Hz+) → Flow Matching 或 ACT/Discrete Token
- 20-100 ms(10-50 Hz) → Flow Matching 或 Diffusion Policy
- > 100 ms → Diffusion Policy(最稳定)
Q3:和 VLM 集成的深度?
- 低(VLM 只做语言理解,动作独立) → Diffusion Policy / Flow Matching 都可
- 高(梯度要通过 VLM 和动作头间传) → Flow Matching 更顺(速度场比得分更直接)
- 极高(多任务、多头 MoE) → Flow Matching + 轻量离散 token(参考 Wall-OSS-0.5)
关键数字速查
| 项目 | 数值 | 来源 / 备注 |
|---|---|---|
| Flow Matching 核心论文发表 | 2023-02 | arXiv 2210.02747 (Lipman et al., ICLR 2023) |
| π₀ flow matching 推理步数 | 10 steps | arXiv 2410.24164 · 每步 Euler/RK45 ODE 求解 |
| π₀ 推理频率 | 50 Hz | arXiv 2410.24164 · 基于 10 step flow matching |
| Rectified Flow 论文发表 | 2022-09 | arXiv 2209.03003 (Liu et al.) |
| Wall-OSS-0.5 整体推理频率 | 15 Hz | arXiv 2605.30877 · CUDA Graph + 融合算子 |
| Diffusion 推理延迟(10 步 DDIM,RTX 3080) | ~0.1-0.2 s | Diffusion Policy 论文 · 作为对照 |
| Flow Matching 路径选择(OT-CFM) | 线性 φ_t = (1−t)z + t·A | 最常用配置,代码实现中标准做法 |
| Consistency Distillation(衍生方法) | 1-3 steps | 可进一步加速但需额外蒸馏;不是 flow matching 本身 |