枢纽
机器人机械臂
数据集Adroit,Metaworld
输入模态vision

FlowPolicy:用一致性流匹配,一步出动作

Qinglun Zhang, Zhen Liu(共一)等;电子科技大学 UESTC + 旷视 Megvii。arXiv:2412.04987 (2024) / AAAI 2025。 github.com/zql-kk/FlowPolicy · 开源 · imitationflow matching 线索3D policy

🧠 一句话心智模型:Diffusion Policy / DP3 是「从噪声一步步去噪走到动作」(要走 10 步,慢);FlowPolicy 把这条路换成一条「直线」——通过约束速度场处处自洽,让模型一步就从噪声跳到动作,同时还能保持多模态的表达力。

🎯 为什么重要:3D 扩散策略的「快与好」两难

DP3(3D Diffusion Policy)证明了:用3D 点云当条件,几十条演示就能学出可泛化的策略。但扩散有一个天生的硬伤——推理要递归采样很多步。论文里给出现状:

核心矛盾:DDPM 要上百步,DDIM 即使加速也牺牲质量,自适应 ODE 求解「不能实质性减少步数」(论文 Related Work 原话)。在高维机器人控制里,要同时拿到实时推理 + 高质量动作几乎不可能——这正是把扩散策略搬上真机的最大拦路虎。

Flow Matching(FM)本来比扩散更稳、更快,但用复杂 3D 视觉做条件、还能一步出动作的 FM 策略,之前没人做出来。FlowPolicy 就是冲着这个空白去的:3D 点云条件 + 一致性流匹配 + 单步推理。

💡 核心思想:让「速度场处处一致」,于是走一步就够了

普通 Flow Matching 学一个速度场 $v_\theta(t, x_t)$,把噪声 $x_0$ 沿 ODE 积分到数据 $x_1$。问题是 ODE 轨迹是弯的,必须分多步数值积分。Consistency Flow Matching 加了一个狠约束:

沿同一条 ODE 轨迹,速度保持常数:$\nu(t, \xi_x(t)) = \nu(0, x)$。

速度处处一致 ⇒ 轨迹退化成一条直线 ⇒ 从任意时刻 $t$ 出发,都能「一步」直奔终点。训练时不是去回归一个未知的真值速度场,而是直接定义这条直线的速度,并强制相邻时刻的速度预测一致(self-consistency):

$L(\theta) = \mathbb{E}\big[\,\|f_\theta(t, x_t) - f_{\theta^-}(t+\Delta t, x_{t+\Delta t})\|_2^2 + \alpha\,\|\nu_\theta(t, x_t) - \nu_{\theta^-}(t+\Delta t, x_{t+\Delta t})\|_2^2\,\big]$

其中 $f_\theta(t, x_t) = x_t + (1-t)\cdot \nu_\theta(t, x_t)$,$\theta^-$ 是 EMA 平均的权重。

Diffusion Policy / DP3:弯曲 ODE,递归 K 步去噪 噪声 step 1 step 2 step K 动作 NFE = 10,需 10 次网络前向,~145ms FlowPolicy:直线流,单步直达(速度场处处一致) 噪声 ν(t, x) = ν(0, x) 常数速度 动作 NFE = 1,~20ms(7× 提速)
图 1:上图——DP/DP3 沿弯曲 ODE 走 K 步(NFE=10);下图——FlowPolicy 用一致性约束把 ODE 拉直,速度场处处相等,NFE=1。

关键还在于条件:上面的速度场 $\nu_\theta$ 不是无条件的,而是吃进 3D 点云 $v$ + 机器人状态 $s$ 作为条件——也就是说,同一条直线,对不同观察会指向不同的动作终点。多模态性由「不同初始噪声 → 不同终点」自然保留。

🛠️ 怎么做:DP3 骨架 + 一致性流匹配头

FlowPolicy 直接拿 DP3 当底座(保留 3D 点云编码器),把扩散头换成一致性流匹配头。流程拆成四块:

组件做什么为什么这样设计
① 3D 点云条件 单视角深度图 → 反投影成点云 → FPS 降采样(Adroit 512 点 / Metaworld 1024 点)→ 轻量 MLP 编码成 64 维紧凑 3D 表征 单视角实际部署便宜;点云比 2D 像素携带更丰富空间信息,是 DP3 已经验证过的可泛化关键
② Flow Matching 目标 学一个条件速度场 $\nu_\theta(t, a_t, s, v)$,把噪声轨迹 $a_0$ 沿直线送到目标动作 $a_1$ FM 比 DDPM/DDIM 数值更稳、训练更简单(直接回归向量场,不用估噪声)
③ 自一致性约束 对相邻时刻 $(t, t+\Delta t)$ 强制 $f_\theta$ 与 $\nu_\theta$ 一致(EMA 目标 $\theta^-$);用 两段(two-segment)训练,每段内部速度一致 一致性 ⇒ 轨迹可被拉成直线 ⇒ 单步可达;多段训练放松「全程一致」的硬要求,在采样质量与效率间取得平衡(论文 §Consistency Flow Matching)
④ 单步推理 测试时从 $a_0 \sim \mathcal{N}(0, I)$ 出发,一次前向预测 $\Delta a$ 得到动作序列(NFE=1) 没有递归采样,没有 ODE 数值积分,没有 distillation(区别于 ManiCM / Consistency Policy 需要教师模型蒸馏)
🔮 直觉:为什么「一致性」能换来「单步」?
想象一条地铁线,如果每一段的速度都相同(一致性),那你只要知道「起点 + 速度」就能直接算出终点,不用一段段地走。普通 FM 像是速度时快时慢的复杂线路,必须分段积分;FlowPolicy 用一致性损失把「速度」逼成常数,于是积分退化成乘法,一次前向就够了。多段(two-segment)则是允许线路分两段、每段内部匀速——更灵活,更好训。

📊 结果:7× 提速,成功率不降反升

Adroit(3 任务)+ Metaworld(34 任务)= 37 个任务上评测,每任务 3 个随机种子,单 RTX 2080Ti。两张核心表:

方法NFE平均推理时间备注
DP (2D, Chi 2023)10106.1 ms2D 像素基线
DP3 (3D)10145.7 msSOTA 3D 扩散策略
Simple DP31063.0 msDP3 的轻量版
FlowPolicy (本文)119.9 ms比 DP3 快 ;比 Simple DP3 快
方法NFEAdroit 平均Metaworld Easy (21)Metaworld Medium (4)Metaworld Hard (4)Metaworld Very Hard (5)总平均成功率
DP1021±850.7±6.111.0±2.55.25±2.522.0±5.035.2±5.3
AdaFlow30±849.4±6.812.0±5.05.75±4.024.0±4.835.6±6.1
Consistency Policy (CP)130±769.3±4.221.2±6.017.5±3.930.0±4.950.1±4.7
DP31067±487.3±2.244.5±8.732.7±7.739.4±9.068.7±4.7
Simple DP31058±686.8±2.342.0±6.538.7±7.535.0±11.667.4±5.0
FlowPolicy (本文)170±690.2±2.847.5±7.737.2±7.236.6±7.670.0±4.7
📌 怎么读这两张表:横着看推理时间——FlowPolicy 把 NFE 从 10 砍到 1,单步 19.9ms 进入实时区间;竖着看成功率——总平均 70.0%,比 DP3 高 1.3 个点、比 Simple DP3 高 2.6 个点(论文原话)。也就是说:快了 7 倍,质量反而更好。Adroit Pen(53 vs 46)和 Door(58 vs 56)这种高维灵巧任务上提升尤其明显。

论文还给了三条附加证据:(1) 学习曲线显示 FlowPolicy 在 500–1000 epoch 收敛,且更稳、不抖(DP3 训练中后期会上下波动);(2) 小样本消融——演示少时 FlowPolicy 仍优于 DP3,且不易撞上限;(3) 定性对比中,DP3 把笔转过头、抓不到方块,FlowPolicy 一次到位。

🌐 在领域中的位置

Diffusion Policy(2D,多步去噪) DP3(3D 点云,多步去噪) FlowPolicy(3D,一致性流,单步)⭐ flow-matching VLA action head(π0 / RDT 类方向)

FlowPolicy 的位置很清楚:它不是替代 DP3,而是把 DP3 的 3D 条干保留、把扩散头换成一致性流码头。和同样追求单步的 Consistency Policy / ManiCM 相比,它不需要 distillation(找不到稳健教师模型时这是关键优势)。它也是首个把 Consistency Flow Matching 用到「复杂 3D 视觉条件 + 机器人操作」上的工作。

❓ 常见误区

Flow Matching 和 Diffusion 是一回事吗?

不是。两者都从噪声走到数据,但数学路径不同:Diffusion 是基于 SDE 的逐步去噪(弯曲、多步),Flow Matching 是基于 ODE 的「直接回归速度场」(更直、更稳)。一致性流匹配进一步把 ODE 路径强制拉直,所以能单步完成。论文 Related Work 里专门对比了三者的数值稳定性。

一步出动作,质量不会崩吗?

不会,反而略升。原因在于一致性约束保留了多模态表达:不同初始噪声 $a_0 \sim \mathcal{N}(0, I)$ 仍会被映射到不同动作终点,所以多解任务照样能多峰输出。表 2 显示 FlowPolicy 总平均 70.0%,比 10 步的 DP3 还高 1.3 个点。

为什么用 3D 点云而不是 2D 图像?

跟随 DP3 的发现:点云携带的空间信息更丰富,几十条演示就能学到可泛化策略。表 2 里 3D 方法(DP3 / Simple DP3 / FlowPolicy)的 Metaworld Easy 都在 86–90%,而 2D 的 DP 只有 50.7%。FlowPolicy 的贡献是把 3D 条件 + 单步推理首次打通

和 Consistency Policy / ManiCM 这种单步方法比,区别在哪?

CP / ManiCM 走的是 consistency model + distillation 路线——需要一个训好的教师模型去蒸馏。FlowPolicy 不需要 distillation(论文贡献原文:「without the aid of distillation」),直接用一致性流匹配训练,这在找不到稳健教师的真实机器人任务里更实用。