你有没有见过这样的机器人视频:它熟练地打开冰箱门,精准地夹起一根胡萝卜,稳稳地放进碗里,然后……在关冰箱门的最后一步突然卡住,反复试探,最后干脆放弃了。
这不是段子,这是长时间序列机器人任务里最常见的失败模式。而更让人无奈的是,就算机器人做对了前面九成的动作,只在最后一步翻车,它得到的训练反馈和"从头就没做对"是一模一样的:都是零分。
这篇论文要解决的,正是这个"一步错,全盘零"的问题。
**当机器人任务变长,麻烦就开始了**
先说说这件事到底难在哪。
现在的视觉语言动作模型
VLA模型:一种能把摄像头看到的画面和文字指令,直接翻译成机器人动作指令的AI模型,比如让机器人"把苹果放进碗里",它就能理解并执行
在处理短任务时表现相当不错,抓个东西、挪个位置,成功率能做到八九成。但一旦任务变长,比如"把洋葱放进碗里,把碗放进微波炉,关上门,按下启动键",这种需要连续完成四五个有依赖关系的动作的任务,模型的表现就开始明显下滑。
论文里给出了具体数字:在RoboCasa365这个厨房模拟环境的测试里,用GR00T-N1.5这个模型,经过普通的监督微调后,处理短任务(800到1000步)的成功率是51.7%,处理最长任务(1400到2900步)的成功率骤降到27.9%。差了将近一倍。
为什么会这样?因为这类模型通常是靠人类示范数据训练出来的。
监督微调:让模型模仿大量人类操作录像来学习的训练方式,简称SFT
这种训练方式有个天生的弱点,它只见过示范里出现过的那些状态。一旦机器人在实际执行时稍微走偏一点,进入了训练数据里没见过的状态,它就不知道该怎么办了,越走越偏,最后彻底失败。这就像一个只背过标准答案的学生,遇到题目稍微变个说法就完全懵了。
那怎么办?答案是让机器人自己在环境里多试试,用强化学习来纠正它。
强化学习:让模型通过不断尝试和获得奖励反馈来自我改进的训练方法,简称RL
**终点奖励的老问题:不看过程,只看结果**
问题来了:现有的在线强化学习方法,几乎都只在任务彻底成功的那一刻给一次奖励,中间过程什么都不给。
这套逻辑放在短任务上还凑合,反正步骤少,很快就能等到结果。但放到长任务上就出大问题了。
想象一下你在教一个新手做一份需要八道工序的菜。如果你的评价标准是"只要有一道工序做错,这顿饭就是零分",而不管他前面七道工序做得多漂亮,那这个新手能从你的反馈里学到什么?几乎什么都学不到。他不知道自己是哪一步开始错的,也不知道前面的努力到底有没有价值。如果不给中间反馈,新手很可能永远在原地打转,因为"全对才算数"这个信号太稀疏了,稀疏到几乎捕捉不到任何有用的学习信息。
这就是论文反复强调的核心矛盾:任务越长,成功的完整轨迹越稀少,终点奖励这种信号就越没用。一个做对了七步只错最后一步的机器人,和一个刚开始就走错方向的机器人,得到的反馈完全一样,都是零。这显然不公平,也不利于学习。
一些研究者试着用学习出来的奖励模型来给出更密集的反馈,比如训练一个模型专门去预测"这个动作完成到百分之多少了"。但论文指出了这类方法的一个隐藏漏洞:一个单纯的进度分数,并不能说明这个进度是不是"有效"的进度。
举个例子,如果机器人在还没把物品放进箱子之前就把箱子盖子关上了,这个"关箱子"的动作看起来像是往前推进了任务,但实际上它完全打乱了正确的顺序,这种进度不该被奖励。
**StructRL的做法:把任务拆开,还要排好队**
面对这个问题,研究团队提出了StructRL
StructRL:本论文提出的强化学习框架,核心思路是把长任务拆解成可验证的子任务,并按照依赖关系给出中间奖励
它的思路可以概括成两步:先把一个长任务拆成一串小任务,再给这些小任务排出先后顺序,谁必须先完成谁才能拿到奖励。
具体来说,研究者用一个大语言模型(论文里用的是Claude Opus 4.8)来做任务拆解。给它一句指令,比如"打包午餐",它会先提出一堆候选的子任务,比如"靠近箱子""打开箱子""加入鸡肉""松开夹爪""关上箱子",然后对每个候选项做两轮筛选。
第一轮叫可验证性检查,问的是:这个动作完成没完成,能不能用环境里的状态直接、可靠地判断出来?"靠近箱子"就被刷掉了,因为很难给它定一个清晰的"完成"标准,靠近到什么程度算靠近?这个边界模糊不清。
第二轮叫进度检查,问的是:完成这个动作,是不是真的代表任务往前推进了一步?"松开夹爪"就被刷掉了,因为这个动作可能发生在成功的抓取里,也可能发生在一次失败的尝试里,它本身不代表任何有效进展。
经过这两轮筛选留下来的子任务,才会被组织成有先后顺序的"依赖组"。比如"打开箱子"要排在最前面,"加入鸡肉"和"加入苹果"可以随便谁先谁后,但"关上箱子"必须等这两样东西都放进去之后才算数。
这套拆解加排序的逻辑,其实很像老师批改一份需要分步骤的数学题。如果只看最终答案对不对,一个学生哪怕前面所有推导都对、只是最后抄错一个数字,也会被判全错,得不到任何鼓励。但如果老师按步骤给分,先看第一步的公式用对没用对,再看第二步的代入是否正确,学生就能清楚知道自己哪里扎实、哪里需要加强。如果不按步骤给分,那批改这件事本身对学习就没有任何指导意义,学生只会在黑暗里反复试错。StructRL做的正是这件事,把一个大任务拆成一步步可以单独打分的小题。
**光有子任务奖励还不够,还要看快慢**
拆解好任务、排好依赖顺序之后,还有一个问题:每完成一个子任务,该给多少奖励?
如果不管三七二十一,每完成一个子任务就给固定分数,会出现一个隐藏漏洞:机器人可能会在完成一个子任务之后故意拖延,到处瞎晃悠,然后再去完成下一个,因为反正分数是固定的,拖延不扣分。
这就像考试如果只看你答没答对,不看你用了多长时间,那考生完全可以在每道题上磨蹭很久,反正结果一样。这种情况下,评分机制没能真正鼓励高效率的行为,甚至可能纵容拖延。
StructRL的解法叫动态奖励节奏
动态奖励节奏:根据完成子任务所用的时间长短,动态调整该子任务奖励大小的机制,完成得越快,奖励越接近满分
它会参考人类示范数据中完成每个子任务大概需要多长时间,然后用一个公式:机器人实际用的时间和示范时间的比值越小(也就是完成得越快),奖励就越接近设定的上限;拖得越久,奖励就越往下打折。这样一来,机器人不但要"做对",还要"尽量高效地做对",磨洋工不再是免费的选择。
这两个机制加在一起,也就是"排队打分"加"看速度打折",构成了StructRL奖励公式的核心。整套系统最后配合PPO
PPO:一种常用的强化学习优化算法,全称是近端策略优化,通过限制每次更新的幅度来保证训练稳定
来更新机器人的策略网络,让机器人在下一轮尝试里做得更好。
**实验结果:数字说话**
理论说得再好,也得看实际效果。研究团队在两个基准环境上做了测试:RoboCasa365和LIBERO-Long,分别搭配GR00T-N1.5和π0.5两个主流VLA骨架模型。
在RoboCasa365上,用GR00T-N1.5这个模型,普通监督微调的整体成功率是38.6%,当时最强的在线强化学习对手(SimpleVLA-RL)能做到41.5%,而StructRL做到了49.1%,比最强对手高出7.6个百分点。而且在任务最长的那一档(1400到2900步),StructRL的优势更明显,比最强对手高出7个百分点,说明这套方法在长任务上确实更管用,这正好对上了论文要解决的问题。
在LIBERO-Long上,同样用GR00T-N1.5,StructRL达到96.6%的成功率,比最强对手的92.4%高出4.2个百分点。换到π0.5模型上,趋势依然一致,只是幅度略小一些。
研究团队还专门做了一个对照实验,把StructRL和另一种叫Robometer
Robometer:一个基于视觉语言大模型训练出来的通用奖励模型,通过看视频画面来预测任务完成进度
的方法放在同样的训练条件下比较。Robometer代表的是"用学习出来的模型去猜进度"这条路线,而StructRL代表的是"直接用模拟器里可验证的事实去打分"这条路线。结果是StructRL在两个骨架模型上都赢了Robometer,差距分别是2.4和3.2个百分点。这说明,比起让一个模型去"猜"任务完成到哪了,直接用环境里可以验证的硬事实来打分,效果更靠得住,而且还不需要额外训练一个笨重的奖励模型,省了不少计算资源。
研究团队还做了拆分实验,一个一个加上StructRL的各个组件,看每个部分到底贡献了多少。结果显示,光是加上"子任务奖励"这一项,就能把RoboCasa365的整体成功率从41.3%拉到47.4%,这是最大的一块提升。动态奖励节奏又往上加了0.5个点,依赖排序的门槛机制再加1.3个点,最终凑成49.2%。这个结果说明,给出中间反馈这件事本身就是最关键的一步,排序和节奏是在这个基础上的进一步精细化打磨。
有意思的是,研究者还试过把任务拆解得更细,细到把"抓取"这个动作再拆成"靠近""接触""闭合手指""抬起"好几个小步骤。结果发现,拆解密度不是越细越好。当平均每个任务的子任务信号数量从0增加到5左右时,成功率一路上升到50.4%,但如果继续加细,密度涨到52个信号点,成功率反而跌到37.6%,比完全不拆解还差。研究者分析了原因,发现主要是两方面造成的:一是过细的拆解会让奖励信号提前触发,捕捉到的动作还没真正完成任务意图;二是子任务越多,累积的总奖励规模也跟着膨胀,反而稀释了原本清晰的信号。这提醒我们,拆解粒度也需要一个恰到好处的平衡点,不是"越精细越科学"。
**表:RoboCasa365与LIBERO-Long上不同方法的整体成功率对比(GR00T-N1.5骨架)**
| 方法 | RoboCasa365整体成功率 | LIBERO-Long整体成功率 |
| 监督微调(SFT) | 38.6% | 90.6% |
| Sparse-RL | 40.2% | 91.2% |
| SimpleVLA-RL | 41.5% | 92.4% |
| PolicyTrim | 39.8% | 91.4% |
| **StructRL(本文)** | **49.1%** | **96.6%** |
Q&A
Q1:StructRL是什么?
A:StructRL是一个在线强化学习框架,专门用来提升机器人在长时间序列任务上的表现。它把复杂任务拆解成一系列可验证的子任务,并按依赖关系和完成速度给予中间奖励,而不是只在任务全部完成时才给一次反馈。
Q2:StructRL和普通的监督微调有什么区别?
A:监督微调只是让模型模仿人类示范录像,遇到没见过的状态容易出错。StructRL则是让模型在环境里不断尝试,并通过结构化的中间奖励告诉它每一步做得对不对、快不快,从而逐步纠正和优化自己的行为策略。
Q3:为什么长任务对机器人模型这么难?
A:因为长任务需要按顺序完成多个有依赖关系的动作,一旦某一步出错就容易连带影响后面所有步骤。而传统的强化学习方法只在任务彻底成功时给奖励,导致模型很难从失败或部分成功的过程中学到有效经验。
热门跟贴