AI Pulse

GPT-6能直接编辑神经网络权重,作者:人类也能做到

最近一篇论文认为,前沿LLM可以直接操作神经网络权重。这看似超人类,但并非如此。

论文显示,GPT-6 Astra 可以拿一个小型神经网络,直接与它的权重交互,“远超我们对人类或传统算法的预期”。具体来说,Astra 仅通过观察权重就能识别一个小型网络[1]被训练来玩什么游戏,甚至还能自己调整权重。最令人印象深刻的结果是,Astra 通过直接编辑权重,显著提升了 0.8B Qwen LLM 的数学能力。这里让人兴奋的原因是,“改进语言模型的超人类能力”正是那种可能引发递归自我改进的东西。

我认为一个聪明的人类 ML 研究员可以完成所有这些任务。根据网络来判断模型被训练玩什么游戏,听起来令人印象深刻,但你得考虑三点:

- 模型的输入通道直接对应每个 8x8 网格单元
- 输入通道是有标签的(例如“agent”、“moving objects”)
- 因此计算[2]第一层权重关注网格的哪些部分以及为什么,是相对简单的

这个计算用三行 Python 就能表示为热力图:

d = np.load("a9f535cc.npz")
W1 = d["actor/dense1/kernel"]
norms = np.linalg.norm(W1.reshape(10,10,5,32).transpose(2,0,1,3), axis=-1) # 5 x 10 x 10

下面就是每个游戏的热力图:

如果有人把那张热力图拿给你看,而不告诉你是哪个游戏,我觉得你至少能立刻认出前三个游戏,纯粹靠观察玩家在哪里(比如 Breakout 中,玩家在底部一条水平线上)以及移动物体在哪里(比如 Pac-Man 中,标志性的 Pac-Man 迷宫)。Astra 能在脑子里算出这些范数而无需执行 Python,这确实巧妙[3],但并没有那么令人印象深刻,当然也不该让任何一直关注这方面的人感到震惊。

我不打算逐一讨论论文中的每个例子[4],直接跳到最令人印象深刻的那个:修复 0.8B Qwen 模型的数学能力。0.8B 是很多参数,而“数学”比“根据玩家移动方式猜游戏”要复杂得多,编辑权重可以说比解析权重更难。这里发生了什么?

首先,注意 Qwen 模型在纯粹能力意义上并不是“数学差”。它有一个具体问题:在 32k token 之后会陷入循环,所以任何需要超过 32k token 的数学任务都会自动失败[5]。如果你有一个会这样循环的模型,你会如何更新权重来修复它?就我个人而言,我会尝试引导(steering):我会写一些会循环的推理文本和一些不会循环的推理文本,计算循环与非循环残差之间的差异,衡量每个权重对那个差异的贡献有多大,然后尝试手动修剪那些排名靠前的权重。这基本上就是 Heretic abliteration 的操作手册。

而 Astra 做的正是这件事!它写了四对文本,测量[6]了导致循环的权重,开始削减它们并测试是否有效,最终找到了一个补丁,让 Qwen 模型不再循环,从而能够处理超过 32k token 的数学问题。再说一次,这正是能干的人类研究员能够而且会做的事情。

Astra 能够直接更新权重,这很酷。但我们不应该把这看作一种会改变 AI 研究方式的彻底新能力。我们应该把这类比为 LLM 生成机器代码和修改编译后二进制文件的能力:这是一个令人印象深刻的技巧,但处理二进制文件的最佳方式仍然是编写源代码并编译它。同样,更新模型权重的最佳方式是正常训练它。就智能 LLM 能在多大程度上帮助 AI 研究而言,它们是通过改进训练来帮忙的,而不是通过神奇地直接调整模型权重。

脚注:

[1] 大约 17k 个权重。

[2] 通过对第一层中 32 个权重的每个输入取 L2 范数。

[3] 注意,这是超人类的心算,而不是超人类的 AI 研究。

[4] 我省略的最令人印象深刻的一个是从零手写神经网络。虽然很酷,但如果你能把一个任务表达成简单程序,我们已经知道可以把那个程序表达为神经网络,即使是未经增强的人类也能做到。

[5] 所有 <32k token 的问题在原始 Qwen 模型上都成功解决了。

[6] 与玩具游戏网络不同,它可以访问 Python。

阅读原文
📚 相关主题 大模型

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新