一句话定位
AdaFlow 用 rectified-flow(一阶 ODE)取代 Diffusion Policy 的 DDPM/DDIM 去噪链来做视觉运动策略,并证明了一个此前被忽视的性质——若某状态下专家动作是确定性的(方差为零),学出的 ODE 轨迹就是直线,一步 Euler 就能精确求解;据此训练一个轻量方差估计头,在推理时用 ε_t = Clip(η/σ_φ(z_t,t|s), [ε_min, 1−t]) 逐状态自适应调整 ODE 步长,让策略在确定性状态下 1 步出动作、在多模态状态下多花几步,在 Maze2D/RoboMimic/LIBERO/Push-T 上用平均 1.12–1.56 NFE 达到或超过 Diffusion Policy 用 20–100 NFE 的成功率。
背景与定位
模仿学习长期在「表达力」与「推理成本」之间取舍:朴素行为克隆(BC)一步出动作但学不了多模态行为;Diffusion Policy(Chi et al. 2023)用 DDPM/DDIM 去噪链建模多模态动作分布,已成为大规模机器人数据训练的默认方法,但每次决策要跑几十到上百次网络前向;Implicit BC 用能量模型建模但同样要多步优化搜索。
生成模型侧,Rectified Flow 与 flow matching 提供了另一条路——把生成过程建模为直线化的概率流 ODE,理论上可通过 “reflow” 蒸馏成一步生成器,但 reflow 需要额外构造大量伪造噪声-数据对再蒸馏,训练代价高且经验上会牺牲生成质量;Consistency Models 同样需要额外蒸馏阶段才能一步生成。AdaFlow 的定位是绕开蒸馏:只用最初学到的(未 reflow 的)rectified-flow ODE,靠状态相关的自适应步长求解器换取速度,命题式地证明了确定性子空间天然是直线、天然一步可解,其余部分才按需要的步数展开。范式概括为”variance-adaptive ODE solver + flow-matching policy”,是 Diffusion Policy 到”快而不失多模态”这条效率优化路线上的一个节点,后续同一实验室系还有 DPPO 从 RL 微调角度处理同一个”扩散/流策略推理慢”的问题。
模型架构
- 策略骨干:状态条件 ODE
dz_t = v_θ(z_t, t | s) dt, z_0 ~ N(0, I),速度场 v_θ 是网络对当前噪声点 z_t、时间 t、状态 s 的映射。训练目标是 rectified-flow 的最小二乘损失L(θ) = E_(s,a)~D, x0~N(0,I) [∫₀¹ ‖a − x0 − v_θ(x_t, t|s)‖² dt],其中x_t = t·a + (1−t)·x0是数据与噪声的线性插值(训练轨迹 x_t 与推理时实际模拟的 ODE 轨迹 z_t 只有在所有插值路径不相交、即”直线”时才重合)。 - 网络实现:1D toy 用 5 层全连接 MLP + SiLU,4 个 100 神经元隐层,时间编码为 100 维 cosine 变换向量与噪声/条件输入拼接。导航(Maze2D/Push-T)与操作(RoboMimic/LIBERO)任务直接复用 Diffusion Policy 的网络:Push-T/导航用其 U-Net 条件扩散架构,RoboMimic 与 LIBERO 用 “Diffusion Policy-C”(CNN/U-Net)架构;为公平对比,AdaFlow、BC、Diffusion Policy 三种方法在同一任务下保持相同骨干架构。
- 方差估计网络 σ_φ²(x,t|s):额外的小网络,输入是 v_θ 网络的中间瓶颈特征(U-Net bottleneck features),用高斯负对数似然损失
min_φ E[‖a−x0−v_θ(x_t,t|s)‖²/(2σ_φ²) + log σ_φ(x_t,t|s)] dt(式 7)单独训练;论文用 4 层 MLP + SiLU、隐层维度 512 实现,计算开销相对主模型可忽略。默认两阶段训练(先训 v_θ,再仅微调 σ_φ 头顶部几层线性层),也验证了联合训练(v_θ 与 σ_φ 同时训练)效果相当但更慢。 - 推理算法(Algorithm 1,自适应 ODE 求解):给定误差阈值 η、最小步长 ε_min,从 z_0~N(0,I)、t=0 出发,每步计算
ε_t = Clip(η/σ_φ(z_t,t|s), [ε_min, 1−t]),再做 Euler 更新z_{t+ε_t} = z_t + ε_t·v_θ(z_t,t|s),直到 t=1 输出动作 a=z_1。理论上 (Prop 3.3) 局部离散化误差的 2-Wasserstein 距离满足W2² ≤ ε_t²·E[σ²(z_t,t|s)],(Prop 3.5) 全局误差满足W2(p*_1,p_1) ≤ C·(N_ada/N_max)·ε_min,即自适应步数 N_ada 越少于最坏情形 N_max=1/ε_min,误差界越紧。 - 动作 chunk 配置(Table 7,Maze 与 RoboMimic/LIBERO 一致):动作预测视界 16 步、观测输入 2 帧、动作执行视界 8 步,与 Diffusion Policy 默认设置相同;观测图像分辨率 76×76。
数据
AdaFlow 是算法/推理框架论文,不引入新数据集,全部复用公开仿真基准的专家演示:
- 1D toy 回归:合成数据,y=0 当 x≤0(确定性)、y=±x 当 x>0(双模态),训练/测试均为 x∈[−5,5] 均匀采样共 10000 个一维样本。
- Maze2D 导航(D4RL,MuJoCo):4 个迷宫环境(2 个单任务:起终点固定;2 个多任务:起终点可变),演示由一个基于 Q-learning 的路径规划器生成(离散化网格 + 计算路点 + 加随机扰动保证多样性),Figure 7 标注每个迷宫可视化 100 条演示轨迹。
- RoboMimic(Lift/Can/Square/Transport/ToolHang):沿用 Diffusion Policy 原论文的实验设置(含 ph/proficient-human 与 mh/multi-human 两档演示数据),论文未在正文重新给出具体演示条数;由于从零训练扩散模型在 RoboMimic 上”极耗资源,训练+评测一个 Transport 任务要超过一个月 GPU 时,ToolHang 等更复杂任务可达 3 倍以上”,作者改为直接从 Diffusion Policy 开源的预训练 checkpoint 出发,再对基线与 AdaFlow 微调 500 epoch 后比较性能。
- Push-T:沿用 Diffusion Policy 原论文的任务设置与演示数据。
- LIBERO:从 LIBERO-90/100 数据中选取 6 个 Kitchen 子任务(开抽屉、三种”碗放盘子”变体、叠碗等,见 Figure 4),训练数据按 LIBERO 论文设置转换、提取 RGB 图像(提供
convert_libero_data.sh转换脚本)。
未见跨任务的统一数据混合比例(mixture)或课程设计——各任务数据都是各自基准的原始演示,AdaFlow 不做额外数据增广或跨任务共训。
训练方法
- 两阶段训练:① 用式 (2) 的 rectified-flow 回归损失训练速度场 v_θ(等价于标准 flow-matching/行为克隆的多模态版本);② 固定 v_θ,用式 (7) 的高斯 NLL 只微调方差估计头 σ_φ 的少数线性层(快,因为只需在已训练好的 backbone 顶部加轻量头)。消融显示联合训练(v_θ、σ_φ 同时端到端优化)性能相当(Maze1-4 上 Separate 0.98/1.00/0.96/0.86 vs Joint 1.00/1.00/0.96/0.88,见 Table 6),但联合训练更耗算力/时间,故推荐分离训练。
- 推理阶段执行:Algorithm 1 的自适应步长 ODE 求解(细节见”模型架构”),核心超参是误差阈值 η 与最小步长 ε_min,用来在”步数少”和”离散化误差小”之间权衡;论文验证 AdaFlow 对 η 取值范围鲁棒(Figure 6)。
- 关键超参(Table 7,按任务组):
- 1D toy:LR 1e-2、Adam(β1=0.9,β2=0.999)、batch 1000、AdaFlow/BC 训练 200 epoch(Diffusion Policy 训练 400 epoch)、cosine 学习率调度;「训练时间步数」一栏 AdaFlow/BC 均未披露具体数值(”-“,因 rectified flow 训练是连续时间,无离散步数概念),仅”推理时间步数”一栏给出 AdaFlow=100(RF);对照 Diffusion Policy 训练/推理均为 100 步 DDPM;AdaFlow 用 η=0.1, ε_min=5。
- Maze:LR 1e-4、AdamW(β1=0.9,β2=0.999,wd=1e-6)、batch 256、200 epoch、EMA 衰减 0.9999;训练/推理时间步数两栏 AdaFlow 均未披露(”-“,见上),对照 Diffusion Policy 训练/推理均为 20 步 DDPM;AdaFlow 用 η=1.5, ε_min=5(对应主表 Table 2 的 NFE=1.56 结果;附录 Table 8 额外给出 η=2.5 时 NFE=1.12)。
- RoboMimic & LIBERO:LR 1e-4、AdamW(β1=0.95,β2=0.999,wd=1e-6)、batch 64、LIBERO 500 epoch / RoboMimic 3000 epoch、EMA 0.9999;训练/推理时间步数两栏 AdaFlow 均未披露(”-”),对照 Diffusion Policy 训练/推理均为 100 步 DDPM;AdaFlow 用 η=1.0, ε_min=10。
- 三组任务动作预测视界均为 16、观测输入 2 帧、动作执行视界 8(Maze 与 RoboMimic/LIBERO 一致,1D toy 无此维度)。
- 基线实现:BC 用 MSE 回归;DDPM/DDIM 严格复用 Diffusion Policy 原论文实现;标准 Rectified Flow(1-RF/2-RF)作为对照,2-RF 需要额外 reflow/蒸馏阶段(用 1-RF 模拟生成伪数据对再重新训练)。
Infra(训练 / 推理工程)
- 训练硬件:论文未披露具体 GPU 型号、数量或总训练 GPU 时(除了引用 Diffusion Policy 原始训练在 RoboMimic 上”训练+评测一个 Transport 任务超过一个月 GPU 时,ToolHang 类任务可达 3 倍以上”这一背景说明,用来解释为何改用预训练 checkpoint 起步微调 500 epoch,而非从零训练)。
- 精度:未披露是否使用混合精度训练。
- 推理效率(核心卖点,以 NFE = Number of Function Evaluations 衡量,而非墙钟时间或 FPS):
- Maze2D:AdaFlow 平均 1.56 NFE(η=1.5)或 1.12 NFE(η=2.5,附录 Table 8);Diffusion Policy 需要 NFE>5 才有多样行为,NFE=20 时成功率仍不及 AdaFlow。
- RoboMimic + Push-T:AdaFlow 平均 1.17 NFE;Diffusion Policy 在 NFE=100 才有对应精度,NFE=1 时多任务成功率归零。
- LIBERO:AdaFlow 平均 1.27 NFE;Diffusion Policy NFE=1 全任务成功率 0.00,NFE=20 才追平/略低于 AdaFlow。
- 整体宣称”比基线少 10 倍推理步数达到相当或更优性能”。论文未披露实际推理延迟(ms)、控制频率(Hz)或边缘硬件部署数据——全部实验在仿真基准中完成,没有真实机器人部署。
评测 benchmark
四组实验、均以成功率(Success Rate)与 NFE(推理步数)联合报告:
Maze2D 导航(D4RL, MuJoCo, Table 2, 单位成功率):
| Method | NFE↓ | Maze1 | Maze2 | Maze3 | Maze4 |
|---|---|---|---|---|---|
| Rectified Flow (需 reflow) | 1 | 0.82 | 1.00 | 1.00 | 0.80 |
| BC | 1 | 1.00 | 1.00 | 0.92 | 0.76 |
| BC-GMM | 1 | 0.84 | 1.00 | 0.88 | 0.72 |
| Diffusion Policy | 1 | 0.00 | 0.32 | 0.16 | 0.08 |
| Diffusion Policy | 5 | 0.58 | 1.00 | 0.84 | 0.76 |
| Diffusion Policy | 20 | 0.62 | 0.98 | 0.84 | 0.82 |
| AdaFlow | 1.56 | 0.98 | 1.00 | 0.96 | 0.86 |
RoboMimic + Push-T(Table 3,ph=proficient-human 演示,mh=multi-human 演示):
| Method | NFE↓ | Lift-ph | Lift-mh | Can-ph | Can-mh | Square-ph | Square-mh | Transport-ph | Transport-mh | ToolHang-ph | Push-T |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Rectified Flow (需 reflow) | 1 | 1.00 | 1.00 | 0.94 | 1.00 | 0.94 | 0.92 | 0.90 | 0.76 | 0.88 | 0.92 |
| LSTM-GMM | 1 | 1.00 | 1.00 | 1.00 | 1.00 | 0.95 | 0.86 | 0.76 | 0.62 | 0.67 | 0.69 |
| IBC | 1 | 0.79 | 0.15 | 0.00 | 0.01 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.75 |
| BET | 1 | 1.00 | 1.00 | 1.00 | 1.00 | 0.76 | 0.68 | 0.38 | 0.21 | 0.58 | – |
| Diffusion Policy | 1 | 0.04 | 0.04 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.04 |
| Diffusion Policy | 2 | 0.64 | 0.98 | 0.52 | 0.66 | 0.56 | 0.12 | 0.84 | 0.68 | 0.68 | 0.34 |
| Diffusion Policy | 100 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 0.97 | 0.90 | 0.72 | 0.90 | 0.91 |
| AdaFlow | 1.17 | 1.00 | 1.00 | 1.00 | 0.96 | 0.98 | 0.96 | 0.92 | 0.80 | 0.88 | 0.96 |
LIBERO(6 个 Kitchen 子任务,Table 4):
| Method | NFE↓ | Task1 | Task2 | Task3 | Task4 | Task5 | Task6 | Average |
|---|---|---|---|---|---|---|---|---|
| Rectified Flow (需 reflow) | 1 | 0.90 | 0.82 | 0.98 | 0.82 | 0.82 | 0.96 | 0.88 |
| Diffusion Policy | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| Diffusion Policy | 2 | 0.00 | 0.58 | 0.36 | 0.66 | 0.36 | 0.32 | 0.38 |
| Diffusion Policy | 20 | 0.94 | 0.84 | 0.98 | 0.78 | 0.82 | 0.92 | 0.88 |
| AdaFlow | 1.27 | 0.98 | 0.80 | 0.98 | 0.82 | 0.90 | 0.96 | 0.91 |
消融:
- 方差估计的必要性(Table 5,Maze1-4,Euler 定步长采样对照):无方差估计 0.78/1.00/0.92/0.80 vs AdaFlow 有方差估计 0.98/1.00/0.96/0.86——方差网络既加速又提升成功率。
- 分离 vs 联合训练(Table 6,Maze1-4):分离训练 0.98/1.00/0.96/0.86 vs 联合训练 1.00/1.00/0.96/0.88——性能相当,分离训练更快。
- 与标准 Rectified Flow / 2-RF 对比(Table 8,Maze1-4):1-RF(NFE=1) 1.00/1.00/0.98/0.80;1-RF(NFE=5) 0.82/1.00/0.94/0.80;2-RF(reflow, NFE=1) 0.82/1.00/1.00/0.80;AdaFlow(η=1.5, NFE=1.56) 0.98/1.00/0.96/0.86;AdaFlow(η=2.5, NFE=1.12) 1.00/1.00/0.94/0.78——1-RF 在 NFE=1 时无法生成多样行为(Figure 9 可视化轨迹显示其退化为单一路径),2-RF 需要昂贵蒸馏且仍非全面占优,AdaFlow 在接近 1 步的开销下取得更全面的多样性与成功率。
- 训练/推理效率曲线(Figure 6):AdaFlow 在极低 NFE 下即维持高成功率,Diffusion Policy 通常要 NFE>3 才表现良好;训练效率上 AdaFlow 的 success-rate-vs-epoch 曲线下面积优于 Diffusion Policy(学习更快),BC 因最简单收敛最快但多样性差。
- 对 η 的鲁棒性:不同 η 取值下 AdaFlow 性能稳定(Figure 6)。
创新点与影响
- 核心理论贡献:证明并利用了 rectified-flow 此前被忽视的性质——状态条件确定性越强,ODE 轨迹越直,直至完全确定时退化为单步可解的直线(Proposition 3.1/3.2),并把这一条件方差(Eq. 6)与离散化误差的 2-Wasserstein 上界联系起来(Proposition 3.3/3.5),据此推出可解释、有理论误差保证的自适应步长公式,而不是像标准自适应 Runge-Kutta 那样通用但不利用流本身结构。
- 与 reflow/蒸馏路线的区别:不需要额外的 reflow(Rectified Flow 二次训练)或一致性蒸馏(Consistency Models)阶段就能获得接近一步生成的效果,训练与推理成本都接近普通行为克隆。
- 实验层面的一致结论:在 4 类任务(1D 回归、2D 迷宫导航、RoboMimic 五任务、LIBERO 六任务)上,AdaFlow 用平均 1.12–1.56 NFE 达到或超过 Diffusion Policy 用 20–100 NFE 才能达到的成功率,同时优于 BC、BC-GMM、LSTM-GMM、IBC、BET、标准 1-/2-Rectified Flow 等基线。
- 作者自陈局限:论文明确指出本工作聚焦离线模仿学习,“AdaFlow 理论上可扩展到离线强化学习,但留作未来工作”;未在真实机器人上验证(全部实验在仿真基准完成),也未披露训练所用具体 GPU 资源规模。
原始链接
- 论文(arXiv abs,NeurIPS 2024): https://arxiv.org/abs/2402.04292
- 论文 PDF(v2, 2024-11-22): https://arxiv.org/pdf/2402.04292
- 代码(GitHub): https://github.com/hxixixh/AdaFlow
一手源存档(sources/)
- adaflow—github-readme — GitHub README(hxixixh/AdaFlow,含环境搭建、LIBERO 数据转换、训练/评测命令示例)
- arXiv 全文 PDF(2402.04292,arXiv 原文 PDF,不入 git):见上「原始链接」