微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 Zetta:当机器人开始自己给自己"打补丁"

Zetta:当机器人开始自己给自己"打补丁"

2026-09-18 18:32
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-09-18 18:32 科技行者

2026年,一个叫Zetta的系统在做一件挺反直觉的事情:它不训练机器人,反而让机器人的"大脑"完全冻结不动,却硬是把任务成功率从34.5%拉到了90.8%。

这听起来有点奇怪。我们过去几年对机器人智能的想象,基本都建立在一个信念上:模型越大,数据越多,机器人就越聪明。可Zetta团队做的事情恰恰相反,他们把最强的视觉语言动作模型(VLA*:Vision-Language-Action Model,一种能同时理解图像、语言指令并直接输出机器人动作的端到端模型,是当前具身智能的主流技术路线)

完全冻结,一个参数都不许改,然后往它旁边加了一层会自己进化的"监工系统"。结果这个监工系统让机器人在同样的任务上,成功率翻了将近三倍。

这件事值得琢磨的地方在于,它揭示了一个被忽略很久的问题:我们训练机器人模型的方式,和机器人真正在物理世界里失败的方式,压根不是一回事。

机器人到底难在哪里

先说个背景。过去几年,机器人智能主要沿着两条路线在走。

第一条路是端到端训练,也就是直接喂给模型海量的演示数据,让它自己学会"看到什么就做什么"。这条路上诞生了π0.5、GR00T这些明星模型,它们在DROID、Open X-Embodiment这些大规模数据集上训练,确实展现出了惊人的泛化能力。但问题也很明显:真实世界里的物理数据太贵了,采集一次真机演示的成本远高于互联网文本,而且机器人一旦遇到训练数据里没见过的情况,比如抓取时物体轻微滑动、或者接触面有点不对劲,整个任务链条可能瞬间崩掉。

第二条路是用大语言模型当"指挥官",去调度各种策略模型、代码、工具。这条路的好处是灵活,坏处是"名不副实"。论文里有句话说得挺扎心:这些系统号称能从自我探索中学习,但实际上根本没做到闭环。它们大多是开环的,一旦任务开始执行,agent就闷头按照预设的固定脚本走,只有等整个任务跑完了才回头复盘一下。

这就带来一个致命的时间差问题。

物理世界里,机器人和环境的交互往往是毫秒级的。抓取动作里手指打滑了,这个信息需要在几十毫秒内被捕捉并响应,可现在这些做"事后复盘"的大模型agent,推理一次动辄几百毫秒甚至几秒钟。等它反应过来,机器人可能已经把杯子摔了。

这就好比你在开车,方向盘打歪了要等到撞上护栏之后,车载电脑才慢悠悠地分析"刚才那把方向盘打早了"。分析得再准确,车已经撞了。事后的教训对下一次开车有用,但对这一次的事故毫无帮助。

这正是Zetta想要解决的核心矛盾:怎么让一个反应慢的大脑,在一个反应必须极快的身体上,实现真正的实时纠错。

冻结大脑,进化"神经反射"

Zetta给出的答案挺巧妙:既然大模型天生反应慢,那就别让它管每一步的细节判断,而是给机器人的执行层装一套独立的、高频运转的"评判官"和"应急预案库"。

论文里把这套东西叫做harness*:字面意思是"挽具"或"辅助支架",在这里指代包裹在冻结的策略模型外面、负责监控和纠正执行过程的一整套辅助系统,包含critic(评判器)、recovery(恢复策略)和tool(工具)三个部分。

这套系统由三个部件组成。第一个叫运行时评判器(critic),它不负责决策,只负责高频扫描机器人当前的执行轨迹,一旦发现异常,比如抓取力度不对、物体位置偏移了,立刻生成一个结构化的报告,把"哪里出问题了"说清楚。第二个叫恢复剧本(recovery playbook),这是一套针对具体失败原因预先准备好的应对策略。第三个叫工具集(toolset),是具体执行恢复动作时用到的各种可执行程序,比如重新抓取的算法、姿态检测模块等等。

这三样东西合起来,构成了一个可以持续进化、但完全独立于底层VLA模型的"外挂系统"。

这里有个特别重要的设计原则,叫权威分层(authority hierarchy)。

评判器虽然高频运转,一直在盯着执行过程看,但它自己没有决策权。真正拍板要不要介入的,是另一个叫编排agent(Orchestrator Agent)的角色。这个编排agent的逻辑本身是固定不变的,它扮演的是"审批人"的角色:评判器报上来一个异常,编排agent要核实证据,确认真的出问题了,才会批准触发恢复动作。

为什么要这么麻烦地分两层?

想象一下工厂流水线上有个质检员和一个班组长。质检员眼睛尖,发现产品有瑕疵立刻按下警报按钮,这个反应必须是本能级别的,越快越好。但按下警报之后,是不是要停产、要不要返工,这个判断得由班组长来定,因为班组长要综合考虑当前订单进度、返工成本这些更复杂的因素。如果让质检员自己就能停产线,那流水线可能被误报搞得鸡飞狗跳;可如果质检员发现问题也得等班组长慢悠悠开会讨论,瑕疵品早就流到下一道工序了。

Zetta的设计就是把这两种角色拆开:评判器负责"快",编排agent负责"准"。评判器可以疯狂地高频扫描,但它每次只是提议,不会擅自行动,真正的执行权始终握在有全局视野的编排agent手里。

这个设计还隐含了另一层考虑,论文里管这个叫"再入契约"(VLA Re-entry Contract)。

恢复动作执行完之后,不是简单地把控制权丢回给冻结的VLA模型就完事了。系统会检查两个条件:一是原来触发异常的证据是不是已经被彻底清除了,二是当前的物理状态是不是已经稳定下来了,比如接触力是不是不再剧烈晃动。只有这两条都满足,才会把控制权交还给VLA。

这个设计其实是在防止一种更隐蔽的失败模式:恢复动作刚做完,系统状态其实还在晃荡没稳定,这时候如果VLA贸然接手,很可能因为状态还没到位而立刻引发第二次失败。这就像是运动员刚做完一个高难度动作,还没站稳,裁判就急吼吼地喊"下一个动作开始",结果运动员一个趔趄摔倒了。稳一稳,等确认真的站稳了再继续,这一步看似多余,实际上是整个系统鲁棒性的关键。

从失败里"提炼"出来的能力,而不是"硬编码"进去的

光有一套实时监控的机制还不够,因为这套评判器和恢复策略最初也是不完善的。Zetta真正厉害的地方,是它设计了一整套让这套监控系统自己变得越来越聪明的流程。

这个流程被拆成了三个时间尺度不同的循环。最快的一层就是前面说的"评判-恢复"闭环,发生在每一步动作层面。中间一层叫做"批量优化循环",每跑完一批任务之后,系统会把这批任务里的失败案例聚类分析,尝试提出新的评判规则和恢复策略候选方案。最慢的一层是"验证门控更新循环",只有那些被证明真正有效、而且能在没见过的场景里也管用的新策略,才会被正式收编进技能库。

这个过程被拆成三个阶段。

第一阶段叫失败画像。系统先在一批开发集种子任务上跑纯VLA执行,不做任何干预,把所有失败轨迹和成功轨迹都记录下来。成功轨迹会被整理成一个叫做"成功参考索引"(Successful Reference Index)的东西,相当于给系统建立一个"正常应该长什么样"的参照系。

失败轨迹则会经历一次特别值得说道的处理,叫做"最早缺失里程碑"(First Missing Milestone)。

具体的做法是,给每个任务设定一串必须依次达成的语义节点,比如"接近物体、抓取、举起、运输、放置"。系统会找出轨迹中第一个没能达成的节点,把这个作为定位失败发生阶段的关键线索。

这个设计挺聪明的一点是,它不是简单地看"任务最后成没成功",而是精确定位"到底是在哪个环节第一次出的岔子"。

这就好比医生看病历,不会只写"病人今天状态不好",而是会精确记录"从下午三点开始血压异常"。有了这个精确的时间戳,后面的诊断才有的放矢,不至于满头雾水地去猜。如果没有这个精细定位,系统只能笼统地知道"这个任务失败了",却完全不知道该往哪个方向去修,那么后面所有的诊断和修复都会变成大海捞针。

第二阶段是诊断与修复。这里有个我觉得特别有意思的设计,叫"层级化因果诊断"(Hierarchical Causal Diagnosis)。

诊断agent遇到一个失败案例,不会一上来就去调底层的控制参数,而是严格按照一个从高到低的优先级顺序去排查:先看评估逻辑本身是不是搞错了,再看评判器是不是误报或漏报,再看状态感知是不是出了偏差,再看规划或控制层面是不是没处理好物理约束,再看恢复策略本身有没有问题,最后才轮到具体的参数调整。

这个顺序背后藏着一条很重要的设计哲学:能用高层逻辑解决的问题,绝不去动底层参数。

为什么这么讲究?

因为直接调底层参数,虽然往往能让眼前这一个失败案例过关,但代价是很可能把整个动作分布搞歪,导致模型在其他没测试过的场景里表现更差。这有点像是家里的抽屉卡住了打不开,你要是直接抡起锤子把卡住的地方砸开,这一次确实开了,但抽屉的轨道可能已经变形,以后每次开合都会更费劲。真正靠谱的做法是先看看是不是东西塞歪了,松一松再试试,实在不行才考虑动结构。Zetta的层级诊断逻辑,本质上就是"先松动,再考虑动结构"这套思路的工程化版本。

诊断完成、找到根因之后,修复agent会打一个"最小补丁"(minimal patch),只针对这个根因动手,并且这个补丁必须经过一次严格的闭环验证:先做诊断回放,确认修改后的评判器确实能正确识别当初的偏差点;再做一次全新的闭环执行,从头跑一遍,看这次是不是真的能顺利抵达任务目标。

第三阶段是巩固与泛化。单个案例修复好之后,系统还会做一次"跨案例一致性"检查,把同一类失败里多个不同种子案例的修复方案,合并成一套更通用的机制,打包成一个可复用的"技能包"(Harness Package)。

这个技能包最后还要经过一轮相当严苛的考验,叫"历史回归"和"留出评估"(Held-out Evaluation)。前者要求这个新技能包在原来那批失败案例上必须做到百分之百解决问题,后者则是把它放到一批系统压根没见过的全新场景里去测试,只有两边都通过,这个进化才算真正完成。

如果留出评估发现了新的失败模式,系统不会将就着放过去,而是把这个"意外失败"的种子重新归类为开发集,再挑一批全新的、真正没见过的场景来做最终验证。这个设计相当克制,宁可多跑几轮,也不让"侥幸过关"混进正式版本。

让机器人跑得快,才能让它学得快

聊到这里,你可能会有个疑问:这套持续进化的机制,得靠海量的失败案例来喂养,可机器人的每一次尝试都需要真实的仿真环境去跑,这个跑的速度会不会成为整个系统的瓶颈?

答案是肯定的,而且论文团队对此有非常清醒的认识。他们专门为此造了一套叫Z-Infra*:论文中提出的专用底层执行系统,负责将agent的决策逻辑与背后真实调用的计算硬件资源完全解耦,从而实现大规模并行的机器人任务执行。

的基础设施,论文里管这个思路叫"解耦"(decoupling)。

具体的困境是这样的。一次机器人任务的执行,同时需要好几种性质完全不同的计算资源:仿真环境的物理引擎需要CPU持续运算;策略模型的推理需要GPU;感知模型比如物体检测又是另一种GPU负载,延迟要求还不太一样;还有一堆坐标变换、碰撞检测之类的纯CPU计算,要求微秒级响应。这些负载类型完全不同,用同一套调度策略去伺候它们,注定是低效的。

更麻烦的是,agent的执行过程本身极其不规律。这一步可能只需要调用一次策略模型,下一步却可能同时触发感知、规划外加好几个基础操作。任务什么时候创建、什么时候暂停、什么时候销毁,完全取决于agent实时的探索行为,毫无规律可言,这让传统那种"预先分配好资源"的静态调度方式完全失效。

Z-Infra的解法是彻底把"agent想做什么"和"底层用什么硬件去做"这两件事分开。agent发出的请求,只需要说清楚"我要哪个模型、哪个环境、做什么操作",完全不用关心具体是哪台机器、哪块GPU在执行。

这就像是你去餐厅点餐,只需要告诉服务员你要一份牛排,完全不需要知道后厨是哪个厨师在哪个炉子上给你做。如果反过来,顾客点餐时必须指定具体是三号灶还是五号灶,厨房调度效率会因为顾客的瞎指挥而大打折扣。把"点什么"和"谁来做"分开,才能让后厨根据实际的忙闲情况灵活调配。

这套架构分成三层。控制平面(Control Plane)是所有请求的统一入口,负责路由和容错;环境工作层(Environment Worker)专门管理各种仿真环境的生命周期;推理工作层(Rollout Worker)专门负责GPU上的模型批量推理。三层之间通过有边界的异步通道通信,既保证了并发效率,又不会因为请求堆积把系统压垮。

其中有个很实际的优化,叫资源共享组(Resource-Sharing Group)。对于像LIBERO、RoboCasa这类基于MuJoCo物理引擎的仿真环境,系统会把环境模型编译一次,做成一个可复用的模板,后续每个并行的任务实例都从这个模板"派生"出自己的状态,而不需要每次都重新编译整个物理模型。这个做法把原本需要反复做的"准备工作"提前摊薄了,大幅降低了每次开新任务的开销。

论文还提到了一个挺硬核的工程细节,叫模型分区(Model Partitioning)。现在主流的VLA模型内部其实分成两个功能完全不同的部分:一个是负责理解图像和语言的视觉语言模块,另一个是负责把这些理解转化成具体动作指令的动作专家模块。这两部分的计算特性差异很大,团队把它们拆成两个独立进程分别调度,中间用CUDA IPC来传输数据,免去了昂贵的数据搬运开销。这一项优化单独就带来了53%的延迟下降,以及2.4倍的吞吐提升。

这些优化叠加起来,效果相当直观。有Z-Infra支撑的系统,推理延迟比另一个对照系统RPent降低了91%,相当于11.1倍的加速;有效任务吞吐量从每分钟1.7次提升到35.1次,提升了20.6倍。

数字背后的意义其实很简单:自我进化这件事,本质上是拿"经验"喂养出来的,你能跑得越快,你能攒的经验就越多,系统就能进化得越快。基础设施的效率,直接决定了智能进化的速度上限。

从10%到95%,那些"顿悟时刻"

理论说了这么多,最打动人的其实是几个具体的实验现象,论文里管这个叫"顿悟时刻"(Aha Moment)。

在LIBERO-Pro的一个任务里,机器人要把酒瓶放进碗里。刚开始纯用冻结的VLA模型,成功率只有10%。第一轮进化之后,团队引入了一个"预抓取分级"的机制,试图改善接近物体的姿态,结果成功率只挪到了15%,几乎没什么起色。

问题出在哪儿呢?第一轮的修复根本没戳中真正的痛点,酒瓶经常是在运输过程中从夹爪里滑脱掉的,而这个修复完全没管这一茬。

第二轮,团队终于找准了症结,加入了一个专门监控"抓取是否稳固保持"的评判器,只有确认抓取状态真的稳定了,才允许开始运输。就是这么一个改动,成功率直接从15%飙到了95%。

这不是渐进的改善,是断崖式的跃升。

论文里把这种现象总结得挺到位:早期的修复往往只是在修补表面症状,或者说是过拟合到某一个具体的失败案例上,自然效果有限;而真正的突破发生在系统终于识别出那个决定性的物理瓶颈,比如抓取力是不是稳固、末端执行器的对齐姿态对不对,一旦这个真正的瓶颈被解决,整个执行链条才能重新回到模型原本擅长的分布区间里,成功率因此才会出现跳跃式的提升。

类似的顿悟在RoboCasa的任务里也反复出现。比如"打开电水壶"这个任务,前两个版本的修复一直卡在88%没有寸进,直到系统意识到只需要做一个简单的末端执行器重新对齐,就能恢复到模型期望的几何关系,成功率立刻窜到94%。再比如"滑动洗碗机架子"这个任务,关键突破点是重新建立"居中接触",成功率从76%直接跳到94%。

这些案例合在一起讲了一个道理:物理智能能够规模化提升的最小单元,不是某条具体的轨迹,而是那些真正决定成败的物理状态变量,像抓取稳定性、接触对齐这些东西一旦被识别出来并加以修复,收益是跳跃式的,而不是缓慢积累的。

学会的技能能不能"举一反三"

如果每学会一个技能只能用在一个任务上,那这套系统的价值就要大打折扣了。论文里专门做了一系列实验,来验证这些进化出来的技能能不能"零样本"迁移到从没见过的相似任务上。

一个很典型的例子是RoboCasa里的PnP-Stove任务(把物体从台面拿到炉子上)。团队在这个任务上经过三轮进化,依次学会了预抓取对齐、抓取丢失后的重新抓取、以及稳定放置这三项能力。累积起来之后,这套能力被原封不动地套用到三个相关但从没专门训练过的任务上:PnP-Sink、PnP-Cabinet、PnP-Toaster。结果是,PnP-Sink的成功率从58%提升到82%,PnP-Cabinet从62%提升到80%,PnP-Toaster从72%提升到90%。整体平均涨幅达到20个百分点,而且是在完全没有对目标任务做任何额外训练的前提下实现的。

这背后的逻辑其实挺关键的:这些学到的技能之所以能迁移,是因为它们捕捉的是任务无关的物理变量,比如末端执行器和目标物体之间的相对几何关系、接触力的稳定性,而不是死记硬背某个具体任务里的具体轨迹。

这就好比一个熟练的木匠,他真正掌握的不是"给这张特定的桌子打磨这个特定的角"这种孤立的技能,而是"怎么判断木料纹理走向、怎么控制打磨力度"这种更底层的手感。这种手感一旦养成,换一张桌子照样能用。反过来,如果他只是死记硬背了这一张桌子的打磨路径,换一张桌子形状稍微不一样,他就完全抓瞎了。

类似的迁移实验在articulated interaction(铰接式交互,比如开关阀门、打开柜子这类需要和有转动部件的物体互动的任务)上也得到了验证。团队在TurnOffStove任务上学到了目标定位、避碰式接近、稳定接触这三项能力,迁移到TurnOnSinkFaucet、OpenCabinet、TurnOnMicrowave这几个任务上,平均成功率从64%提升到80%,涨了16个百分点。

最终的成绩单

把所有这些机制叠加起来跑一遍完整流程,最终的成绩相当亮眼。

在RoboCasa的18个任务上,团队用的底层策略模型是GR00T N1.5

*:英伟达发布的一款开源人形机器人通用基础模型,是本论文中RoboCasa实验的冻结底层策略。

纯用这个模型,平均成功率是73.56%,套上Zetta的进化机制之后,提升到93.56%,涨了20个百分点。其中一些接触密集型或长时程任务提升尤其明显。

在LIBERO-Pro上,底层用的是π0.5这个策略模型,涵盖Goal和LIBERO-10两套任务集,分别测试"任务重定向"(T,把指令重新定向到另一个合理目标)和"位置互换"(S,交换物体初始位置)这两种扰动。整体平均成功率从32.00%提升到71.13%,涨了39.13个百分点。其中Goal(T)从31.0%涨到92.5%,Goal(S)从38.0%涨到89.0%,涨幅尤其显著。

这里有个特别值得强调的地方:所有这些提升,都是在底层策略模型完全冻结、一次都没重新训练的前提下取得的。

也就是说,这套系统没有多花一分钱去训练更大的模型,也没有采集更多的演示数据,而是通过一套持续自我诊断、自我修复的机制,硬生生把同一个模型的表现"压榨"了出来。

这对整个行业的启示其实挺大的。过去几年,大家习惯性地把"提升机器人性能"等同于"训练更大的模型、收集更多的数据",Zetta提供了一条完全不同的路径:模型本身可能已经足够强,真正拖后腿的,是执行过程中缺乏实时纠错的能力。补上这一环,收益可能比单纯堆数据、堆算力更立竿见影。

案例细看:一次任务里发生了什么

论文附录里有个案例,把整个机制的运作过程描绘得特别细致,值得单独拿出来讲讲。

这是一个PnP(拾取放置)任务。机器人先是顺利完成了抓取,开始把物体运往目标位置。运输途中,物体突然从夹爪里滑脱了。评判器立刻捕捉到这个"抓取丢失"的信号,打断了原本的执行流程,触发一个"重新接近"的恢复动作,机器人重新靠近物体,建立新的抓取,之后控制权重新交还给VLA继续运输。

紧接着第二次异常发生了:重新抓取时选的姿态其实是不可行的。这时候系统没有傻乎乎地重复同一个动作,而是评判器识别出"姿态无效"这个信号,调用了一个叫GraspGen*:一种能根据目标物体形状动态生成可行抓取姿态的算法模块,在这个案例中被用作恢复策略里的具体执行工具。

的工具,生成了一个新的可行末端执行器姿态,重新执行抓取,恢复了稳定的接触配置。

最后,当物体快接近目标位置时,评判器又检测到"近目标放置风险",这次触发的是一个基于CAP的稳定放置策略,把最后的收尾动作完成,系统验证再入条件满足之后,才宣告这次任务结束。

这个案例说明了一件事:这套系统不是那种"跌倒了就整个从头再来"的笨办法,而是能针对不同性质的失败,分别触发不同的、精确对症的恢复手段,并且每次局部修复完成之后,都会把控制权还给主策略模型,而不是让恢复系统一直占着不放。

论文里另一个来自LIBERO-Pro的案例也很说明问题,展示的是"失败前线"如何随着多轮进化被逐步向后推移。最初版本的机器人在推盘子这个任务上,因为压根没有及时的恢复机制,直接把整个执行预算耗尽了。第一轮进化加入了一个"抓取保持门控切换"的机制,解决了"没有及时干预"这个问题,但暴露出新的问题:抓取的稳定性没法被验证。第二轮加入接触检测和抓取恢复,盘子终于被成功拿到手,却又暴露出运输途中抓取会丢失这个新问题。第三轮针对性地加入了有边界的重新抓取重试机制,才最终解决了整条链路上的问题,任务顺利完成。

这个渐进的过程特别形象地展示了"进化"这个词的真实含义。它不是一步到位地把所有问题都解决掉,而是像剥洋葱一样,每解决一层,就会暴露出下一层更深的问题,直到最后所有层都被处理干净。

Q&A

Q1:Zetta是什么?

A:Zetta是清华大学AIR研究院和Z-Trans AI团队提出的一套闭环具身智能框架,核心思路是在完全冻结底层策略模型(比如VLA)的前提下,通过在线进化的运行时评判器和恢复技能,持续提升机器人任务执行的成功率。

Q2:Zetta需不需要重新训练机器人模型?

A:不需要。Zetta的核心设计原则就是保持底层策略模型的参数完全冻结,所有的性能提升都来自外挂的评判器、恢复策略和工具集的持续进化,而不是对模型本身做微调或重新训练。

Q3:Zetta带来的性能提升具体有多少?

A:在RoboCasa基准上,成功率从73.56%提升到93.56%;在LIBERO-Pro基准上,从32.00%提升到71.13%。同时配套的Z-Infra基础设施让推理延迟降低91%,任务吞吐量提升20.6倍。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-