机器人学叠衣服为何比教小孩难:中科院自动化所提出SimpleICL
你有没有想过,教一个机器人叠衣服,到底有多难?传统做法是手把手教。工程师戴上遥操作手套,一遍遍操纵机械臂完成同一个动作,录下几千条数据,再喂给模型。这就像请私教一对一陪练,每学一个新动作都要重新请一次教练,成本高得吓人。那有没有可能让机器人像人类小孩一样,就看一眼大人示范,自己就学会了?这正是机器人领...
教机器人叠一件衣服,难度有多大?
过去的办法是手把手带。工程师套上遥操作手套,反复操控机械臂做同一个动作,录下几千条数据再喂给模型。每学一个新动作就得重新请一次"教练",开销高得惊人。
能不能换个思路,让机器人像小孩那样,看大人做一遍示范就自己学会?机器人领域近来热起来的"上下文学习",走的正是这条路。
**可有个问题一直没人讲明白:机器人看一段人类示范视频时,究竟该学什么?**
这问题听着不难,细想却棘手。一段视频里的信息多到离谱:手怎么移动、抓握多大力度、拿的是哪个杯子、先拿哪个后拿哪个、手指碰的是杯身还是杯把……全都搅在一起。机器人若照单全收、原样复制轨迹,往往学得走样。中科院自动化所和高德地图团队的这篇论文,把这个长期被忽略的问题摆上台面,并提出了名为SimpleICL的解法。
一、被忽视的提示歧义问题
这件事的重要性在哪里。
ICL*:即In-Context Learning,上下文学习,指模型不必重新训练,仅凭给出的示例(此处为人类示范视频)就能推断该做什么任务。这一概念最早在语言模型领域走红,比如给GPT几个翻译例子,它马上就能照着做新的翻译,无需专门微调。
把这套思路搬到机器人身上,前景听着不错:不必再采集海量遥操作数据,录一段人做家务的视频,机器人照着学即可。今年已有HOST、GEN 1.5、Zero-WAM等好几个团队在摸索,但都停在"能跑通"的阶段,没有人真正停下来问:这段人类视频里,机器人该模仿哪部分、忽略哪部分?
论文作者打了个比方:视频里同时裹挟着动作类别、物体身份、空间关系、任务目标,还有具体的手部轨迹和速度。机器人若把这些一视同仁全学进去,后果就是,示范者的手从左边伸过去拿杯子,机器人就死死记住"要从左边伸手",哪怕现实场景里杯子根本不在原来的位置。
好比带一个刚入行的外卖骑手跑单,你蹬着车把某条线路走了一遍给他看。往后这人送餐,甭管收货地址在哪儿,都按你那次骑过的那条道走,撞上死胡同也不掉头。他记住的是“顺着这条具体路线骑”,没抓住“把餐交到收货人手上”这个目标。教的时候不把“要达成什么”和“路上碰巧怎么走”拆开,练出来的不是照葫芦画瓢的复读机,就是新活儿根本学不会。
这正是论文要解决的核心矛盾:示范视频的信息太丰富,丰富到让人不知道该相信哪一部分。
二、四种该学的东西,三种该忘的东西
论文的解法很直接:先把"该学的"和"该忘的"列清楚,再照这份清单设计数据和训练流程。
该学的,作者归纳为四类语义。
第一类是动作语义,即区分按、抓、转、推这些动作类别本身。比如同一个洗手液瓶子,一次示范是直接按压出液,另一次是抓起来放到托盘上,机器人得分清这是两种完全不同的意图,而不是把"碰到瓶子"本身当成唯一信号。
第二类是物体语义,机器人操作的是某个具体物体,而非某条抽象的空间轨迹。人类示范时苹果摆在左边,机器人执行时苹果被挪到了右边,它应该追着苹果的真实位置去抓,而不是机械地往左边伸手。
第三类叫组合语义——动作谁先谁后,本身就是一层意思。先抓香蕉再抓苹果,跟先抓苹果再抓香蕉,对应的任务要求并不一样,机器人得看得出这种先后之别。
第四类是功能部位语义,也叫affordance,即抓取某个物体时该抓哪个部位。
affordance*:一样东西能让人或机器人怎么上手操作。拿杯子来说,抓杯身是一种抓法,抓把手又是一种,两种抓法背后的意图不同,接下去能做的动作也不一样。
该忘的也归为三类:空间位置的偏差;人类动作的细枝末节,比如速度快慢、手是戴手套还是裸手、具体的伸手角度;以及场景里的视觉干扰,比如光照变化、背景颜色、不相关的杂物。
这套四加三的框架听着简单,但正因为把"学什么"和"忽略什么"拆解得明明白白,后面的数据采集和模型训练才有了清晰目标,不再眉毛胡子一把抓。
三、数据怎么采:故意制造混乱,逼模型学会分辨
光有理论框架不够,数据得跟得上。
论文给出了一种叫"语义判别式"的数据构造方法。说白了,就是刻意造出容易让模型犯迷糊的场景,逼它练出真正的区分本事,别想着走捷径混过去。
针对前面说的四类该学的语义,团队分别配了对应的训练数据。
动作判别数据:同一场景、同一个物体,用不同动作演示好几遍。同一瓶洗手液,一次按压、一次抓取搬运,模型就没法"看见这个瓶子"就固定输出某个动作,必须真去弄明白示范视频里演的是哪种动作。
物体判别数据:人类示范和机器人执行时,物体位置故意不一样,目标物体周围还摆上长得完全不同的干扰物。模型想偷懒靠记忆空间坐标去抓,马上就会抓错地方,只能被迫去认物体本身的身份。
组合判别数据:同一组动作,故意按两种不同的先后顺序各录一遍。
功能部位判别数据:同一个物体,一次示范抓手柄,一次示范抓杯身,人手和机械爪的抓取部位必须严格对上,逼模型学会读取"该抓哪里"这个细节。
这就像出题时把四个选项拉开差距,学生闭着眼瞎选也能对,根本看不出他有没有掌握知识点。反过来,选项做得极为相近,只在一两个关键细节上有差别,答对了才说明真懂,不是撞运气。论文在数据上的做法,说到底是把能"蒙混过关"的捷径全部封住,逼模型去学真正管用的区分能力。
除了判别式数据,论文还做了"数据增强",让模型对不该在意的变化迟钝一点。他们找来肤色不同、手套颜色也不同的示范者拍视频,却配上同一条机器人执行轨迹;光照、色温、摄像机视角也按系统化方式改动,同样对应相同的执行结果。这样一来,模型见得多了,就会明白这些变化并不重要,不必盯着它们去学。
还有一个更巧的策略,叫"分组采集加跨组配对"。
简单说,团队把每个场景定义成一个采集组,组里包含可执行的多个任务。采完一组,要么彻底换一个全新场景(大转换),要么只微调当前场景,比如挪动物体位置、换个光照、换个干扰物(小转换)。微调后的场景可以和之前的人类示范视频交叉配对,形成新的训练样本,额外采集成本几乎为零。
这个设计解决了一个很实际的问题:每次机器人执行的轨迹都严格对应某一次特定的人类示范,模型很容易学到一种偷懒的对应关系,把场景布局和任务意图死死绑在一起。跨组配对打破了一一对应,逼着模型必须真正从示范里提炼出任务的本质,而不是记住某种固定搭配。
论文给了一个很实在的数字:靠这套结构化设计,一个机器人平台一天就能产出多达3000组有效的人机数据对。不用动用海量人力和昂贵设备,一个实验室规模的团队也玩得起这套流程。论文标题里"democratized(平权化)"这个词就是这么来的,意思是要把这件事的门槛打下来,让更多研究者能参与进来。
四、模型架构:一个轻量级的"提示编码器"
数据准备好了,视频提示怎么处理?
论文的做法出乎意料地克制。前面已经靠数据设计把大部分歧义问题解决了,模型架构本身就不必搞得太复杂。
整个视觉提示编码模块的流程是这样:先用一个预训练好的视觉编码器把示范视频转成逐帧的特征向量,再用一小组可学习的查询token,通过交叉注意力机制从视频特征里"提炼"出一组固定长度的表示。
DiT*:Diffusion Transformer,一种结合扩散模型和Transformer架构的神经网络,常用于生成任务,这里被用来预测机器人的动作序列。
LoRA*:Low-Rank Adaptation,一种高效微调大模型的技术,只训练一小部分新增参数,而不是整个模型,从而大幅降低训练成本。
提炼出的表示会拼进视频DiT和动作DiT的上下文,与原有的文本指令、机器人状态信息一道,经交叉注意力送入网络,最后生成动作。骨干网络采用预训练好的Wan2.2-5B视频生成模型,动作预测那部分则插值出一个1B参数的小模型,二者依靠混合Transformer架构协同工作。
这样设计的好处在于:查询token的数目是固定的,示范视频无论多长,输出表示的尺寸都不变,不必针对不同长度的视频另写一套处理逻辑。打个比方,快递柜的格口数固定,包裹大小形状再怎么变,分拣规则也不用跟着调整,系统复杂度因此大幅下降。若没有固定长度这一步,示范视频时长一变,模型就得重新适配输入维度,工程实现会麻烦许多,训练也更不稳定。
五、实验说了什么:仿真和真实世界都验证了这套思路
光讲设计思路不够,数据才是硬道理。
论文首先在仿真环境RoboTwin 2.0中开展验证。其中有一组颇有意思的对照:原版RoboTwin的数据里,场景中的无关物体一般被放在机器人够不着的边缘位置,这种摆法其实用不上模型的辨别能力,因为压根不存在容易混淆的候选项。
团队重新设计了一批数据,在场景里同时放入多个与任务相关的物体,并且都落在机器人伸手可及的范围之内,迫使模型必须拿出辨别能力,才能选对任务。
实验结果摆在那里:改用这套重新设计的数据训练后,语义判别测试的平均成功率由原来训练方式的40.3%升到72.1%,整整高出32个百分点。基线方法Fast-WAM只有37.6%,差距拉得更开。单靠“重新设计数据”这一招就能带来质的变化,瓶颈并不在架构本身。
论文另做了两个消融实验。拿掉视频条件输入后,模型在训练过的语义判别测试上还算撑得住,能到61.6%;可一碰上完全没见过的7个新任务,成功率就从65.9%掉到26.3%。只给文本指令和场景理解,模型没法真正“看懂”一个新任务该怎么干,没有视频示范就做不了没训练过的操作。
去掉“未来预测”这个训练目标后,情况更离谱:模型在新任务上的表现跌到17.9%,跟瞎猜差不多。
未来预测指的是什么?模型训练时不光要输出动作,还得预测接下来视频画面会怎么变。这个辅助任务让模型更容易读懂视频里的时序信息。
光“看”视频不够,还得学着“预测”视频往哪走,示范里藏着的时间结构和因果关系才吃得透。
真实世界的实验放在Franka机械臂平台上做,视觉输入用三个英特尔RealSense摄像头,测了八个训练数据里从没出现过的任务:称重、擦盘子、倒茶、拉抽屉、按压洗手液、摆水果、整理筷子、整理置物架上的物品。论文特意点明,这些任务涉及的具体物件,像抽屉、水果、置物架上的东西,全是训练阶段没见过的全新物件,为的是测真泛化,不是考死记硬背。
评测按三个难度等级划分。简单档:场景里只有一种任务可做;中等档:场景里有多个任务可选,模型得挑对;困难档:任务本身有多种执行方式,比如两个盘子挨在一起,模型得分清该擦哪一个。
| 难度 | FAST-WAM | π0.5 | SimpleICL |
|---|---|---|---|
| 简单 | 0.80 | 0.72 | **0.81** |
| 中等 | 0.65 | 0.47 | **0.70** |
| 困难 | 0.42 | 0.31 | **0.68** |
这组数字最有嚼头的是困难档:论文提出的方法在最容易混淆的场景里比第二名FAST-WAM高出整整26个百分点,相当于每4次操作SimpleICL就能多做对1次。简单任务上各家其实拉不开差距,场景一复杂,差距就出来了。这正好回应论文开头提的那个问题:可能性越多的场景,越能检验模型是不是真懂“该跟随什么,该忽略什么”。
六、细挖语义学习:有些能力能无师自通,有些不行
论文还安排了一组挺有意思的对照实验,专门拆解模型是怎么学会不同类型语义的。
先说动作判别。训练时故意只给某个物体配一种固定动作,比如红色筷子永远旋转、绿色筷子永远放进碗里,模型面对没见过的组合方式时仍保有中等水平的判别力,从0.89降到0.75左右。这说明模型对“物体身份”和“动作类型”有一定程度的自发解耦能力,没人专门教也会。
组合顺序的判别更让人意外:训练时压根没给同一场景准备不同顺序的演示,模型照样学会了理解顺序差异。组合语义这件事,模型似乎能从更宏观的时序结构里自己悟出来,不用专门拿捏。
抓取部位这类功能性判别就完全不同了。训练数据里每个物体只配一种抓法,比如水杯永远抓杯身,模型完全学不会自己推断该抓哪个部位,相关任务成功率从平均0.75往下掉,卷尺这类对象更是从0.77掉到0.40,几乎腰斩。必须人为准备“同一物体多种抓法”的数据,这项能力才学得会。
这个发现挺有启发性。机器人学习里,不同类型的知识“可学性”不一样。时序结构这种偏抽象、宏观的规律,模型靠大量数据自己就能摸出来,有点像小孩看多了大人做事的先后顺序,自然懂了“先穿鞋后出门”,不用专门教。可“抓哪个部位才省力、才稳当”这种细粒度操作技巧,更依赖具体的、针对性的示范,光靠泛化推理学不会,得手把手演示过才行。跟学骑自行车类似:平衡感这种整体性的东西,多骑几次自己就悟了;急转弯该怎么压车身这种具体技巧,光靠悟性不够,得有人专门带你练过那个动作。
七、鲁棒性测试:换个人演示,机器人会不会懵
真实场景里,示范的人、光照、背景不可能每次都一样。论文专门测了模型在各种干扰下的表现。
结果显示,换演示者的手部外观(比如戴手套)、换演示风格、改光照、改背景色、加杂物干扰,模型成功率基本稳定在0.75到0.80之间,波动很小。这套训练方法确实让模型学会了忽略不该在意的细节。
但有一项指标特别扎眼:去掉前面说的“跨组配对”策略后,模型在空间位置发生偏移时的成功率从0.79暴跌到0.51,近乎腰斩;其他几项干扰下的表现变化并不大。
这个结果很能说明问题。跨组配对不是锦上添花的小技巧,而是让模型学会“跟物体走,而不是跟轨迹走”的关键机制。论文配的对比图很直观:目标物体的位置相对人类示范发生了偏移,没经过跨组配对训练的模型会机械照搬示范里手部移动的方向,结果抓了个空;经过跨组配对训练的模型,准确追着物体真实位置去抓。
这有点像跟着导航走那条熟悉的回家路,忽然小区门口施工封了道。没经过跨组配对训练的模型,就是那种把路线背死的司机,一遇改道立刻发懵,还往封死的路口开。经过跨组配对训练的模型则更像只认“目的地是家”的司机,路线临时变了也能绕过去、找对路。
论文末尾还做了一个挺讨喜的可视化实验:把模型处理示范视频时的注意力热力图画出来,看它究竟盯着视频里的哪些部分。
规律挺清楚。任务刚起步,注意力基本只落在人类的手上;手第一次碰到目标物体那一下,注意力强度冲到峰值;操作中段,注意力跟着手和物体一起走,强度却比较温和;任务接近完成,注意力又冒出第二个峰值。
这个结果挺耐人寻味。模型并不是把整段视频均匀“扫”一遍,而是像人看别人干活那样,自然盯住了几个关键节点:手和物体接触的瞬间、任务收尾的瞬间。人学新技能时的注意力分配也差不多——看师傅操作一台新机器,眼睛最紧的往往是“手碰到开关那一下”和“最后成功启动那一刻”,中间那段按部就班的过程反倒不必全神贯注。
Q&A
Q1:SimpleICL是什么?
A:这是中科院自动化所和高德地图团队提出的一套机器人上下文学习框架。它先想清楚机器人该从人类示范视频里学什么、忽略什么,再据此设计数据采集方法,以及一个轻量的视觉提示编码模块;不靠海量预训练,也能拿到较强的零样本泛化能力。
Q2:机器人上下文学习和传统的遥操作示教有什么区别?
A:传统遥操作得由工程师手把手操纵机械臂,一遍遍录动作数据,成本高、门槛也高。上下文学习换了个路子:机器人看一段人类操作视频,就能推断任务该怎么做,不必为每个新任务单独采集大量机器人数据,数据获取成本降下来不少。
Q3:为什么机器人看示范视频会学错东西?
A:示范视频里同时混着动作类别、物体身份、空间轨迹、操作顺序、抓取部位等多种信息。机器人要是不加区分地全盘模仿,很容易学到错误的捷径——比如把人手移动的具体轨迹死记下来,却没真正弄懂该抓哪个物体、该怎么抓。