FlowPolicy:用一致性流匹配,一步出动作
🎯 为什么重要:3D 扩散策略的「快与好」两难
DP3(3D Diffusion Policy)证明了:用3D 点云当条件,几十条演示就能学出可泛化的策略。但扩散有一个天生的硬伤——推理要递归采样很多步。论文里给出现状:
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 平均的权重。
关键还在于条件:上面的速度场 $\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) | 10 | 106.1 ms | 2D 像素基线 |
| DP3 (3D) | 10 | 145.7 ms | SOTA 3D 扩散策略 |
| Simple DP3 | 10 | 63.0 ms | DP3 的轻量版 |
| FlowPolicy (本文) | 1 | 19.9 ms | 比 DP3 快 7×;比 Simple DP3 快 3× |
| 方法 | NFE | Adroit 平均 | Metaworld Easy (21) | Metaworld Medium (4) | Metaworld Hard (4) | Metaworld Very Hard (5) | 总平均成功率 |
|---|---|---|---|---|---|---|---|
| DP | 10 | 21±8 | 50.7±6.1 | 11.0±2.5 | 5.25±2.5 | 22.0±5.0 | 35.2±5.3 |
| AdaFlow | — | 30±8 | 49.4±6.8 | 12.0±5.0 | 5.75±4.0 | 24.0±4.8 | 35.6±6.1 |
| Consistency Policy (CP) | 1 | 30±7 | 69.3±4.2 | 21.2±6.0 | 17.5±3.9 | 30.0±4.9 | 50.1±4.7 |
| DP3 | 10 | 67±4 | 87.3±2.2 | 44.5±8.7 | 32.7±7.7 | 39.4±9.0 | 68.7±4.7 |
| Simple DP3 | 10 | 58±6 | 86.8±2.3 | 42.0±6.5 | 38.7±7.5 | 35.0±11.6 | 67.4±5.0 |
| FlowPolicy (本文) | 1 | 70±6 | 90.2±2.8 | 47.5±7.7 | 37.2±7.2 | 36.6±7.6 | 70.0±4.7 |
论文还给了三条附加证据:(1) 学习曲线显示 FlowPolicy 在 500–1000 epoch 收敛,且更稳、不抖(DP3 训练中后期会上下波动);(2) 小样本消融——演示少时 FlowPolicy 仍优于 DP3,且不易撞上限;(3) 定性对比中,DP3 把笔转过头、抓不到方块,FlowPolicy 一次到位。
🌐 在领域中的位置
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」),直接用一致性流匹配训练,这在找不到稳健教师的真实机器人任务里更实用。