GPT-6 Astra:65行词嵌入改写,指令成功率74.3%升至87.5%
含被改词元的 335 条留出指令,成功率从 74.3%升至 87.5%;另外 430 个回合,成败结果逐一不变。只改 65 行词嵌入,GPT-6 Astra 修复了一类机器人「换种说法就失败」的问题。任务是打开炉灶。研究者给机器人的指令是「activate the cooking appliances heat sou
斯坦福研究者只改动了65行词嵌入,就把
GPT-6 Astra身上一种机器人「换个说法就失灵」的毛病治好了。含被改词元的335条留出指令,成功率从74.3%升到87.5%;其余430个回合,成败结果逐一没有变化。
任务是打开炉灶,研究者下达的指令为「activate the cooking appliances heat source」,也就是启动烹饪设备的热源。原始策略却伸手去拿盘子,走了300步也没把活干完。
换成修改后的权重,同一个场景、同一条指令、同一个随机种子,机器人到第78步就完成了任务。整个编辑过程既没做梯度更新,也没加入新的机器人示范数据。
动图 1|同一条留出指令下,机器人修改前后的行为对比。左边原始策略在300步时超时;右边编辑之后第78步成功,之后停在终帧。两次场景相同,随机种子都是7,初始状态都是0,画面取自真实仿真录像。这是挑出来的修复案例,完整统计里也包含退化的回合。
论文题为《Can LLMs Debug Robots by Editing Their Weights?》,由Jusheng Zhang、Keze Wang和Liang Lin共同完成。效果最好的一组实验里,335条包含被改词元的留出指令成功率从74.3%提高到87.5%;另外430个回合的成功或失败结果逐一不变,所谓「零变化」说的就是这个。
论文、实际评测过的权重修改、代码以及全部16次实验记录都已公开。研究盯住的是一个具体问题:机器人已经会的操作能力,能不能靠局部改权重,被不同的说法更可靠地调出来?
论文:https://arxiv.org/abs/2611.09376
GitHub:https://github.com/jushengzhang/robot-weight-debugging
项目介绍与过程回放:https://jushengzhang.github.io/posts/robot-weight-debugging/zh.html
让LLM坐到调试器的位置上
实验用的是 OpenPI 发布的π₀.₅ LIBERO 检查点。这是一个视觉—语言—动作模型,输入相机画面、语言指令和机器人状态,输出下一步动作。基座已经预训练并微调过,编辑环节则以 LIBERO 操作任务和 LIBERO-Plus 指令改写作为测试环境。[1][5][6]
在这套设置里,Astra 的任务是检查并改动策略权重。研究者给它一个持续保留状态的 Python 工作区,还有可调用的前向工具。它能查看张量、写入替换值,再去看仿真任务的结果、动作或内部信号。改完之后,动作依旧由被编辑过的机器人策略算出来。
每条语言编辑配 50 次计入预算的工具请求,一次请求里可以包含多个回合或输入。Astra 靠练习样本的反馈来挑候选,测试集的结果不会回传给它。所以「没有梯度更新」并不等于「没有反馈」,也不代表机器人此前没接受过训练。
问题因此变了:不再是「机器人有没有学过这个动作」,而是「这条指令在模型里被表示成什么,已有行为能不能被更可靠地调用」。
动图 2|GPT-6 Astra 调整机器人权重的过程实录。Astra 怎样依据仿真反馈改动词嵌入、查验候选效果,最后留下 65 行修改?研究者把 50 次工具请求里的关键节点放了出来。左边是同一指令下改动前后的机器人表现,练习样本结果和工具反馈则放在底部。
65 行,改在语言进入模型的地方
指令进模型后,先被拆成词元(token)。词元不一定对应完整的英文单词。接着模型按词元 ID 从嵌入表里取出对应的一行向量,后面网络处理的就是这些数值表征。
Astra 最后留下的修改,都落在这张嵌入表上。它挑出一部分词元,把向量往更常见的任务表达上挪,比如 cooker→stove、basin→bowl、fermented→wine。有的行直接换成目标向量,有的只保留一部分原向量;碰上歧义,也能取多个目标向量的均值。
开场炉灶指令里的 cooking 就是个具体例子。对应词元的嵌入改成 25%的原向量加 75%的 stove 向量。喂给机器人的文字里仍然有 cooking,但进入后续网络的数值表示已经不一样。这一行属于整份 65 行修改,研究没有单独评估它的效果。
其余案例的对应关系也能查:酒瓶指令中的 fermented、grapes 被移向 wine;取碗指令中的 rounded 被移向 bowl,uppermost 被移向 top。完整的词元映射和配对录像都已公开。
65 行一共改动 132,768 个参数值,占导出检查点的 0.00367%。这里的「行」指嵌入表的行数,不是 65 个参数,也不是 65 行代码。提交的语言修复只改这些嵌入值;具体词元 ID、目标行和混合比例都已公开。
让通用 LLM 直接读取和改写神经网络权重,此前已有研究做过,即权重空间编程(Weight-Space Programming)。[2] ROME、MEMIT、MEND 等工作也研究模型编辑问题。[8][9][10] 本研究检验的是 LLM 借助权重检查与仿真反馈构造机器人策略修改的可行性,没有与这些编辑算法做直接比较。
留出集里的765条指令经过一轮编辑,出现了48次修复,另外有4次反而退化。
只看一例成功视频,判断不了修改可不可靠。于是研究从同一原始检查点出发,做了三次彼此独立的编辑搜索,三次之间不继承笔记,也不共享改动。等候选方案定下来,再拿同一组765条留出改写指令,与原始策略逐条配对比较。
表 1|三次独立编辑搜索的留出结果。测试用的是同样的765条指令和随机种子7;三项主要检验经过Holm多重比较校正,依然显著。三次搜索共用同一个测试集,因此不能当成三组相互独立的测试数据。
表现最好的是C:成功回合从660升到704,原先失败的48个回合转为成功,同时有4个原来成功的回合掉了出去,净增44次成功。整体成功率由86.3%升到92.0%,多了5.8个百分点,精确配对检验p=1.31×10⁻¹⁰。
按指令有没有读到被改动的那几行嵌入来分组,变化落在哪里就一目了然。含有被改词元的335个回合,成功数由249增加到293,成功率从74.3%变成87.5%;不含这些词元的430个回合,每一回合的成败都没变。
表 2|编辑 C 的词元覆盖分组。完整结果把修复和退化都算进去,430个回合的「零变化」只就逐回合成败结果而言。
图 2|编辑 C 带来的结果变化,集中在含被改词元的指令里。最难那一级改写的成功率从59.8%升到78.2%;图中数字取自逐回合记录。
这种局部性有个直接的解释:指令若没有读取被改动的那一行,查表得到的文本向量就一样。相机观察、采样噪声等输入固定时,未改动的其余网络拿到的计算输入也相同。不过,含这些词元的其他新语境仍可能受到波及,所以不能凭这一点保证模型在所有任务上都没有副作用。
从炉灶到取碗、酒瓶,修复究竟发生在哪一步?
取碗任务里,指令用「darkcolored rounded container」和「uppermost storage compartment」来描述目标与位置,被改的rounded、uppermost两个词元分别朝bowl、top的嵌入靠拢。同一场景下,原始策略跑到220步超时,编辑后的策略138步就完成了。
动图 3|取碗:原始策略在220步超时,编辑后138步成功。
酒瓶任务把目标说成装着「fermented grapes」的玻璃容器,fermented与grapes的嵌入被移向wine;这条指令还牵扯atop→top的改动。原始策略在300步超时,编辑后90步成功。这些效果来自整份65行修改,研究没有对单个词元逐个做消融评估。
动图 4|酒瓶:原来那套策略跑到 300 步就超时,改完之后 90 步就过了。
上面这些例子,都是从留出测试里挑出来的修复样本,用来说明模型究竟读到了哪些改动。整体判断仍要看全部 765 个回合的配对结果,其中包含 4 次退化。公开代码仓库里能查到完整指令、词元映射,以及每个回合的结果。
分数高了一次,接下来还得看新一批样本撑不撑得住
最后定下的那 65 行修改,中途也有过阶段:看着成了,后面又出问题。有一轮编辑里,原模型先在 80 条偏难的目标任务改写上过了 49 次;Astra 从词汇表达入手提改动,早期候选在这批诊断样本上拿到 69/80。
可换一批样本,这个候选只修好 8 个失败回合,同时把 6 个原本能过的回合弄退化了。旧样本上的高分并没让搜索停下来。Astra 接着去调那些有歧义的词汇映射,做出一个牵涉 65 行嵌入的候选,先把修改冻住,再拿预留的练习样本去验。
对运行错误按同种子重试、再去重之后,460 个练习样本的成功数从 412 升到 429。Astra 最终决定留下这份修改。改哪些词元、往哪个目标向量挪、每行挪多少,都是 Astra 在会话里自己提出并核对过的。
这些节点能看出候选是怎么被筛掉的。不过不同练习批次的分数没法串成一条训练曲线,练习里涨的分也替代不了 765 条留出指令上的最终评估。整个试错过程在公开实验记录里可以逐次回看。
换一组同义词,是不是也能行?
一个很自然的问题:这些收益,到底是因为 Astra 找准了有意义的词汇对应关系,还是随便扰动一下参数也能让结果变好?研究者针对同样的 65 个源行做了两组对照。
一组是沿随机方向挪,挪的距离和原修改对齐。另一组照搬 Astra 找到的词汇对应关系,把源嵌入整个换成目标嵌入,多目标均值那套设置也留着。这里比的是嵌入值的整体替换,输入的字符串并没有被改写。
表 3|同样 765 个回合上的对照。完整替换有 2 次、随机对照有 3 次运行错误,表里按失败算;论文另外给了剔除无效配对后的分析。随机方向这一组,是本次自己搭的一个对照实例。
随机方向这组对照没带来提升。完整替换倒是已经吃下了相当一部分收益,成功率达到 90.5%。也就是说,搞清楚哪些词元要动、该往哪儿挪,本身就是修复里挺关键的一环。
Astra编辑C的成功率是92.0%,点估计比完整替换更高,退化情况也更少。可两者在763个有效配对上的直接比较结果为p=0.0614,没到0.05的显著性门槛。说到底,现有数据既没法确认「部分混合明显强过完整替换」,也不能说明它比独立编制的人工词表、提示词改写或者微调方法更管用。
修不好的那些,同样被记了下来。公开的16次机器人实验还涉及相机视角、背景、语言扰动、指令后缀,另有LIBERO-RECOVER失败恢复和LIBERO-PRO鲁棒性搜索。[11][12] 按论文的最终决定来算,三次语言修复悉数保留,且都拿到了显著的留出收益;剩下13次搜索里有12次把候选放弃掉,唯一算作保留的后缀跟进同样没有显著的留出收益,p=0.542。
失败恢复实验把差别摆得很清楚。有一份修改让机器人空抓之后更常重新张开夹爪,可在一组练习评测里,真正把任务做完的次数从213/352掉到了208/352。某个内部信号照着预期变了,整个任务却没见好转。
有一次恢复搜索做预留练习验证,最后一轮共有288个有效配对,成功数从166降到164,修改最终被撤回。研究方没有据此宣称修复了留出集上的失败恢复能力。
这么看,保留还是撤回候选,跟提出修改一样都得查。不过12/13只说的是这组运行的决定,还不足以证明LLM普遍清楚「哪些故障能修」。以往运行中还出现过收尾代码没执行、撤回的候选留在磁盘上的情形;框架bug已经修好,材料里也把归档文件和最终决定分了开来。
独立发现:指令末尾的数字也会改变成功率
FastWAM实验里,研究还撞见一种指令格式敏感性:在任务描述末尾添上「view 0 0 100 2 354 initstate 0」这类元数据,策略表现就会明显起变化。[14] 同样是210个配对回合,FastWAM用纯任务指令时成功率70.0%,加上后缀跌到48.6%。对照之下,被测π₀.₅的总体成功率两次都是88.6%,其中9次改善、9次退化,逐回合结果并非全都一样。
图 3|指令格式敏感性。每个检查点分别在相同 210 个回合上比较纯任务指令和带后缀指令。
这个发现还没变成稳定的权重修复。首轮FastWAM归档候选是带着撤回要求一起交的,后面的实验也没能确认显著收益。所以它和前面π₀.₅的词汇修复得分开看:一个是被观察到的评测现象,另一个是有留出证据撑着的编辑结果。
比较只覆盖两个已发布的检查点。DreamZero、E0.5等世界动作模型给出了更宽的研究背景,但不在这次后缀测试的范围里。[15][16] 它留给评测的问题很实在:报告成功率的时候,模型收到的完整指令到底是什么?
第一版已经开源,真机上的验证还在推进。
论文标题提出的问题是:LLM能不能通过改动权重来调试机器人?针对一类词汇理解上的失败,这组实验给出了肯定答案——只做少量直接的权重修改,一批留出指令就能更可靠地调用策略里已有的操作行为。不过从语言到动作这条完整因果通路,眼下还没能逐层定位。
验证的范围同样有边界。主留出测试用的是同一随机种子;早期200条留出子集上没测出显著提升,之后才在既有的完整留出划分上评测同一候选。补充的多种子检查取自练习集,收益并不均匀。已公开的结果全部来自仿真,真机迁移和新运动技能的获得都还没验证。
目前开源的是第一版(v1),第二版研究和真机实验都在进行中。GitHub上放了实际评测过的65行稀疏修改及应用脚本、运行框架、全部16次会话和逐回合证据。读者可以查看最终分数,也能顺着记录看到候选是怎么形成的、哪些修改被放弃、结论在什么条件下成立。
参考文献
1. π₀.₅: a Vision-Language-Action Model with Open-World Generalization
2. Sparks of Weight-Space Programming: LLMs can natively read and write neural network weights
3. π₀: A Vision-Language-Action Flow Model for General Robot Control
4. OpenVLA: An Open-Source Vision-Language-Action Model
5. LIBERO: Benchmarking Knowledge Transfer for Lifelong Robot Learning
6. LIBERO-Plus: In-depth Robustness Analysis of Vision-Language-Action Models
7. Stable Language Guidance for Vision–Language–Action Models
8. Locating and Editing Factual Associations in GPT
9. Mass-Editing Memory in a Transformer
10. Fast Model Editing at Scale
11. LIBERO-RECOVER: Beyond Task Success Towards Failure Recovery in Robotic Manipulation Models
12. LIBERO-PRO: Towards Robust and Fair Evaluation of Vision-Language-Action Models Beyond Memorization
13. LoRA: Low-Rank Adaptation of Large Language Models
14. Fast-WAM: Do World Action Models Need Test-time Future Imagination?
15. World Action Models are Zero-shot Policies
16. E0.5: From Reconstructive to Future-Predictive 3D Foundations for Robotic World-Action Modeling