快讯速递

0.016% 的 Astra 微创手术,治好了 Qwen 的 3 万 Token 死循环

0.016% 的 Astra 微创手术,治好了 Qwen 的 3 万 Token…

当「读懂权重」和「改写权重」被同一个模型打通,「AI 改进 AI」就多了一条不经过梯度下降的短路通道,模型维护与模型能力放大之间的边界开始模糊。 作者丨郑佳美 编辑丨岑 峰 一个模型做数学题,写了 3 万多个 Token,仍然在重复相似的推理过程,最后连答案也交不出来。碰到这种情况,通常会调整训练数据、优化推理策略,或…

当「读懂权重」和「改写权重」被同一个模型打通,「AI 改进 AI」就多了一条不经过梯度下降的短路通道,模型维护与模型能力放大之间的边界开始模糊。

    作者丨郑佳美

    编辑丨岑   峰

                                                                                                       

一个模型做数学题,写了 3 万多个 Token,仍然在重复相似的推理过程,最后连答案也交不出来。碰到这种情况,通常会调整训练数据、优化推理策略,或者重新微调模型。

但 MIT CSAIL 最近尝试了一种更直接的办法:让 GPT-6 Astra 检查 Qwen3.5-0.8B 的内部权重,找出问题发生的位置,再直接修改参数。

结果,Astra 只改动了约 0.016% 的权重,就让 Qwen 的 MATH-500 成绩从 7.9% 提升到 48.1%,接近原来的 6 倍。

这项研究真正的信号,不是“0.016% 权重换 6 倍成绩”这个数字,而是它把机制可解释性的输出从“解释”变成了“可执行的编辑指令”,让AI有了改造另一个AI的“抓手”。

更有意思的是,同一组实验中,Astra 还能只看参数认出神经网络学过什么游戏、哪种语言,甚至从零写出一套网络权重,让它直接学会玩游戏。

研究者把这种能力称为 Weight-Space Programming,即权重空间编程。它背后有一个很有意思的技术变化:当神经网络里的参数能够被还原成具体的计算过程,LLM 就有机会像修改代码一样,直接改写模型内部的功能。

这件事如何实现,要从 Astra 阅读权重的方式说起。

01


只给一堆数字,

Astra 怎么知道网络学会了什么?

研究者先做了一个猜游戏的实验。

他们分别训练了 4 个神经网络,让它们学会 Breakout、Pong、Pac-Man 和 Freeway。为了避免通过网络大小猜答案,4 个模型采用完全相同的架构,每个包含 17253 个参数,输入都是 10×10 的游戏网格,输出对应 5 种动作。雷峰网

训练结束后,研究者只把权重交给 Astra,不告诉游戏名称,也不允许运行网络。Astra 却认出了全部 4 款游戏。

它利用的是训练留在参数里的痕迹。例如 Breakout 的球拍始终沿屏幕底部移动,网络输入层中负责读取玩家位置的权重,就会集中在网格下沿。再结合输出层对左右动作的响应,Astra 便能判断网络正在控制什么。

不过,游戏网络有一个便利条件:输入位置有明确的物理含义。大型语言模型的隐藏维度没有这样的标签,某个参数很大,并不能直接说明它代表什么。

为了检验 Astra 能否理解更复杂的结构,研究者训练了 3 个约 720 万参数的字符级 Transformer,分别学习 Python、罗马字日语和英语。随后移除输入 Embedding 和输出层,只留下中间的 4 个 Transformer Block。

这样一来,Astra 无法知道隐藏维度对应哪些字符,也不能运行模型观察输出,只能分析内部矩阵之间的关系。它找到的突破口是 Induction Head,也就是 Transformer 中帮助模型复制历史文本的一类 Attention Head。

例如,前文已经出现过 total,后文再次出现 tot,模型可以找到之前相同的片段,接着生成 al。这个操作看似简单,内部却需要完成两件事:先定位历史中的重复片段,再把它后面的字符信息带到当前位置。

在 Transformer 中,QK 电路负责决定读取历史中的哪个位置,OV 电路负责决定读取的信息怎样写回隐藏状态。而一次完整的复制操作,往往需要不同 Attention Head 配合:前面的 Head 提供字符位置关系,后面的 Head 利用这些信息寻找匹配片段。

Astra 沿着信息传递路径分析不同 Head 的矩阵乘积,寻找能够完成这种配合的结构。结果,它在 Python 模型中找到了 3 个 copying head,在另外两个模型中各找到 1 个,随后通过实际运行网络得到的功能测量也验证了这些判断。

Python 代码中变量名、标识符经常重复,复制能力因此更有用,罗马字日语则在隐藏特征的写入方向上呈现出不同分布。Astra 利用这些差异判断出了训练语言。雷峰网

这里的技术要点是,单个权重很难解释,但多个矩阵沿着计算路径组合起来,就可能呈现明确的功能。

神经网络内部的表示可以经过基变换,单个参数的数值随之改变,网络实现的计算却仍然相同。因此,理解模型不能只盯着某个神经元,而要看信息如何经过不同层,形成可以重复执行的计算关系。

当然,这种方法还没有覆盖所有行为。在另一项 Gemma 实验中,Astra 只看权重无法判断哪套模型更容易迎合错误答案,增加少量 Attention 激活信息后才成功。这说明静态参数能够提供结构线索,复杂行为有时还需要实际输入帮助定位。

但前面的实验已经说明,Astra 能够在某些网络中识别承担具体功能的计算路径。接下来,研究者把问题反了过来:既然能够找到这样的路径,能否直接设计一条,让神经网络按指定规则工作?

原文出处:雷峰网 (本文由聚合程序自动采集,版权归原作者所有)