【学习笔记】训练时动作条件化:一种更高效的机器人实时控制方案
本文提出了一种创新方法,通过将推理延迟的模拟过程前置到训练阶段,解决了大型视觉-语言-动作模型(VLA)在机器人实时控制中的延迟问题。该方法通过修改训练数据的构造方式(差异化时间步嵌入、真值注入和掩码损失函数),使模型在训练时就能学会处理延迟,从而在推理阶段无需额外计算开销。实验表明,该方法不仅显著降低了端到端延迟(从135ms降至108ms),还提高了高延迟场景下的鲁棒性。尽管存在灵活性受限等局
大型视觉-语言-动作模型(VLA)让机器人拥有了“大脑”,但它们庞大的体积导致推理延迟,这成了机器人实现流畅、实时动作的最大掣肘。Real-Time Chunking (RTC) 提出了一种异步预测与“填补”的巧思,但推理时的修补计算却引入了新的开销。本文解读的这篇论文提出了一种极其优雅的解决方案:将推理延迟的模拟过程前置到训练阶段,无需改变模型架构,仅用几行代码的改动,便实现了更高效、更鲁棒的实时控制。
1. 背景:为什么机器人不能像聊天机器人那样“卡顿”?
在数字世界中,ChatGPT 思考 2 秒钟再回复一句话,用户可能毫无察觉。但在物理世界中,一个正在组装盒子的机械臂如果每执行一步都要“停下来想一想”(哪怕只是 100 毫秒),就会导致动作僵硬、轨迹不顺,甚至任务失败。
这就是具身智能与非具身智能的本质区别。为了让越来越大的 VLA 模型(如 π0.6、RT-2)能够以 50Hz 甚至更高的频率控制机器人,业界提出了 Action Chunking(动作分块) 策略:模型一次预测未来 N 步的动作序列(称为一个 Action Chunk),机器人一边执行这些动作,一边去计算下一个 Chunk。
但这里有个时间差问题:如果执行到一半,下一个 Chunk 还没算完怎么办?新旧 Chunk 之间的衔接如何才能不“抽搐”?
2. 现有方案的困局:RTC 的巧思与“隐形成本”
Real-Time Chunking (RTC) 是解决上述问题的 SOTA 方法之一。它的核心机制如图 1 所示:
- 异步执行:机器人执行上一个 Chunk 的最后
d步时,模型开始推理下一个 Chunk。 - 动作填补 (Inpainting):为了让新旧 Chunk 无缝衔接,新生成的 Chunk 必须以前面重叠部分的动作作为条件(Prefix Conditioning)。
RTC 的痛点在于其实现方式:它使用了 伪逆引导 (Pseudoinverse Guidance)。这是一种推理时技术,能在不重新训练模型的情况下,强行让生成的动作符合给定的前缀。但代价是——在每一个去噪步中都要计算向量-雅可比积(VJP),这需要额外的反向传播计算。
结论:为了解决延迟问题而生的 RTC,其解决方案本身又引入了不可忽视的计算延迟(Overhead),这让它的实时性打了折扣。
3. 核心创新:将“填补”压力从推理端转移至训练端
这篇论文《Training-Time Action Conditioning for Efficient Real-Time Chunking》的核心洞察非常直接:
既然我们在推理时无论如何都要面对延迟
d,为什么不直接在训练时就教会模型如何处理这个延迟呢?
作者提出的 训练时动作条件化 (Training-Time Action Conditioning) 抛弃了推理时的伪逆引导,通过修改训练数据的构造方式,让模型天然学会“给定前 d 步,补全剩余 H-d 步”的能力。
3.1 具体实现三要素(仅需几行代码改动)
论文指出,对于标准的 Diffusion Transformer 架构(如 π0.6 的动作专家),实现该方案只需做三个微小改动(详见 Algorithm 1):
-
分化的时间步嵌入:
在扩散模型(或流匹配模型)中,Time Stepτ通常对所有 Token 是统一的。在训练时,对于前缀部分(已知动作),强制将τ设为1.0(代表无噪声的真值);对于后缀部分(待预测动作),保持正常的采样噪声τ。架构影响:仅需让 AdaLN 的 Scale/Shift 参数支持按 Token 变化,参数量零增长。
-
真值注入:
对于前缀部分的输入 Token,不添加噪声,直接喂入 Ground-Truth 动作。 -
掩码损失函数:
计算 Loss 时,只计算后缀部分的预测误差,忽略前缀部分(因为前缀已经是真值了,不需要模型去预测)。
3.2 为什么这比推理时填补更好?
- 零推理开销:推理时只需要做标准的前向传播(Forward Pass),不需要 VJP 计算。论文数据显示,端到端延迟从 135ms 降低到了 108ms。
- 更强的鲁棒性:在模拟器中,当推理延迟
d较大时(例如d >= 2),训练时 RTC 的表现显著优于推理时 RTC。这是因为随着前缀变长,推理时引导算法的线性近似误差会累积,而训练时模型是通过真实数据分布学会的填补,不存在近似误差。
4. 实验数据解读:又快又稳
模拟实验(Kinetix Benchmark)
下图展示了不同推理延迟下的成功率对比:
- 低延迟场景 (d=0,1):两者表现接近,训练时 RTC 略低一点点(因为训练时部分算力用于学习大延迟填补)。
- 高延迟场景 (d>=2):训练时 RTC 拉开明显差距,成功率下降曲线更为平缓,证明其对网络波动和计算高峰的容忍度更高。
真实世界实验(做咖啡 & 折纸盒)
团队在真实的机械臂上使用 π0.6 模型进行了微调测试,任务包括制作浓缩咖啡和组装纸盒——这都是需要极高精度和连续性的长程任务。
- 成功率:训练时 RTC 与推理时 RTC 持平。
- 速度:训练时 RTC 任务执行时间显著短于同步推理基线,且由于单次推理耗时更短,整体运动更加流畅。
5. 硬核解析:代码层面的魔法(Algorithm 1 解读)
论文最精华的部分其实藏在 Page 6 的伪代码中。我们逐段拆解训练损失的计算逻辑:
# 核心改动点 1: 生成差异化时间步
# time 原本是 shape (b,) 的向量,现在变成 (b, action_horizon)
prefix_mask = jnp.arange(H)[None, :] < delay[:, None]
time = jnp.where(prefix_mask, 1.0, time[:, None])
# 核心改动点 2: 噪声只加在后缀上
x_t = time * action_chunk + (1 - time) * noise
# 解读:当 time=1.0 时,x_t = action_chunk (真值)
# 当 time<1.0 时,x_t = 混合了噪声的待预测值
# 核心改动点 3: 掩码损失
postfix_mask = jnp.logical_not(prefix_mask)
loss = loss * postfix_mask # 前缀部分不参与梯度回传
推理时的对应逻辑:
在生成循环的每一步,强制将输入 Tensor 的前 d 个位置替换为 action_prefix,然后让模型做一次标准去噪。这完全复用了标准扩散采样循环,无需任何额外梯度计算。
6. 局限性与展望
尽管该方法优势明显,作者也坦诚了其局限性:
- 灵活性丧失:无法像推理时 RTC 那样使用 Soft Masking(即对重叠部分赋予指数衰减权重,而不是硬切一刀)。
- 延迟分布依赖:训练时采样的延迟分布必须覆盖实际部署时的延迟范围。如果实际运行时网络突然变得极差(延迟远超训练时设定的最大值),模型表现会下降。
未来方向:探索一种既能享受训练时效率红利,又能保留推理时灵活性的混合架构。
7. 总结:机器人控制中“少即是多”的哲学
这篇论文再次证明了一个工程学真理:最好的优化往往不是增加复杂的模块,而是改变问题定义的方式。通过将“推理时填补”转化为“训练时条件生成”,作者用极小的代码修改代价(甚至不需要改模型结构),换取了可观的推理加速和鲁棒性提升。
对于正在从事 VLA 模型部署、人形机器人实时控制的工程师来说,Training-Time Action Conditioning 无疑是目前最值得尝试的 Drop-in Replacement 方案。
参考文献:
- Black, K., Ren, A. Z., Equi, M., & Levine, S. (2025). Training-Time Action Conditioning for Efficient Real-Time Chunking. Physical Intelligence.
- Black, K., et al. (2025). Real-Time Execution of Action Chunking Flow Policies.
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)