机器人也得治"健忘症":HIDE基准测出基础模型短板
设想一个场景。你让家里的扫地机器人打扫三个房间,它扫完客厅,扫完卧室,走进厨房。这时候厨房的样子和它十分钟前刚扫完客厅时看到的样子几乎一样,地板都是干净的。但机器人必须知道:这是第三个房间了,该收工了,而不是重新再扫一遍客厅。问题是,如果机器人只靠"眼睛"看当下这一帧画面来做决定,它根本分不清这是第几...
不妨设想这么一个场景:你吩咐家里的扫地机器人依次打扫三个房间。它先扫客厅,再扫卧室,最后进了厨房。这会儿厨房的模样,跟它十分钟前刚扫完客厅时看到的几乎没差别,地面都是干净的。可机器人得搞清楚:已经是第三个房间了,该收工,而不是掉头把客厅再扫一遍。
麻烦在于,假如机器人仅凭"眼睛"捕捉当下这一帧画面来下判断,它压根分不清这是第几个房间。它得记住自己走过的路。
这篇论文要处理的核心问题正在于此——听着简单,做起来极难:机器人怎样才能记住过去发生的事,再拿这些记忆去决定下一步做什么。
被忽略的"隐藏状态"
机器人操作技术这几年进步飞快。π0、OpenVLA、GR00T N1这类模型(统称机器人基础模型,即用海量机器人数据训练出来的通用操作大模型,类似机器人界的ChatGPT)能完成的任务越来越复杂多样。可它们有个共同的短板:判断主要靠当前这一帧画面,最多再瞄几眼最近几帧,更久以前发生的事很少真正被"记住"。
放在实验室的简单任务里,这不算大问题。现实世界的任务却经常要求更长的记忆。论文举了个例子:任务若是"把这个操作重复两次",一条简单的语言指令并不会告诉机器人它已经做了几次。物体的身份、位置信息也可能在执行途中因遮挡或场景变化而暂时消失,机器人只能靠记忆把这些信息补回来。
研究者把这类必须靠历史信息才能确定、光看当前画面判断不了的变量,叫作隐藏任务状态。这个定义本身就耐人寻味。
所谓隐藏任务状态,指的是机器人当前看到的画面和身体姿态信息都推不出来、却能从过去的交互历史中还原的决策相关信息。比如操作已经重复了几次、先前观察到的某个物体是什么颜色、当前执行到了任务的第几个阶段。
说得更精确些,论文用数学语言定义了一种"隐藏状态依赖"的任务:存在两段不同的历史,它们导致的当前观察画面几乎一模一样,但正确的下一步动作却完全不同。机器人学里给这种现象起了个专业名字叫观察混淆,它是部分可观测马尔可夫决策过程(POMDP,一种描述智能体无法完全观测环境真实状态的决策问题的数学框架)中的经典难题。
有个点容易被忽略却很关键:论文特意强调,任务很长或者画面有遮挡,并不能自动让一个任务变成"需要记忆"的任务。真正的考验在于,历史信息必须因果性地决定接下来该做什么。要是机器人换一种记忆方式也不影响结果,那这任务其实算不上真正依赖记忆。这个区分很讲究,整个评测基准该怎么设计,正取决于它。
一个专门为"健忘症"设计的考场
想验证机器人究竟有没有记忆能力,先得有一把靠谱的尺子。研究者在RLBench(一个常用的机器人操作仿真平台,提供机械臂、物体和场景素材,支持自动生成演示数据)基础上搭了个新基准,取名HIDE。
HIDE把需要记忆的任务划成三大类,每类五个,合计十五个。
第一类叫重复计数:机器人得把一个动作重复做够指定次数,比如按三次按钮、堆两个方块。难点在于,第一次按按钮和第三次按按钮,画面看起来可能完全一样,机器人必须自己心里有数,数到了第几次。
第二类叫历史状态回忆:机器人要用到之前观察到、如今已经看不见的信息,比如某个杯子是什么颜色,或者某个抽屉原本是打开的。这类任务考的是机器人在信息消失之后还能不能记得它。
第三类叫执行进度追踪:任务被拆成好几个步骤,中间某一步的画面可能和另一步长得很像,机器人得靠历史判断自己究竟做到哪一步了,既不能重复做,也不能漏做。
这套基准的设计思路,让人想起小学老师出的"连续性"考题:不只考你会不会算加法,还要考你记不记得前面已经加过哪些数字。单看某一道题你可能都会做,连起来考,才看得出你是真理解了整个流程,还是只机械地套公式。若不设计这种带历史依赖的考题,机器人很可能靠"猜"蒙对一道题,而这种蒙对放到后续更复杂的真实场景里,是经不起推敲的。
为了让考题更严谨,研究者在HIDE里还加了随机化的初始布局、外观变化、自动生成的演示数据,以及把每条轨迹自动切分成任务阶段的标注信息。这样评测时就能知道机器人到底是在哪一步出的错。
现有模型考得怎么样
答案是,普遍不理想。
研究者挑了市面上多个有代表性的模型放到HIDE上测试,结果相当扎眼。视觉语言动作模型OpenVLA平均成功率只有1.6%,几乎可以说是全军覆没。专门为机器人操作优化过的π0达到了22.1%,GR00T-N1.7能到26.4%,在基础模型里已算佼佼者,可离及格线还远得很。
自带记忆机制的模型表现稍好。SAM2Act+把基础版SAM2Act的42.7%提升到了51.2%,看上去进步不小。但细看分类表现就有问题了:执行进度追踪上它能到60.8%,重复计数和历史状态回忆上却只有46.4%。另一个记忆模型MME更极端,历史状态回忆能达到35.2%,重复计数却只有2.4%,几乎等于没有计数能力。
这说明一件很重要的事:给模型贴上"记忆模块"的标签,不等于它真能记住任务所需要的那种信息。
好比给一个人配了个笔记本,他偏偏只习惯往里记购物清单,从不记会议待办。你问他今天买了什么菜,他答得头头是道;你问他下周三要交什么报告,他一脸茫然。拥有记忆工具,和拥有正确类型的记忆内容,是两件事。不区分这两者,很容易误以为"加了记忆"就等于"解决了问题",实际测试数据却狠狠打了这种乐观主义的脸。
SEEK给出了一套三件套式的记忆方案
面对前面那个难题,研究者搭出了SEEK框架。它的基本做法是让三种机制各管一类历史信息,彼此补位。
最先说的是窗口上下文记忆(Windowed Context Memory,WCM)。它把最近K次交互留下来,按时间先后排好;新记录一进来,最旧的那条就被顶出去。这套机制盯的是"刚发生了什么",最近查过哪些位置、内容有了什么变动,用它来追比较合适。
接着是持久锚点记忆(Persistent Anchor Memory,PAM),它要处理的是"信息已经掉出最近窗口"的情况。举个例子,某个物体的颜色在任务开头被看到过,之后被挡住了,WCM只记最近几步,这条信息根本留不住。PAM的做法是从全部历史记录里找出与当前观察最接近的一段拿来参考,并且有意把已经进入WCM的部分排除在外,免得重复。
第三个叫阶段计数记忆(Stage-Counter Memory,SCM)。它靠一个离散计数器配上一组可学习的阶段向量,来标明任务走到了哪一步。计数器只在预测到阶段边界时才加一,并非每个控制步都动。它要解决的是:重复动作让场景看起来差不多时,光凭视觉特征分不清这是第二次还是最后一次重复,得有一个清楚的进度标记才行。
这三者的分工,像极了团队里不同岗位各司其职。WCM好比会上专记当场讨论要点的记录员,只顾眼前这一场;PAM像档案管理员,平时不参加讨论,关键时刻却能从多年的档案柜里抽出一份要紧文件;SCM则是项目进度表上那个打钩的进度条,讨论内容它不关心,只告诉大家现在走到第几个阶段。要是让记录员一个人既记当场发言、又背三年前的会议纪要、还得兼管进度,他早晚要崩,信息搅成一团谁也理不清。记忆之所以要拆成三个专门模块,而不是一股脑塞进一个大黑箱,原因就在这里。
落到技术上,SEEK的骨干是一套由粗到细的多视角操作策略。系统先拿多摄像头的RGB-D图像(彩色加深度信息的图像)重建点云,渲染出虚拟视角画面;粗分支先圈出一个大致的操作目标区域,细分支再在这个区域里定准抓取位置、旋转角度和夹爪状态。三种记忆各自编码后融进这条流程:粗分支靠全部记忆信息判断目标物体是哪一个(比如几个颜色相近的方块,得靠历史信息来区分),细分支则更多依赖当前的局部几何细节来做精细操作。
SEEK交出的成绩单
在HIDE基准上,SEEK的平均成功率是62.9%,比表现最好的基线SAM2Act+高出11.7个百分点。三个类别它全部占先:重复计数61.6%,历史状态回忆59.2%,执行进度追踪68.0%。
消融实验(逐个拿掉或替换某个组件,看它到底起了多大作用的实验方法)做得更细,也挖出了几个耐人寻味的现象。
头一个问题是存什么。研究者把只存身体姿态信息和存视觉特征两种方案摆在一起比,平均成功率从42.5%升到62.9%,重复计数这一项更是由31.2%冲到61.6%,整整差了30个百分点。视觉历史带的信息量远比单纯的姿态数据大,对付隐藏状态歧义也更有效。
第二个问题是记忆存多久。研究者把记忆窗口长度从0测到6,发现一个怪现象:长度由0加到2,重复计数任务的成绩反而从46.4%滑到44.2%,短暂变差;一直加到6,才明显回到61.6%。这种"中途变差"说明,短记忆有时比没记忆还危险——模型会生出一种"我记着一点"的错觉,可记的量又不足以支撑正确判断,反倒可能干扰决策。
最后看三个组件各自的贡献。往基础模型里依次加入SCM、WCM、PAM,每一步都有提升,只是侧重不同:SCM对重复计数帮助最大(提升14个百分点),WCM对执行进度追踪帮助最大(提升12个百分点),PAM对历史状态回忆帮助最大(提升11.6个百分点)。单拎出来看,它们也各有强项——SCM在重复计数上领先,PAM在历史回忆上领先,WCM在进度追踪上领先;但只有三者合到一起,每个类别才能拿到最好成绩。
这个结果不难想通。你只带一把螺丝刀去修一台既要拧螺丝、又要敲钉子、还得剪电线的设备,螺丝那部分能对付,钉子和电线就束手无策了。记忆机制同理,不同类别的隐藏状态需要不同形式的记忆来接,没有哪一种记忆机制能包打天下。
从仿真环境走向真实世界
只在仿真里跑分显然不够。研究者又把SEEK放到标准的18任务RLBench测试集、模拟环境扰动的The Colosseum基准以及真实机械臂上逐一检验。
标准RLBench任务上,SEEK平均成功率84.7%,比自己复现的SAM2Act基线(84.1%)略高一线,也优于RVT-2(81.4%)和RVT(62.9%)。加进记忆机制并没有拖累模型在普通任务上的表现,不存在"为了记忆牺牲基本功"这回事。
The Colosseum的扰动测试会给场景加入颜色、纹理、光照、相机位姿等各种变化,用来考验模型的鲁棒性。SEEK在无扰动场景下拿到68.6%,各种扰动平均下来61.9%,相对下降幅度9.8%,比SAM2Act复现版的10.1%略小一点。
真实机器人实验用的是一台Franka Emika Panda机械臂,配上Robotiq夹爪和深度相机,测了四个真实任务:重复按按钮、叠杯子、清理桌面、翻找白色小物件。这些任务都特意设计成视觉上容易混淆、非靠历史信息不可的样子。结果SEEK平均成功率89%,SAM2Act+是47%,π0.5只有13%。差距大得有点夸张——真实桌面清理任务里,π0.5的成功率是0%,SEEK则是80%。
真实世界里的这组数字,比仿真结果更扎眼。仿真里的误差还能靠调参数、换种子抹平,可机械臂在现实中一旦判断失误,杯子摔了就是摔了,没有重来一次的机会。SEEK在真实场景中表现出的稳定,说明这套记忆架构并非只在干净的仿真数据里讨巧,它确实学到了某种能迁移、对历史信息敏感的判断能力。
写在后面
论文读下来,最打动我的不是SEEK拿了多高的分,而是那个“短记忆反倒拖后腿”的实验结果。按直觉,有总比没有强,加一点记忆不该比完全没有更差。可数据摆在那里:重复计数任务在记忆长度为2时,成绩比完全没有记忆(长度0)还低2个百分点。这背后或许有个更普遍的规律——半吊子的信息有时比没有信息更危险,决策系统会因此生出一种“我已经考虑过了”的虚假自信,而这点信息量根本撑不起正确判断。这种现象不只发生在机器人身上,人做决策时也容易犯同样的错:知道一点点,反而比一无所知更容易自信地出错。
还有个细节值得单独拎出来说:三个记忆组件在不同任务类别上“各管一摊”,而且对应得几乎分毫不差——SCM管计数、PAM管回忆、WCM管进度。这种精确对应并非巧合,它说明这三类隐藏状态在信息结构上本就性质不同:计数是需要稳定更新、不被视觉波动干扰的离散量;历史回忆要跨越遮挡和场景变化,去检索一段可能很久以前的片段;进度追踪要的是近距离、连续性的上下文衔接。研究者没有去做一个“万能记忆”,而是先把问题结构想清楚,再对症下药设计三个专门模块。先分解问题、再设计方案,这个思路比一上来就堆一个更大的模型,或许更值得借鉴。
论文末尾也坦率承认了局限:HIDE目前聚焦的是可控、可解释的隐藏状态形式,离真实世界里更复杂、更模糊的部分可观测性仍有距离。扫地机器人知道自己扫到第几个房间是一回事,护理机器人要记住病人十分钟前说了什么、情绪怎么变化,又是完全不同的量级。这条路显然还很长。
Q&A
Q1:HIDE基准测试的是机器人的什么能力?
A:HIDE专门考察机器人操作中的隐藏状态记忆能力,也就是机器人能不能靠交互历史、而不只是当前画面,来判断重复次数、回忆历史场景信息、追踪执行进度,一共覆盖十五个任务。
Q2:SEEK框架和普通的机器人记忆模型有什么不同?
A:SEEK没有采用单一记忆机制,而是把三种互补机制组合起来:窗口上下文记忆管近期信息,持久锚点记忆负责检索更久远的历史证据,阶段计数记忆负责追踪任务进度。三者配合,效果明显好于单一机制。
Q3:为什么现有的机器人大模型在HIDE上表现这么差?
A:这些模型大多只靠当前观察或很短的时间窗口做判断,而HIDE里的任务刻意设计成画面相似、却需要不同动作的场景。比如OpenVLA在HIDE上平均成功率只有1.6%,说明保留历史信息,不等于能用对信息。