任务时程:为什么长任务会呈指数级变难

把三十个可靠步骤串起来,任务仍会五次里失败四次。本文讲任务时程问题、长时程误差为何连乘放大,以及用什么数据来治它。

阅读约 6 分钟

假设你的策略在单个步骤上一百次里能成功九十五次。听起来像是一台可以部署的机器人了。现在把三十个这样的步骤串成一个任务,比如清空洗碗机,然后做乘法:0.95 的三十次方大约等于 0.21。同一台可靠的机器人,如今把整件事做完的概率,勉强只有五分之一。

这种崩塌就是任务时程(task horizon)问题,也是一段精修过的十秒示范很少能在三分钟家务面前存活下来的原因。机器人本身没有变差,是算术造成了伤害。

时程的算术

如果各步骤相互独立,整个任务的成功率就是各步骤成功率的连乘,而乘法毫不留情。换一台更强的机器人,单步可靠度高达 99%:铺开到一百步,0.99 的一百次方约为 0.37。哪怕单步近乎完美,只要时程足够长,整体也会衰减到抛硬币甚至更糟。这里没有任何杜撰的统计,只是把乘法摊开来看而已。任务越长,这条指数曲线跌得越陡。

这也是为什么一段示范集锦可以不含一帧造假,却依然骗人。一段剪得干干净净、只播一次的十秒抓取,几乎无法告诉你:当同一个技能要在一个班次里重复四百次时,这台机器人会怎样。

时程也不只是数步数那么简单。一个更长的任务,通常会经过更多不同的情境、需要在“脑中”保存更多状态,也给了世界更多在机器人动作途中发生变化的机会。这些都抬高了“某一步落到训练覆盖之外”的概率。所以光数步数其实低估了难度:诚实的时程,是“可能出错的独立环节”的数量,而它增长得比步数还快。

为什么实际比乘法还要糟

“各步骤独立”其实是一个偏乐观的假设。现实中,一个小误差会把机器人带到它训练时从未见过的状态,这就是协变量偏移(covariate shift)。一旦进入陌生地带,单步成功率本身也会下降,于是误差不再独立,而是相互关联、自我放大:一次早期的踉跄,就可能拖垮之后的一切。这也是为什么从 NVIDIA GEAR Lab researcharXiv Robotics 上源源不断的工作,都把长时程可靠性当成核心难题,而不是一个可以事后打补丁的小毛病。

人类会替自己把这个问题藏起来。在实验室里,操作者会悄悄把物体拨回可及范围、扶正倒下的零件、或者把跑歪的一次重来一遍,而这些都不会出现在集锦里。真实地面上的机器人得不到这种照顾。它需要的每一次恢复,都必须是它已经学会的,这意味着得先有人把那次恢复当成数据采下来。

缩短有效时程的几种办法

既然长度本身就是敌人,多数实用方案的思路就归结为同一个:削减机器人必须独立做对的决策数量。

缩短机器人任务有效时程的策略
策略核心思路所需的数据
技能基元与分层用可复用的短技能拼装长任务带边界标注的子技能片段
动作分块一次预测一小段动作序列高频、严格对齐的动作标签
路径点与关键帧只规划稀疏的子目标关键帧与子目标标注
闭环反馈与恢复检测漂移并当场纠正失败与恢复的示范

动作分块(action chunking)是最清楚的一个例子。像 ACT 和扩散策略(diffusion policy)那样,一次输出一小段连贯动作,而不是一步一步地决策,就把机器人在一个任务里要做的独立决策数量压了下来,连乘链条随之变短。Physical Intelligence blog 展示的长程操作,很大程度上依赖的正是这种思路:把决策打包,并训练模型在其中某一步出错时把它救回来。

这些办法没有一个是免费的,它们都是把一个难题换成另一个难题。把任务拆成技能基元,你就继承了过渡问题:技能之间的接缝成了新的失败点,需要它们自己的数据去抹平。把动作分块,你就牺牲了反应性,因为一个已经承诺了接下来半秒的策略,对突发状况的反应会更慢。时程不会消失,它只是被重新分配了,而这次重新分配的好坏,取决于每一块背后的数据。

数据必须承载什么

上面每一种策略,都会把成本转嫁到数据上。分层需要每个子技能的起止边界;分块需要高频、且与观测严格对齐的动作标签;恢复则需要你专门去采集失败以及从失败中爬出来的过程,而不只是干净的成功。这正是纯粹的成功示范会误导人的地方:它从不展示如何从错误中恢复,而恢复恰恰是长任务最需要的能力。Open X-Embodiment 这类跨机体语料之所以有用,部分原因就在于它覆盖了足够多样的情形,让策略有机会见到:偏离理想轨迹之后,该怎么办。

这也是短基准会高估策略的原因。一个只测单次抓取或十秒任务的评测,恰好落在曲线宽容的那一段,单步可靠度几乎不会连乘放大。换成三分钟的任务,同一个在基准上拿了 90% 的策略,真干起活来可能跌到 40% 以下。如果一项评估从不给时程施压,它测的就是那道容易的题,悄悄跳过了部署真正要问的那一道。

短任务原谅错误,长任务把错误连乘。削减机器人必须独立做对的决策数量,往往比再多堆一万段示范更管用。

把长度当作头号约束

先问“这个任务有多长”,往往比先问“我要多少数据”更有用。把有效时程砍半,你要对抗的那条指数曲线就会温和一大截;而砍半的手段,几乎总是结构与数据的组合,而不是单靠一个更大的模型。长任务不会因为你训练得更久就自己变短,但它可以被拆开、被分块、被恢复数据兜底。谁认真对待这一点,谁就更可能把实验室里的一段示范,变成工厂地面上真正跑得下来的一个班次。

task-horizonlong-horizoncompounding-errorimitation-learning

来源