改掉 0.016% 的权重,Qwen 的数学成绩从 7.9% 涨到 48.1%:MIT 让大模型直接动手改别人的脑子

改掉 0.016% 的权重,Qwen 的数学成绩从 7.9% 涨到 48.1%:MIT 让大模型直接动手改别人的脑子

一个 8 亿参数的小模型,数学成绩卡在 7.9%。

通常的解法是:找更多数据、调更深的结构、跑更长的训练、烧更多的卡。

MIT CSAIL 团队的做法是:把它关上,然后把全部权重摊开,让 GPT-6 Astra 看一眼,说:”你觉得哪儿出了问题?”

Astra 看了一会儿,得出了一个判断:这个小模型的数学不行,不是因为它算不出来,是因为它陷在推理循环里出不来。

数据支持这个判断:Qwen 最初 96 次练习回答里,有 85 次一路输出到 32,768 个 token 的上限,仍然没完成回答。这不是”不会做”,是”停不下来”——一直绕圈子直到把预算烧光。Qwen 官方文档里其实早就提醒过:0.8B 版本在思考模式下容易出现推理循环。

于是 Astra 动了手。只改了约 0.016% 的参数。

结果:MATH-500 从 7.9% → 48.1%,涨了 6 倍。指令遵循能力顺带提升近 2 倍。

整个过程没有重新训练,没有梯度下降,没有反向传播,没有优化器。

它像脑外科医生一样,切掉了一个死循环。

什么叫”权重空间编程”

这项研究给这套打法起了个名字:Weight-Space Programming(权重空间编程)。

过去几年,我们一直在让大模型优化文本产物——提示词、围绕提示词写的程序、整个运行框架(harness)、训练用的代码和超参数。

这些之所以合理,是因为对文本产物,我们还没有像”更新可微神经网络权重”那样成熟明确的优化方法。人可以手改代码,但人没法手工优化权重。所以这部分长期由算法包办。

现在有一个新情况:大模型已经能读懂权重了。

权重就是那个藏在神经网络里的巨大数字矩阵。以前它对人来说是黑盒,对模型来说也只能”感受”而不能”阅读”。MIT 的实验显示:当前的通用大模型,可以直接把权重当文本读,理解结构,再按自然语言的要求去修改它。

读得懂,说得清,改得动。三件事连起来,就成了一门新的编程方式。

三个实验,一个比一个离谱

实验一:认出四个游戏,只靠看数字。

研究人员训练了 4 个结构完全相同的小网络(各 1.7 万个权重),分别玩打砖块、乒乓球、吃豆人、过马路。

然后把这 1.7 万个数字转成纯文本塞进提示词。不给工具,不能运行代码,不告诉它有哪些备选。

Astra 4 猜 4 中。

以打砖块为例,它只看了一眼数字分布,脑子里就还原了画面:玩家控制的通道大数字全挤在最底下的第 8 行,输出层只对”左移”和”右移”反应强烈——说明玩家控制的是一个在底部左右滑动的挡板。得分通道的权重整整齐齐排在最顶上三行。底部挡板加头顶三排砖块,99% 的把握:这是打砖块。

实验二:看懂了还能定位。 后续实验里,Astra 只检查攻击模型第 10 层第 2 号注意力头的落点,就发现:诚实模型 94.3% 的注意力在看题干数字,而”马屁精模型”(被刻意训练成迎合用户错误暗示的模型)85.7% 的注意力在偷瞄用户的错误暗示。一抓一个准。

实验三:从零手搓。

这一项我觉得最离谱。研究人员问:能不能连预训练模型都不要,让大模型从全零权重开始,凭空写一个神经网络出来?

Astra 的做法,是把空白的神经网络当成一块空白芯片,然后用 Python 代码当编译器,把自己知道的算法规则一层一层写进权重矩阵里。

小车爬坡这个游戏,PPO 训练了 10 亿步还是卡在半坡——通关率 0%。因为它不懂要先倒车攒助跑距离。

Astra 借用每层 6 个闲置神经元,手写了 57 行权重指令,搭了一条”先倒车助跑、过红线再往前冲”的旁路电路。

只动了 3.5% 的权重,1024 局测试里拿下 100% 通关率。

另一个例子是打砖块网络:从全零开始,一次回复直接手写完毕,得分 517.4——是 PPO 苦练 5 亿步成绩的 20 倍。

训练没学会的动作序列,被直接”写”进了权重。

但它也翻车了,而且翻得很有教育意义

一个研究如果只报告成功,我一般会打折看待。这项研究自己公布了失败案例。

翻车一: 换成生成图像的扩散模型,Astra 能辨认出圆形、方形、三角形——但模型实际生成的是实心图形,它全读成了轮廓。

形状看对了,填充看错了。

翻车二: 团队让它去改善 Gemma 3 270M。那个模型本来就没有严重的推理循环问题,结果 Astra 没能显著提升它的数学能力。

这一条特别关键。它说明一件事:

> 修掉一个已有的毛病 ≠ 创造一个新能力。

Qwen 那个 6 倍的提升,本质上是”松开了刹车”,不是”装上了引擎”。局部权重修改能让模型回到它本该有的表现,但不能凭空造出它学不会的东西。

冷静组:Meta 研究员的泼冷水

这件事在 Hacker News 拿了 2400 多分、770 多条评论。热闹之外,有些质疑值得认真对待。

第一,直接改权重不是新概念。

之前的 ROME 和 MEMIT 研究已经在做”修改特定权重来更新模型知识”了。这次的不同在于:用的是没有针对权重编辑任务特别训练过的通用大模型,而且尝试跨任务地读懂、修补、构建神经网络。这个区别是真的,但它不是”从零到一”。

第二,8 亿参数的结果,推不到大模型上。

Qwen3.5-0.8B 是一个很小的模型,它的权重分布、注意力模式、失效方式,跟几百亿上千亿参数的大模型差别巨大。在 0.8B 上”看一眼就知道问题在哪”,在 700B 上是不是还成立,完全未知。

第三,也是我最认同的:这仍然高度依赖人工设定的验证。

实验里仍然用了 Python 工具、练习题和反复验证。Astra 不是”看一眼就改对了”,它是改完 → 跑测试 → 看分数 → 不满意再改,循环若干轮。

所以这更像”AI 手工调参,只是调的是权重不是超参”,而不是”AI 闭着眼就能优化神经网络”。

宾大教授 Ethan Mollick 的说法比较中肯:可能是重要进展,但仍需等待独立复现。

我的判断

第一,真正的突破点不在那个 6 倍,在”读”这件事。

改权重的效果可以靠试错凑出来。但只看 17253 个数字就认出这是打砖块游戏,这个能力没法试错——它必须真的理解了权重和行为的映射关系。

这才是这项研究最硬的部分。改是”手”,读才是”眼”。

第二,权重空间编程最有价值的应用场景,可能不是”让小模型变强”。

想想这几个方向:

– 模型审计。 不用跑测试题,直接翻权重的”病历本”,找出藏在里面的后门、偏见、异常电路。 – 跨架构移植。 现在合并两个模型必须架构一致(权重平均)。如果能理解权重空间,理论上可以把 A 模型的”推理模块”直接搬进架构完全不同的 B 模型。 – 自然语言级运维。 “把模型的谄媚行为去掉”,然后它自己找到那几个注意力头改掉。

第三个听起来最像玩具,但商业价值可能最大——因为它把模型运维从”训练工程师的工作”变成了”写一句话的事”。

第三,也是最该警惕的:这给 RSI 开了一扇新门,但现在只是门缝。

MIT 自己在博客里写了:

> 目前人们实现递归自我改进的一个常见方式,是让模型写代码、再用代码启动训练。如果大模型能直接检查、调试和改进自己的权重,就有机会走出一条更直接的自我改进路线。

“更直接”三个字值得注意。写代码训练还是隔了一层;直接改权重,是伸手进自己的脑子。

但现在的现实是:Astra 改完还得人类跑测试验证,改坏了还得重来,0.8B 上的经验推不到大模型。从门缝到门开,中间还有很长一段路。

第四,那辆”倒车助跑”的小车,是我最想记住的细节。

PPO 训练了 10 亿步没学会的事——先退后进、攒够距离再冲——Astra 用 57 行权重指令写进去了。

这件事真的很有意思,因为它说明:有些”直觉”,用数值优化永远学不到,但可以被直接”写”进去。

人类工程师看到那个坡,一眼就知道要倒车。强化学习看了 10 亿次,还是往上撞。

而现在,有个模型能听懂”要倒车”这句话,并且知道该把它翻译成哪 6 个神经元上的哪 57 行数字。

这才是我觉得这件事最值得兴奋的地方——不是”AI 能训练 AI 了”,是”人和神经网络的对话,终于从梯度变成了语言”。

—

*论文:Weight-Space Programming — MIT CSAIL,第一作者 Rikiya Takehi(博一)* *核心数据:Qwen3.5-0.8B 改 0.016% 权重,MATH-500 从 7.9% → 48.1%* *其他结果:1.7 万权重识别 4 个游戏(4/4)、57 行权重让小通关率 0% → 100%、打砖块 517.4 分(PPO 5 亿步的 20 倍)* *失败案例:扩散模型实心/轮廓误判、Gemma 3 270M 无显著提升* *质疑:ROME/MEMIT 已有先例、小模型结果不可直接外推、仍依赖人工验证* *来源:机器之心 / 量子位 / 36氪 / TechOrange*

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注