一句话定位

Streaming Diffusion Policy(SDP)把动作序列改造成一个”持久化动作缓冲区”——缓冲区里每个未来动作携带不同的噪声等级(第一个动作干净可执行,越往后噪声越大),每次新观测只需对缓冲区做少量步去噪、弹出已执行的动作、在末尾补一段纯噪声,就能低成本地滚动生成下一个动作,从而在不做任何蒸馏训练的前提下把 Diffusion Policy 的采样延迟大幅压低,在 Robomimic/Push-T 仿真与真实 Push-T 任务上和蒸馏路线 Consistency Policy 打平甚至更优。

背景与定位

Diffusion Policy(Chi et al. 2023)用 DDPM 对动作序列做条件扩散生成,在模仿学习上取得 SOTA,但每次决策都要把整段动作序列从纯噪声完整去噪(典型 100 步),只用第一个(或前几个)动作就丢弃其余步骤,代价高、还限制了策略只能用于准静态任务。此前加速扩散策略的主流路线是蒸馏:Consistency Policy(Prasad et al. 2024)把 Consistency Trajectory Model 蒸馏引入视觉运动策略,1-3 步出动作;但蒸馏训练成本高、且会牺牲动作分布的多模态性与多样性。

本文换一个思路:机器人执行只需要”下一步要执行的动作”是干净的,其余未来动作此刻并不需要完全去噪。借鉴动作/运动生成领域的 Temporally Entangled Diffusion(TEDi,Zhang et al., SIGGRAPH 2024)与 Rolling Diffusion(Ruhe et al. 2024)——两者都用”滚动窗口 + 沿窗口线性递增噪声”的方式生成无限长序列(TEDi 用于角色动作合成、Rolling Diffusion 用于视频/流体预测)——SDP 把这一机制搬到闭环机器人策略:给动作缓冲区中每个动作分配独立且递增的噪声等级,每步只需对缓冲区做 N/h 步去噪(h 为缓冲区里的分块数)即可弹出一个干净动作块并补齐新噪声,从而不需要蒸馏、不需要教师网络就能获得数量级的加速。同期工作 Diffusion Forcing(Chen et al. 2024,与本文共享二作 Yilun Du)同样探索”序列中每个 token 独立噪声等级”这一范式,但落地场景是视频预测/规划/决策,而非本文聚焦的闭环机器人视觉运动策略。本文之外,AR-Diffusion(Wu et al. 2023)把类似的线性递增噪声思路用于语言建模。

模型架构

  • 策略骨干:直接沿用 Diffusion Policy 的 1D 卷积 U-Net(Chi et al. 2023 的实现),未引入任何 VLM 或视觉-语言预训练组件;仅修改了扩散步编码器(diffusion step encoder),使其能为缓冲区里的每个元素接受各自独立的扩散步 k_i,而不是像原版那样整段序列共用一个扩散步。
  • 持久化动作缓冲区:给定观测 O_t,标准 Diffusion Policy 建模 p(A_t | O_t),其中 A_t = [a_t, …, a_{t+T_a}] 整体在同一噪声等级下联合去噪。SDP 则为缓冲区里第 i 个动作分配独立噪声等级 k_i,k = [k_0, …, k_{T_a-1}],去噪更新式为 A_t^{k-1} ← α_k(A_t^k − γ_k·ε_θ(A_t^k; O_t, k) + N(0, σ_k²))(式 2),α_k、γ_k、σ_k 均为按各元素噪声等级构造的向量。缓冲区起始时第 0 个动作 k_0=0(干净),最后一个动作 k_{T_a-1}=N(近乎纯噪声)。
  • 分块(chunking)机制:为兼顾高控制频率,缓冲区被划分为 h 个长度为 T_b 的动作块,一次可以生成/执行 T_b 个动作(借鉴 ALOHA/ACT 的 action chunking,引文 [36]),块内动作共享一次去噪批处理,允许在生成下一块的同时先执行当前块。
  • 快速滚动采样(Algorithm 1):缓冲区各块噪声等级为 [N/h, 2N/h, …, N];对整段缓冲区跑 N/h 步去噪后,第一块噪声等级降为 0(干净),其余块相应降低一档;弹出干净的第一块交给环境执行,缓冲区末尾追加一个全新的纯噪声块(噪声等级 N),使缓冲区噪声等级恢复到初始的 [N/h, …, N] 形态,循环往复。每次决策只需 N/h 步去噪(而非标准做法的 N 步),加速比与分块数 h 成反比。
  • 缓冲区初始化(三种 action primer,仅用于 rollout 起始时刻):① Denoise——用初始观测 O_0 完整去噪出一条干净动作序列作为起点(引入额外去噪开销);② Constant——重复初始动作 a_0(假设 a_0 可从 O_0 直接读出,并非普遍成立);③ Zero——直接用零张量做起点。三者叠加同样的递增噪声后再启动滚动采样。
  • 训练时的噪声破坏(noise corruption)方案:在给定动作序列上,允许每个块使用独立方差的噪声 ε^k = [ε_{k_1}, …, ε_{k_h}]^T,对应损失 L = MSE(ε^k, ε_θ(A_t+ε^k; O_t, k))(式 8),k 可按四种方案采样:Constant(与 Diffusion Policy 相同,全序列同一噪声)、Linearly increasing(沿序列线性递增,不分块)、Independent(k_i ~ U[1,…,N] 逐步独立采样)、Chunk-wise increasing(按块线性递增,与采样阶段的分块去噪严格对应)。

数据

论文不引入新数据集,全部复用公开仿真基准与自采真实数据:

  • Push-T(state-based,用于消融):Chi et al. 2023 提出的 T 型块推动任务,状态观测。
  • Push-T(image-based,主实验):图像 + 本体感受观测,训练 1000 epoch。
  • Robomimic(Mandlekar et al. 2022):Lift / Can / Square / Transport(+ Tool-hang,仅训练未列入主结果表),采用”真实图像观测变体”(policy 只看图像与本体感受,不看底层状态);Lift/Can/Square 训练 1500 epoch,Transport/Tool-hang 训练 500 epoch。
  • 真实世界 Push-T:自采 134 条演示,训练 600 epoch;评测时用固定随机种子的复位脚本重置 T 块初始位置,保证所有方法(Diffusion Policy / Consistency Policy / SDP)在同一组随机初始化上做 20 次 rollout 的公平比较。
  • 未见跨任务数据混合或课程设计——各任务独立训练评测;不涉及仿真到真实的迁移(真实世界数据全部来自真实演示,非 sim-to-real);无跨本体(cross-embodiment)设置。

训练方法

  • 单阶段训练,无蒸馏、无教师网络:这是与 Consistency Policy 最核心的区别——SDP 只是把 Diffusion Policy 的训练目标从”整段序列同一噪声”换成”逐块/逐元素独立噪声”(式 8),仍是标准 DDPM 噪声预测损失,不需要额外蒸馏阶段。
  • 噪声破坏方案消融(state-based Push-T,100 步 DDPM,训 1000 epoch):Chunk-wise 单独使用得分 0.86,Independent 得分 0.85,二者均明显优于 Linear(0.36)与 Constant(0.29)单独使用;混合方案中 67% Independent + 33% Linear 得 0.87,67% Independent + 33% Chunk-wise 得 0.89,最优为 80% Chunk-wise + 20% Constant,得分 0.90,论文选定该组合用于后续所有实验。
  • 缓冲区初始化方案消融:Zero / Constant / Denoise 三者平均得分同为 0.90,但 Denoise 因需要额外完整去噪,平均预测时间从 0.30s 升到 0.58s;Constant 依赖”初始动作可从观测中直接读出”这一假设在一般任务中不成立;因此论文选定 Zero 作为默认缓冲区初始化方案。
  • 主实验超参:默认 DDPM 训练与采样步数 N=100;Robomimic/Push-T 仿真实验中 Diffusion Policy 与 Consistency Policy 用分块长度 8、预测视野 15,SDP 把视野增至 19、缓冲区内容纳两个分块(h=2),仍比视野 15 的基线更快(采样时间从 2.4s 降到 1.8s);真实世界实验改用 DDIM 16 步调度器(Diffusion Policy 与 SDP 均如此),SDP 缓冲区同样保持两个分块。Consistency Policy 的教师与学生网络均训练与其他方法相同的 epoch 数,即总训练时间加倍。

Infra(训练 / 推理工程)

  • 训练硬件:论文正文未披露训练所用 GPU 型号、数量或总训练 GPU 时;官方 GitHub 仅在”多种子训练”示例命令中给出 ray start --head --num-gpus=3(Ray + SLURM 集群,用于并行跑多个随机种子,而非单次训练所需算力的披露)。
  • 推理延迟(仿真,Robomimic,Table 对应 IV-B/IV-C 描述):视野 15 下 Diffusion Policy/Consistency Policy 基线采样一次约 2.4s;SDP 把视野增至 19(缓冲区 2 个分块)后采样一次约 1.8s,即视野更长但更快。论文进一步做了”采样时间 vs. 缓冲区分块数”的扫描实验(Fig. 4),确认 SDP 采样时间随缓冲区(分块数 h)增大单调下降(每次决策去噪步数为 N/h),而 Diffusion Policy 采样时间保持恒定;作者指出该加速规律同样适用于 DDIM 等其他扩散调度器,但未给出该扫描实验的具体绝对时间数值。
  • 推理延迟(真实世界 Push-T,20 次 rollout 均值):Diffusion Policy 0.13s/次;Consistency Policy 0.01s/次;SDP 0.07s/次
  • 真实机器人部署方式:由于 SDP 下一分块的去噪必须等前一分块动作全部执行完,真实机器人上采用同步(synchronous)rollout——去噪期间机械臂暂停运动;作者称因 SDP 单次采样耗时短,暂停对运动流畅度影响不明显,但这仍是一个未解决的架构限制(未做到边执行边异步去噪)。
  • 控制频率 / 具体推理硬件(GPU 型号等)未披露。

评测 benchmark

噪声破坏方案消融(state-based Push-T,得分为平均分):

方案得分
Chunk-wise (CW)0.86
Linear0.36
Independent0.85
Constant0.29
67% Independent + 33% Linear0.87
67% Independent + 33% CW0.89
80% CW + 20% Constant(采用)0.90

缓冲区初始化消融(state-based Push-T):

方案得分平均预测时间
Zero(采用)0.900.30s
Constant0.900.30s
Denoise0.900.58s

Robomimic + Push-T(image-based,成功率,格式为 Max/Avg——据 GitHub README,Max 取 max/test_mean_score,Avg 取 k_min_train_loss/test_mean_score):

任务Diffusion PolicyConsistency Policy(3 步)SDP
Push-T0.88/0.840.75/0.680.84/0.79
Lift1.00/1.001.00/1.001.00/1.00
Can1.00/0.980.97/0.941.00/0.99
Square0.98/0.930.95/0.880.99/0.93
Transport1.00/0.880.89/0.710.97/0.88

SDP 在多数任务上与 Diffusion Policy 表现相当,在难度更高的 Transport(双臂递交锤子)上明显优于 Consistency Policy(0.97/0.88 vs. 0.89/0.71),且 Consistency Policy 需要教师+学生两倍训练时间。

真实世界 Push-T(20 次 rollout,固定随机种子复位):

方法Coverage 成功率采样时间
Diffusion Policy0.500.13s
Consistency Policy0.400.01s
SDP(本文)0.850.07s

论文指出 Diffusion Policy 与 Consistency Policy 在真实 Push-T 上最常见的失败模式是陷入小幅振荡运动(因持续对整段动作轨迹重新规划,而演示数据中又包含大量为追求完美结果的修正动作),而 SDP 因维持一个跨观测持续存在的动作缓冲区,较少出现该问题——这也是其真实世界成功率显著更高的主要原因。

创新点与影响

  • 把动作/运动生成领域的”滚动噪声缓冲区”思路(TEDi、Rolling Diffusion 的核心机制)系统地适配到闭环、观测条件化的机器人视觉运动策略上,提出对应的缓冲区初始化方案与训练期噪声破坏方案,且完全不需要蒸馏训练、不需要教师网络——这是与同期主流加速路线 Consistency Policy 的关键区别:SDP 训练与 Diffusion Policy 一样简单(单阶段、标准 DDPM 目标),却能获得可比的推理加速。
  • 揭示”训练期噪声破坏方案要与采样期分块去噪方案对应”这一关键设计点:单独用 Linear 或 Constant 破坏方案训练效果很差(得分仅 0.36/0.29),必须匹配采样阶段实际使用的按块递增噪声方案(Chunk-wise,配合少量 Constant 数据增强)才能训练出高性能模型。
  • 真实世界实验表明 SDP 的持久化缓冲区还带来一个额外好处:减少了因不断整段重规划而导致的振荡型失败模式,在真实 Push-T 上成功率(0.85)远高于 Diffusion Policy(0.50)与 Consistency Policy(0.40),且比 Diffusion Policy 快约 2 倍。
  • 作者自陈局限:① SDP 存在较大的超参数空间(分块长度、缓冲区长度、动作 primer 选择),论文只找到一组在多数任务上表现好的组合,其他组合可能在特定任务上更优;② 缓冲区越长采样越快,但过长的缓冲区会损害性能,需要快速反应的任务可能需要更短缓冲区,这是一个需要权衡的超参而非自动求解的量;③ 尽管相比基线更不容易出现振荡型失败,但该问题并未被完全消除,仍是开放的研究方向;④ 真实机器人部署时下一分块的去噪必须等待上一分块动作执行完毕,导致同步式(而非真正异步流水线式)的 rollout,未做到去噪与执行的完全并行。

原始链接

一手源存档(sources/)