Wink Pings

GPT-6改了Qwen的权重,0.016%就治好了它的死循环

MIT CSAIL的新研究让前沿LLM直接读写神经网络权重。Astra改掉Qwen3.5-0.8B的0.016%权重后,MATH-500从7.9%涨到48.1%,IFEval翻了三倍。没有梯度,没有训练,甚至不需要测试集。

MIT CSAIL 的四位研究者 Rikiya Takehi、Jayden Teoh、Alex Zhang、Omar Khattab 发了一篇博客,标题叫「Sparks of Weight-Space Programming」。核心结论一句话:前沿 LLM 已经能直接读写神经网络的权重了。

他们把这件事叫做 Weight-Space Programming。不用梯度下降,不用训练循环,模型直接用自然语言推理每个权重块在算什么,然后动手改。

Sparks of Weight-Space Programming 配图

最让人坐直的结果在 Qwen3.5-0.8B 上。这个 8 亿参数的小模型做数学题有个毛病:推理会卡进循环,反复输出同一段话,几乎跑满 32,768 个 token 也出不来。Qwen 自己的 model card 里就警告过这个问题。

GPT-6 Astra 拿到权重之后,找到了循环的来源。它定位到第 15 层和第 19 层 MLP 写出的一个方向,然后从每层的 64 个输出列里把这个方向减掉。一共动了 131,072 个权重,占模型总量的 0.016%。

结果:MATH-500 从 7.9% 升到 48.1%,GSM8K 从 13.8% 升到 67.1%,IFEval 从 21.0% 升到 62.3%。同一套采样设置,没有重新训练。

更意外的是 IFEval 的涨幅。循环毛病显然不分数学题和指令跟随题,把循环拆掉,两边都通了。

同一篇博客里还有几个实验值得看。

他们训练了四个 PPO 网络玩四款网格游戏,输入通道、动作空间、网络结构完全一样,只有权重不同。把 17,253 个权重当文本直接喂给 Astra,不给游戏名字,让它猜。四个全对。

第二个实验换成扩散模型,问 Astra 每个模型生成什么形状。它从输出层的权重里读出了圆、三角和方的边缘轮廓。有意思的是它画的是空心轮廓,实际模型生成的是实心图形。这个错误反而说明它没在脑内跑前向传播,而是在读权重本身的结构。

第三个实验更狠。他们拿掉小语言模型的输入层和输出层,只给 Astra 中间四层 transformer 的权重,没有字符标签,不能跑模型。问它训练语料是 Python、罗马字日语还是英语。三次全对。它还独立找出了所有 copying head(induction head),和跑模型测出来的结果完全一致。这个定位方法 Elhage 等人在 2021 年提出过,研究团队从没告诉过 Astra。

修权重那边,Kinetix 里有一辆卡在小坡上的车。PPO 训练 10 亿步之后收敛到局部最优,直直撞上斜坡然后卡死,256 次测试一次没成功。Astra 改动了 3.5% 的权重,加了一条很薄的旁路读取车的速度和位置,让车先倒一段再冲刺。1,024 次测试全部成功。

从零写权重也试了。MinAtar 的三款游戏,Astra 只拿到规则、源代码和网络结构,没有数据,没有梯度,没有工具,写出来的网络在 Breakout 上得分 517.4,PPO 训练 1 亿步是 15.8,训练 5 亿步是 25.3。Asterix 和 Seaquest 上接近或达到 5 亿步 PPO 的水平。它写的策略也不神秘:第一层算球的落点,第二层把挡板移过去。

Go 那个实验更有画面感。1,480,274 个权重,Astra 在 Python 沙箱里一行一行写出来,先标记棋子、气和空点,再沿棋子链传播几步找出危险棋组,最后给每个落点打分。0 次前向传播时,打赢了两个小 PPO 网络超过一半的对局。允许 50 次前向传播之后,它开始跟自己下练习局,看输在哪就改对应的权重,最后打平甚至超过同尺寸、训练了 2,000 万局的 PPO。

失败案例也有。

实验 7 想让它分辨两个 Gemma 3 270M 微调模型,一个说实话,一个拍马屁。只看权重,四次尝试全部失败。Astra 列出了很多权重差异,但没法把它们翻译成行为差异。后来放宽条件,允许它自己写 16 段文本,只看两个模型的注意力模式,三对模型全部挑对了。拍马屁那个模型的第 10.2 号头盯着用户给的答案看,权重占比 85.7%,诚实模型只有 0.75%。

还有一个附加实验更说明边界在哪。Gemma 3 270M 很少循环,只有 8.5% 的回答触顶。Astra 读完成绩单,发现错误是普通的算术和代数步骤问题,没有单一模块可以拆掉。它试了几次微调,MATH-500 最高只挪了不到一个百分点。团队自己的结论是:改权重可以搬走挡在能力前面的障碍,但加不进去模型本身没有的能力。

博客最后列了几个可能的方向:不跑评测直接审计权重里的后门,用一次权重编辑代替完整训练,零数据添加或遗忘能力,以及让模型真的读写自己的权重来实现递归自我改进。他们正在搭一个 benchmark 和 harness,想把这件事从黑魔法变成可复现的工程。

完整日志在 github.com/RikiyaT/lm_understand-logs,每一轮 Astra 收到的输入、发出的推理摘要、跑过的代码和输出都在里面。

原始博客:Spark of Weight-Space Programming

发布时间: 2026-11-03 03:33