你有没有想过一个问题:训练一个机器人去抓取物体,到底难在哪里?
如果你答案是"难在硬件不够精密",那你可能猜错了方向。真正的麻烦在于,我们没法在真实世界里让机器人反复摔东西、撞桌子、试错上万次。想象一下你要教一个孩子骑自行车,但每次摔倒都要花一个月修理伤口,这显然行不通。于是研究者们想到了一个办法:在电脑里造一个虚拟世界,让机器人在里面随便摔、随便试,练到足够熟练,再把学会的本领搬到真实机器人身上。
这个想法听起来很美好,但现实很骨感。
从虚拟到现实,中间隔着一条深沟
模拟器里的光线、材质、物理碰撞和真实世界总归有差距。一个在模拟器里练得炉火纯青的抓取动作,搬到真实机器人身上,可能因为桌子反光不一样、物体材质软硬不同,直接抓空。这就是所谓的"sim-to-real gap"(模拟到现实的差距:指虚拟训练环境和真实物理世界之间,在视觉外观、物理动力学、接触力等方面存在的系统性差异,这种差异会导致模拟器里训练好的策略在真实机器人上失灵)。
过去解决这个问题的主流思路,是在模拟器里疯狂"加噪声":把桌子颜色随机改、把光线随机调、把物体材质随机换,这种做法叫做"域随机化"(Domain Randomization:一种训练技巧,通过在模拟环境中大量随机化视觉和物理参数,逼迫模型学会对这些变化不敏感的特征,从而提升真实环境下的泛化能力)。这个思路本身没错,但它有个隐藏的代价:你把大量的训练精力都花在了"认出这是个苹果,不管它是红的还是绿的"这种低层次感知能力上,却没有多少精力留给"怎么把苹果放进篮子里再去拿勺子"这种任务级别的策略学习。
打个比方,这就像你花了三年时间练习如何在任何光线、任何背景下一眼认出一个苹果,却没花时间学怎么做一道菜。如果你不先搞定低层感知,的确没法往下走,但如果你把所有预算都砸在这上面,你最后还是不会做菜。这正是传统域随机化方法面临的真实困境:它解决了"看得准"的问题,却没有解决"干得好"的问题。
Skill2Real这篇论文想解决的,就是这第二个问题:怎么让机器人在模拟器里学到的不是"怎么适应各种噪声",而是真正可复用、可组合的任务知识,然后把这些知识原封不动地搬到真实机器人身上,一次都不用在现实世界里重新训练。
这篇论文交出的成绩单相当亮眼。在一个叫LIBERO-Pro Long的陌生测试集上,原本什么都不会的机器人成功率只有2%,用上Skill2Real训练出来的技能库之后直接飙到56.3%。在真实的UR5e机械臂上,用了全套技能体系后任务完成率从27.5%跳到78.75%。这不是简单的参数调优,而是一整套全新的学习框架带来的质变。
把"怎么验证"和"怎么执行"彻底分开
Skill2Real的核心设计思路,是把"用来监督学习的信息"和"实际执行时能用的信息"彻底分离开。
这句话听起来有点绕,我们换个说法。在模拟器里训练的时候,系统可以偷看一些"上帝视角"的信息,比如物体的精确坐标、是否真的被抓住了、任务是不是真的完成了,这些信息在真实世界里是拿不到的,因为真实世界没有"内部状态"可以直接读取,机器人只能靠摄像头看、靠传感器感觉。论文把这种上帝视角的信息叫做"特权信息"(Privileged Information:只有在模拟器训练阶段才能获取的内部状态数据,比如物体的真实坐标、抓取是否成功的精确判定等,这些信息在真实部署时无法获得)。
Skill2Real的做法是:让特权信息只负责"打分和纠错",但绝不让它渗透进最终学到的技能本身。技能本身必须完全建立在"公开观测"(Public Observation:机器人通过摄像头等传感器实际能获取到的信息,包括RGB图像、深度图、末端执行器位姿等,这类信息在模拟和真实环境中都可获得)和"API返回结果"之上。
这就好比你在练习考试一样,监考老师可以用标准答案来给你打分、告诉你哪里错了,但你做题的时候手上只能有题目本身,不能提前看到答案。等真正上考场(也就是真实部署)的时候,监考老师(也就是那些特权信息和评判机制)就彻底消失了,你必须靠自己平时练出来的真本事去答题。如果不这样设计会怎样?如果技能里混进了只有模拟器才有的"作弊信息",那机器人一旦脱离模拟器就会彻底懵掉,因为它依赖的那些信息在现实里根本不存在。
这个"公开接口"在论文里有个专门的名字,叫共享代码式策略接口(Shared Code-Based Policy Interface:一套在模拟环境和真实环境中语义一致的API接口,机器人的决策程序只通过这套接口获取观测、执行动作,具体的感知、标定、底层控制则由各自环境的后端实现,从而让高层任务知识可以跨环境复用)。
这个接口一共定义了18个具体操作,比如获取场景图像、获取深度信息、构造抓取姿态、移动机械臂、控制夹爪开合等等。关键在于,这些操作在模拟器和真实机械臂上的具体实现可以完全不同,一个是渲染出来的虚拟图像,一个是真实摄像头拍的照片,但它们对外暴露的"语义"是一样的,调用方式也完全一样。机器人决策的"大脑"只需要认识这套通用语言,不需要关心底层到底是谁在干活。
三个角色互相制衡,像一个微型的审稿流程
Skill2Real的学习机制由三个角色组成,论文给它们起了一套很形象的名字,叫Proposer-Verifier-Governor循环(PVG循环:一种不对称的三方协作机制,提议者基于公开观测提出行动方案,验证者用特权信息诊断执行结果并转化为公开反馈,管理者根据验证证据决定是否将更新纳入长期技能库)。
提议者(Proposer:负责根据当前公开观测生成可执行程序、提出技能更新建议的智能体,它是唯一在真实部署时仍然存在的角色)是实际干活的那个,它只能看公开信息,根据任务指令和当前摄像头画面,写出一段可执行的代码去操作机械臂。
验证者(Verifier:负责诊断执行结果的智能体,它可以查看模拟器里的特权证据,但只能把诊断结果转化为基于公开观测能理解的反馈,不能直接把特权信息泄露给提议者)相当于一个能看到标准答案的阅卷老师,它会告诉提议者"你这次抓取失败了,原因可能是碰到碗边太宽的地方而不是碗底",但它绝不会说"物体的真实坐标是(1.2, 0.5, 0.3)"这种只有模拟器才知道的话。
管理者(Governor:负责审核候选技能更新的智能体,它会要求新提出的技能在多次独立的验证试验中反复证明有效,才会把它正式写进长期记忆库,避免把一次偶然的成功误判为可靠的技能)则是最后把关的人,它不会因为提议者说"我这次成功了"就轻信,而是要求这个新技能经过25次独立的验证测试,确认确实稳定有效之后,才会把它正式写进技能库。
这个设计其实很像学术论文的审稿流程。作者(提议者)写完论文投稿,审稿人(验证者)指出问题但不会把自己的研究数据直接告诉作者抄袭,最后编辑(管理者)要看到足够的审稿意见和修改证据才决定是否录用。如果没有这套层层把关的机制会怎样?很可能一次运气好的成功就被当成了"学会了",结果这个所谓的技能一遇到稍微不同的场景就失灵,整个技能库会被大量不可靠的垃圾知识污染。
论文做了专门的消融实验来验证这套机制的价值。去掉验证者之后,在LIBERO-Pro Long上的最终成功率从56.3%掉到39%,去掉管理者则掉到43%。这说明这两个角色都不是摆设,少了任何一个,学到的技能质量都会明显下降。
小脑管手感,大脑管规划
Skill2Real还有一个很巧妙的设计,就是把学到的技能分成两层,论文用了一个生物学的比喻,叫小脑(Cerebellum:负责学习可复用的局部操作技能的记忆模块,比如如何抓取、如何放置、如何打开抽屉等具体动作,这一层专注于单次动作的精确执行)和大脑(Brain:在小脑技能库被冻结之后学习的任务级记忆模块,负责把多个局部技能按正确的顺序和逻辑组合起来,完成需要多个步骤才能达成的长程任务,并在出错时进行调整)。
这个比喻其实相当贴切。真正的人类小脑负责的是精细动作协调,比如你伸手去拿杯子的那个瞬间的手部肌肉控制,这是一种不需要你刻意思考的"肌肉记忆"。而大脑负责的是"我现在要不要去拿这杯水、拿完之后要不要放到桌子另一边、如果杯子倒了要怎么办"这种高层次的决策和规划。
论文的训练分成两个阶段。第一阶段先训练小脑,让机器人反复练习抓取、放置、推动、开关抽屉这些基础动作,练到足够稳定之后,把这个小脑技能库彻底冻结,不再改动。第二阶段才开始训练大脑,让它学习怎么把这些已经练熟的基础动作组合起来,完成更复杂的长程任务,比如"把苹果从抽屉里拿出来放到篮子里,然后关上抽屉"。
为什么要先冻结小脑再训练大脑,而不是让两者同时学习?这里有个很现实的考量。如果让两层同时变化,就好比你同时在学骑自行车的平衡感和学怎么规划一条进城的骑行路线,两边都在变,你很难判断到底是平衡感没练好导致摔倒,还是路线规划出了问题。把小脑先练稳,固定下来,这样大脑在学习任务规划的时候,就有一个稳定可靠的"工具箱"可以依赖,不用担心工具本身随时在变。如果不这样设计会怎样?实验数据很直接地回答了这个问题:在LIBERO-90上,只有小脑技能时成功率是35.3%,加上大脑的任务编排能力之后直接跳到56.3%,这多出来的21个百分点,正是来自于"把已经学会的动作正确地串起来"这件事本身带来的价值,而不是单个动作做得更准了。
更有意思的是,这种两层架构在不同类型的任务上带来的提升并不均匀。论文把LIBERO-90的90个任务按操作类型分成了六大类,结果发现大脑训练带来的增益在"把物体放进分格储物盒""把物体放进篮子或托盘""在台面上摆放物体"这几类任务里特别明显,但在"把一个碗摞到另一个碗上"这种堆叠类任务里提升就很有限。用Claude Opus 5训练出来的技能库,在分格储物任务上从56.7%一路涨到100%,但在堆叠任务上始终卡在40%左右。这个细节其实很诚实地告诉我们,任务级别的规划能力主要帮上忙的是"选对顺序、选对位置"这类决策问题,而堆叠这种高度依赖手部精细控制的任务,瓶颈还是在底层动作的精度上,光靠聪明的规划弥补不了手不够稳这个硬伤。
真实世界的考验:从白桌子到花格子桌布
理论说得再好,最终还是要看真实机器人能不能干活。论文在一台真实的UR5e机械臂上做了四类任务的测试:指定物体的拿取摆放、按颜色或类别分类、用方块拼算式、以及开抽屉放东西再关上。
结果相当有说服力。什么技能都不加的情况下,机器人四项任务的平均完成率只有27.5%。只给它小脑技能(也就是基础动作能力),完成率涨到56.25%。但当小脑和大脑一起上阵的时候,完成率直接冲到78.75%。更值得注意的是,开抽屉放东西这个任务,只有在小脑和大脑同时具备的情况下才第一次做成功了,之前不管单独用哪一层,成功率都是0%。这说明有些任务天生需要"多步骤协调"才能完成,缺了任务级的规划能力,再精准的单次抓取动作也无济于事。
论文还做了一个挺有意思的鲁棒性测试,在不同的桌布和光线条件下重复执行同样的抓取任务。白色桌面、印花布桌布、红白格子桌布,机器人都能完成同样的土豆放盘子动作;在昏暗侧光下也能完成方块的抓取和摆放。这组对比实验想说明的是,技能学习过程中没有去刻意记住"桌子是什么颜色",而是学会了识别"物体在哪里、怎么抓住它"这种与具体视觉风格无关的通用能力。这背后依靠的其实是基础视觉语言模型(Foundation Vision-Language Model,VLM:指经过大规模图文数据预训练的通用多模态模型,具备跨越不同视觉场景进行语义理解和推理的能力,Skill2Real借助这类模型本身就有的跨域泛化能力,而不需要从零开始学习视觉表征)本身自带的跨场景泛化能力,Skill2Real没有重新去学一套视觉表征,而是站在了这些基础模型的肩膀上,把精力集中花在了学习任务知识这件事上。
和同类方法比,差距体现在哪里
论文把Skill2Real拿去和另外几个同样做智能体式机器人学习的工作做了对比,包括CaP-X、ASPIRE和Zetta。
在LIBERO-Pro Long这个长程任务测试集上,用GPT-6 Astra做执行者的Skill2Real在综合成功率和指令扰动测试中都拿到了最高分,分别是55.3%和75%,超过了Zetta的51.5%和63%。这个优势在指令改变的场景下特别明显,说明冻结好的局部技能可以被灵活地重新组合,去应对临时改变的任务要求。
但有一个地方Skill2Real反而落后了,在物体位置被随机调换的测试里,Zetta拿到40%,Skill2Real只有35.5%。论文很坦诚地分析了原因,在一些需要在狭窄空间里精确操作的任务上,比如把碗放进抽屉、把书放进分格收纳盒,基于端到端动作策略的方法反应更灵活,而Skill2Real目前基于代码生成的接口在这类场景里的实时反馈能力还不如专门训练的动作模型。这个坦率的局限性说明,代码即策略这条路线虽然在任务级组合上有优势,但在极度依赖连续手感调整的精细操作上,还没能完全追上专门为此优化的神经网络策略。
这篇论文最终呈现出的图景是,简单粗暴地往模拟器里塞各种随机噪声去硬扛现实差距,不是唯一的出路。把评判和执行分开、用三方制衡的机制筛选可靠的知识、再用两层架构区分动作技巧和任务规划,这套组合拳走出了一条不同的路径。而且这个结果似乎跟具体用哪个大模型关系不大,不管是GPT还是Claude的不同版本,只要套上这套训练框架,都能看到类似幅度的提升,这说明这套方法论本身提供的增量,是独立于底层大模型能力的。
写在后面
读这篇论文的时候,我一直在想一个问题:为什么"冻结"这个动作这么重要。
我们通常的直觉是,学习应该是持续的,越练越熟,越练越准。但Skill2Real反复强调,小脑练完之后就必须彻底冻结,大脑学完之后部署到真实世界也不能再改。这种"学完就封印"的设计,其实暗含着一种对可靠性的极端重视。因为一旦允许技能在真实世界里继续"自我进化",你就永远无法保证它今天学到的东西,会不会被明天一次失败的尝试带偏。与其让它一直处在不确定的流动状态,不如先在一个可控的环境里把它磨到足够稳定,然后像给古董文物做封存一样,把它定格下来再拿出去用。
另一个让我反复琢磨的细节是,论文里那个碗和抽屉的案例。管理者拒绝了三个看起来都挺合理的提案,关于接触点的局部几何规则、关于托盘目标的几何计算、关于进度检测的新判断逻辑,理由分别是层级越界和证据不足。只有一个关于"怎么从图像里认出用户说的左边那只碗"的提案被采纳了。这个细节让我意识到,一个真正可靠的学习系统,拒绝的智慧和吸收的智慧同等重要。大部分看起来言之有理的改进建议,最后都要被挡在门外,这才是让整个系统不至于被噪声污染的真正原因。
论文提到未来想把端到端的动作策略也作为可调用的工具接入这套框架里,弥补代码接口在精细操作上的短板。如果真的做成了,那会不会出现一种更有意思的分工:规划交给语言模型写代码来做,手感活儿交给专门训练的神经网络来做,两者在同一个任务里配合完成?这听起来像是把两条目前还在赛跑的技术路线,拧成了同一股绳。
Q&A
Q1:Skill2Real是什么?
A:Skill2Real是一个让机器人在模拟器里学习可复用技能,再零样本迁移到真实机械臂上执行的智能体框架,核心是用Proposer-Verifier-Governor三方机制学习局部动作技能和任务级规划两层知识。
Q2:Skill2Real和传统的域随机化方法有什么区别?
A:传统域随机化靠在模拟器里随机改变视觉和物理参数来提升泛化能力,容易把训练精力花在低层感知上。Skill2Real则把评判信息和执行信息分开,专注于学习可复用的任务级技能,再通过共享接口部署到真实机器人。
Q3:Skill2Real在真实机器人上的表现如何?
A:在UR5e机械臂的四项任务测试中,完全没有学习技能时平均完成率只有27.5%,用上完整的技能体系后提升到78.75%,其中开抽屉放物体这类多步骤任务只有在完整技能体系下才首次做成功。
好文章,需要你的鼓励
GeoVerse融合几何潜在扩散模型与Wan2.2视频生成先验,并引入全局空间记忆机制,实现了跨视角一致、生成质量高且推理速度快的新视角合成,在多个数据集上大幅超越现有方法GLD。
本文解读TT-VidT,一种通过分离外观锚点与动作令牌、结合Diff Compression训练目标的视频自监督方法。在24种架构目标组合的受控实验中,仅TT3D与Diff Compression搭配才能进入强动作敏感区,且计算量比同类方法降低近一半。
Q&A Q1:Imprint Reader是什么? A:Imprint Reader是上海人工智能实验室团队开发的模型,通过SMaRT训练方法学会读取另一个模型冻结的权重更新,把参数层面的变化翻译成自然语言描述,判断这次更新到底注入了什么知识或诱导了什么行为习惯。 Q2:MetaEdit能做什么? A:MetaEdit能把Reader对目标行为的梯度信号迁移到原始模型上,不需要任何目标任务的训练数据,只用一句行为描述就能定向调整模型参数,已经在安全性拒绝率调节、数学推理风格转变和工具调用能力提升上验证过效果。 Q3:Imprint Reader读权重更新的准确率高吗? A:目前还不高,知识类目标的Pass@100只有2%,行为类目标是16%,说明自由生成描述的可靠性有限,但相比原始模型完全答不出来的0%基线,已经证明了权重更新的自然语言读取是可行的。
统一多模态模型能看也能画,理论上该会自我修正。本论文提出UMM-Reflection,用整条轨迹的强化学习联合训练诊断和修图能力,GenEval提升12分,且迁移到多个未训练基准,揭示RL提升的是选择可靠性而非新能力。