打开网易新闻 查看精彩图片

你有没有想过这样一个问题:当一个机器人被告知"把衣服放进洗衣篮"时,它是怎么把这句话拆解成一串具体动作的?先移动到床边,再用左手抓住衣服,再把衣服放进篮子里,这中间的思考过程,人类做起来毫不费力,但对机器人来说,这恰恰是最容易出问题的地方。

大多数教机器人干活的系统,其实是跳过了这个"思考"环节的。它们把摄像头看到的画面和一句指令直接怼进模型,模型直接吐出机械臂该往哪儿动。这种做法在简单任务上还凑合,可一旦任务变长、变复杂,比如要求机器人先分类物品、再按顺序按按钮、再把水果挑出来放进篮子,模型就容易懵掉,因为它压根没有一个中间的"计划层"去把大任务拆解成小步骤。

X Square Robot 团队最近放出的这篇论文,叫 X-Planner,试图解决的正是这个"机器人不会做计划"的问题。这篇论文有意思的地方在于,它不是简单地加一个"思维链"就完事了,而是把这件事拆成了三个具体的坑,一个一个去填。

**这三个坑分别是数据不够细、粒度选不对、解码太慢。**

先说数据这个坑。你去看现在市面上教机器人的数据,往往就是一句话的标注,比如"拿起物体"。可你仔细想想,一次真实的抓取动作里,可能包含了重新抓握、抓空了、手滑了、微调姿势好几个小插曲,这些细节全被一句"拿起物体"给盖住了。

这就好比你让一个新员工学做菜,师傅只写了一句"把菜炒熟",却没告诉他油温多少下菜、颠勺几次、什么时候该翻面。新员工照着做,一旦中途出了岔子(比如火太大糊了),他压根不知道这是不是正常流程的一部分,因为教程里根本没提过这种情况。如果标注数据一直停留在这种粗粒度上,模型学到的就只是"理想情况下该怎么做",一旦真实执行中出现偏差,它完全不知道该怎么识别和纠正。

X-Planner 的做法是把数据按照四层结构重新标注,从大到小依次是任务、子任务、动作、片段。

> 层级标注体系:把一次任务拆成 L3 任务目标、L2 语义阶段、L1 可执行动作、L0 最细时间片段四层,不同数据来源标注的精细程度不同。

论文里提到,他们的数据来自三个源头:第一人称视角拍摄的 Ego 数据、手持云台拍摄的 UMI 数据,以及人工遥控机器人采集的 Teleoperation 数据。前两种因为动作太快,没法精细标注到最底层的片段,所以只标到动作这一层;只有遥控数据因为节奏可控,才标到了最细的片段层。

更值得说道的是,他们专门收集了"失败"的数据。一部分来自机器人在真实执行中被人类接管的时刻,他们记录了接管发生的具体时间点,这就相当于在数据里明确标出了"这里出问题了"。但光靠这个还不够,因为一个策略的失误往往有它固定的套路,收集的失败案例会偏向这一种策略的毛病。所以团队又专门找人故意演示各种设计好的失败场景,用来把错误的覆盖面撑得更广。

这背后的逻辑其实很朴素:如果只从一个机器人的失败历史里学习纠错,它学到的永远是"这一个机器人常犯的错",遇到别的错误类型照样懵。

接下来是粒度这个坑。论文里提到一个概念,叫语义事件。

> 语义事件:一段行为上连贯一致的时间片段,比如伸手去够、抓握、抬起、放下,这段行为的边界跟着实际动作的变化走,而不是按固定时长切割。

有的团队选择让模型按固定的时间长度去切分计划,比如每两秒一个片段。这就好比你切菜的时候,不管食材大小,一律每隔一厘米切一刀,土豆切一刀没问题,可切到葱段的时候,可能一刀下去就把整根葱切碎了,因为葱本身没那么粗。固定长度切分的问题正是这样:一个连贯的抓取动作可能被硬生生切成两半,或者两个完全不同的动作被强行拼进同一个片段里。语义事件的思路是按照动作本身的自然边界来切,伸手是一段,抓握是一段,边界跟着行为走,而不是跟着时钟走。

最后一个坑,是解码速度的问题,这也是这篇论文里技术含量最高的部分。

传统的思维链,不管是文字版还是所谓的"潜在推理",本质上都是一步一步往下算的:算完第一步才能算第二步,第二步依赖第一步的结果。这种串行的方式,在任务链条变长之后,会不断重复处理那些其实早就算过的视觉和语言信息,浪费了不少计算时间,而且一旦某一步算错了,错误还会一路传导到后面所有步骤。

X-Planner 提出了一个叫 Staircase Decoding 的方案来解决这个问题。

> Staircase Decoding:一种让模型的多个推理步骤共享底层计算、只在高层并行分叉的解码方式,中文可以理解为阶梯式解码。

具体是怎么做的呢?模型把 Transformer 网络按深度切成两段,浅层负责处理和理解画面、语言这些基础信息,深层负责真正的推理判断。所有的推理步骤会先一起走完浅层,把基础的场景理解算好、共享,然后到了深层,各个推理步骤才分道扬镳,各自并行往下算,不再互相等待。

这就像是一个团队接一个复杂的项目。如果每个人都要从头开始重新读一遍需求文档、重新理解一遍项目背景,那效率显然低得离谱。更合理的做法是大家先一起开会,把项目背景、客户需求这些基础信息统一过一遍,然后再各自领任务,分头并行推进。Staircase Decoding 干的就是这件事:底层的场景理解只算一次,大家共用,到了真正需要各自判断的高层,才分开并行处理。如果不这么做,模型就得为每一个推理步骤都重新过一遍完整的视觉理解流程,时间全耗在了重复劳动上。

不过论文里也很坦诚地提到一点:这种架构上的并行化,并不能直接等同于最终端到端的延迟一定更低,因为实际部署时还要看整个执行系统的调度方式。这种实事求是的态度,在一篇技术论文里其实挺难得的。

围绕这套阶梯式解码,X-Planner 对外呈现了两种输出形式,一种是看得懂的文字版事件描述,一种是不直接显示、只在内部流转的连续向量。

> 离散形式与潜在形式:离散形式是模型输出人类能读懂的文字,比如"把夹爪移到红色杯子上方";潜在形式是模型内部生成一串连续的数值向量,不转成文字,直接喂给下游的动作执行模型。

文字版的好处很直观,人或者上层调度系统可以直接看懂、随时检查、甚至手动修改这个计划哪里不对。但纯靠文字来传递信息,天然存在生成慢、逐字蹦出来的问题。而连续向量版本跳过了这个生成文字的过程,直接把信息喂给下游模型,速度更快,但代价是人没法直接看懂这堆数字在说什么。

为了让这堆看不懂的向量不至于"失控",团队又加了一道保险,叫冻结的潜在到文本重建目标。简单说,就是拿一个参数完全不变的小语言模型,尝试把这堆连续向量重新翻译回一段文字描述,如果翻译出来的文字和原本该有的推理过程对得上,就说明这堆向量确实保留了该有的语义信息,没有变成一堆没有意义的乱码。这个小语言模型在训练时全程锁死不参与调整,只用来做事后检验和必要时的可读化展示。

这就像给一份加密的备忘录设置一个只读的翻译器:备忘录本身写得再简略、再压缩,只要拿翻译器一转换,还是能还原出大致意思,这就说明压缩没有丢失关键信息。

那么这套系统实际效果怎么样呢?论文分两部分做了检验,一部分是纯文本层面的离线评测,一部分是真机器人上跑的实测。

在离线评测里,团队用了两个指标去衡量生成的计划文本质量。

> BERTScore-F1:一种衡量两段文字语义相似程度的指标,数值越高说明生成的计划和标准答案在意思上越接近;Overall 评分:由一个叫豆包评审模型的第三方模型,从准确性、连贯性、合理性几个维度给计划打的综合分。

结果显示,X-Planner 在这两项指标上,都排在参与对比的四个模型中的第二名,领先于通义千问和豆包这两个模型,但落后于一个叫 kimi3 的模型。具体数字上,X-Planner 的 BERTScore-F1 是 0.9011,比千问和豆包分别高出 0.0133 和 0.0165 个百分点,但比 kimi3 低了 0.0097。团队自己也说得很直白,这个差距没有消失,值得后续继续改进。

真正有意思的地方在于真机器人的实测结果,因为这才是最终检验一个计划到底靠不靠谱的地方。

团队设计了两套测试。第一套叫"推理操控",包含分类耳机、按形状归类物品、按顺序按按钮、给物品配对、把水果挑进篮子这五个任务,共同点是每个场景里可能存在的操作方式不止一种,机器人必须先弄明白指令到底指的是哪个物体、哪个类别、哪种顺序,才能真正动手。

> 任务进度分数:一种0到100分的打分方式,根据任务完成的程度按比例给分,而不是简单地判定成功或失败,能更细致地反映机器人做对了多少。

结果显示,搭载 X-Planner 的系统平均得分是 71.60 分,明显高于对比中表现最好的基线系统 59.50 分,领先了 12.1 个百分点。而另外两个对比系统 DreamZero 和 LingBot-VA,分数分别只有 32.70 和 31.60,差距更大。

值得一提的是,在"按顺序按按钮"这个任务上,X-Planner 拿到了 64% 的进度分,而排名第二的基线系统只有 18%,差了 46 个百分点。这个任务恰恰是最需要按顺序推理的:按错顺序,前面的努力就白费了。这个数据侧面说明,把长任务拆解成一步步语义事件的做法,确实在需要顺序推理的场景里派上了用场。

第二套测试叫"泛化能力",测试场景是一个杂乱的桌面,考验机器人能不能在场景变复杂之后依然听懂并执行新指令。X-Planner 拿到 53.75 分,第二名 DreamZero 只有 28.50 分,领先了 25.25 个百分点,差距比第一套测试还要大。这说明在场景更混乱、更需要临场判断的时候,有明确计划结构的系统反而表现得更稳。

论文里也坦率地承认了一些没解决的问题。比如,训练时用来喂给模型的历史记录,是从标注好的数据里直接拿的,属于比较"干净"的信息;可实际部署的时候,机器人只能看着自己刚刚生成的、可能不那么完美的输出来做下一步判断,这中间存在一个训练和实际使用不完全对齐的落差。另外,论文里提到的"事件结束标记",只是标志着录制画面到头了,并不代表任务真的圆满完成了,这两者不能划等号。还有一点,团队目前只在固定的双臂机器人平台上做了实测,还没有在移动机器人或者人形机器人上验证过这套思路是否照样管用。这些都是这篇论文自己列出来、留给后续研究的问题,而不是回避不谈。

写在后面

读完这篇论文,我印象最深的其实不是那套阶梯式解码的架构设计,而是团队在讨论"事件结束标记"时那句提醒:这个标记只是录制画面到头了,不等于任务真的成功了。

这句话背后藏着一个很容易被忽略的陷阱:我们太容易把"流程走完了"和"事情做成了"划等号。机器人把衣服放进了篮子,画面记录到此结束,但衣服有没有真的放稳、放对位置,这是另外一回事。这种区分在很多领域其实都适用,一次会议开完了不代表问题解决了,一份报告写完了不代表结论是对的。把"完成动作"和"达成目标"混为一谈,是效率导向思维里最容易踩的坑。

另外一个让我反复琢磨的地方,是团队用"人工设计失败场景"去补充"真实接管数据"这个决定。这其实暴露了一个更普遍的问题:任何从真实运行日志里收集的错误样本,天然带着收集者自身的偏见,因为一个系统会犯的错误,往往是它自己"擅长"犯的那几种错,别的错误类型它压根遇不到,也就学不会怎么应对。想要真正提升系统的鲁棒性,光靠"复盘自己的历史失误"是不够的,得主动去制造它从没见过的失败情境。这个思路其实超出了机器人这个具体场景,放在任何一个需要"从错误中学习"的系统设计里都成立。

这篇论文没有给出一个完美答案,它自己也说了,离线文本评测和真机器人实测测的是两件不完全一样的事,谁也没法替代谁下结论。但它至少把"机器人该怎么想"这个问题,从一个被忽略的黑箱,往前推进成了一个可以拆解、可以检验、可以继续追问的具体问题。

下一次你看到一个机器人流畅地完成一连串动作时,或许可以想一想:它此刻脑子里那份计划,是清清楚楚写成了一行行文字,还是压缩成了一串谁也看不懂的数字,安静地在网络深处流动?

Q&A

Q1:X-Planner是什么?

A:X-Planner是X Square Robot团队提出的一套机器人任务规划系统,它能把一句高层指令拆解成一连串有语义边界的具体动作步骤,再交给下游的动作执行模型去完成,解决了传统机器人系统缺少中间"思考计划"环节的问题。

Q2:Staircase Decoding阶梯式解码有什么用?

A:它让模型的多个推理步骤先共享底层的场景理解计算,只在深层网络才分开并行处理,这样不用每一步都重新理解一遍画面和语言,减少了重复计算,缩短了推理的串行等待时间。

Q3:X-Planner在真实机器人测试中表现如何?

A:在推理操控任务套件中平均得分71.60分,比表现最好的基线系统高出12.1个百分点;在泛化能力测试中得分53.75分,领先第二名25.25个百分点,两项测试均排名第一。