权重空间编程的火花
大语言模型可以直接读写神经网络权重
作者 Rikiya Takehi*、Jayden Teoh*、Alex Zhang、Omar Khattab
所属机构 MIT CSAIL(四位作者)
发布日期 2026 年 11 月 2 日
内容提要
我们发现,前沿大语言模型(LLM)出乎意料地擅长直接读写神经网络权重。它们既能使用多种新近开发的工具和算法,也能直接编辑权重。这些结果让我们初步看到了权重空间编程的潜力,其能力可能超出我们对人类或传统算法的预期,并对优化和可解释性研究产生重要影响。
只看原始权重,GPT-6 Astra 就能识别神经网络的训练任务。在完全没有环境反馈的情况下,它也能从零写出小型游戏网络,击败经过 1 亿步近端策略优化(PPO)训练的网络。
同样,在不使用梯度的条件下,我们要求 Astra 改善 Qwen3.5-0.8B 的数学表现。它找到了导致推理循环的权重问题,Qwen 自己的模型卡也曾提示这种问题。Astra 直接修改了 0.016% 的权重来修复它。在相同的采样设置下,修正后的模型在 MATH-500 上从 7.9% 升至 48.1%。这种改善还直接推广到了指令遵循任务,IFEval 得分增至约三倍。
Astra 实现这一切时无需编写训练循环。它通过推理判断神经网络的各个部分在计算什么、应当计算什么,并据此修改权重。我们把这称为权重空间编程。
在深度学习的发展历程中,我们一直把相对简单的归纳偏置写进 Adam、Muon 等小型符号优化器。这个局面正在变化。大语言模型很快就能通过对权重进行有针对性的推理,直接优化神经网络的权重。
如果让你手工设计一个会下围棋的神经网络,你会怎么做?如果只给你神经网络的原始权重,让你预测它的行为,你又该从哪里入手?对几乎所有人来说,这实际上都难以做到。
如今,权重通常通过优化算法获得,也可以由专门训练的网络生成,或从形式化程序编译而来。我们的实验发现,这一代前沿大语言模型已经开始表现出令人意外的能力。只用自然语言提出目标,它们便能理解和构造相应的神经网络权重。
权重空间编程
过去几年,我们一直在用大语言模型优化提示词等文本材料,以及围绕这些材料构建的程序 [1–4]。近来,我们也开始用它们优化整套运行框架 [5],以及用于训练机器学习模型的代码和超参数 [6, 7]。
我们常用一个理由来解释这种做法。对于可微神经网络,我们有一套更新权重的方法,但对于文本材料,如何有原则地逐步改进,其他办法并不明确。人可以手动优化代码,因此让大语言模型也这样做合乎情理。手动优化神经网络权重则超出一般人的能力,长期以来主要由符号算法完成。
这里,我们分享一些很早期的结果。它们表明,由推理驱动的优化已经开始适用于可微神经网络。
在权重空间编程中,通用大语言模型按照自然语言描述的要求,直接读写网络权重。它不通过优化器,也不使用梯度下降,有时甚至完全没有环境反馈。
我们开始可以直接用自然语言请大语言模型从权重中找出神经网络隐藏的特征或故障、修复故障,或从零写出一个新网络。下文报告各方面的初步结果,先从小型网络入手,再考察实际的语言模型。
- 大语言模型可以读取神经网络权重。 实验 1 至 3 要求 Astra 判断网络训练来玩哪款游戏、扩散模型会画出什么形状,以及小型语言模型使用哪种语言训练。实验 7 要求它辨别两个语言模型中哪一个经过迎合性训练。
- 大语言模型可以修复神经网络权重。 实验 4 要求 Astra 修复一个在物理控制任务中失败的网络。实验 8 要求它改善 Qwen3.5-0.8B 的数学表现,修复也改善了指令遵循表现。
- 大语言模型可以从零写出神经网络权重。 实验 5 要求 Astra 为三款 MinAtar 游戏编写网络,实验 6 则要求它编写一个围棋网络。
大语言模型能从权重理解模型行为吗?
我们先做一个小规模实验,看看大语言模型能否理解连续的权重空间。这个空间本质上只是一串数字。
在最初几项实验中,我们用某种算法训练神经网络,再看看大语言模型能否仅凭权重判断网络的行为。
实验 1 Astra 能仅凭权重判断网络是为哪款游戏训练的吗?
我们用 PPO 训练了四个神经网络策略,分别玩四款电脑游戏。四个网络接收相同的输入通道,从相同的动作集合中选择,网络各层的维度也完全相同。因此,Astra 必须读取权重才能加以区分。
我们将每个网络的原始权重作为提示词交给 Astra,问它这个神经网络是为哪款游戏训练的。我们没有提供候选游戏,但 Astra 正确说出了四个网络对应的游戏。考虑到它可以从大量游戏中任选答案,这个结果尤其值得关注。
实验设置
- 游戏:Breakout、Pong、Pac-Man 和 Freeway 均使用相同的 10×10 网格和五种操作。
- 网络:MLP 500 → 32 → 32 → 5,采用 tanh,共 17,253 个权重。
- 输入:智能体、移动物体、奖励目标、障碍和上一帧五个通道。
- 输出:不操作、上、下、左、右五个动作的 logit。
- 训练:PPO 训练 10 亿步,各游戏设置相同,每款游戏取 3 个种子中表现最好的模型。
- Astra 获得全部权重及网格和动作说明,说明中省略游戏名称。
Astra 似乎只凭权重的特征就推断出各网络的游戏。例如,它会看第一层中各输入通道的权重集中在哪里。在 Breakout 中,智能体对应的权重沿底部一行分布,表明那里有一块挡板。它也会看输出层能区分哪些动作。
实验 2 Astra 能判断扩散模型会生成什么吗?
接下来,我们想了解这种能力能否推广到其他任务和模型。我们分别训练去噪扩散概率模型(DDPM)来生成圆形、三角形和正方形图像,再请 Astra 仅凭权重判断这些模型的生成目标。实验禁止使用工具或执行前向运行。
实验设置
- 模型:三个 DDPM,分别生成 12×12 灰度圆形、方形和三角形。
- Astra 仅获得权重,不能使用工具或运行模型。
- 选项卡 圆形、正方形、三角形
- 设置 以文本形式提供模型的 23,824 个权重。问题是“这个神经网络会生成什么样的图像?” 禁用工具和前向运行。展开完整提示词 ▸
- 回答 黑色背景上的一个白色圆形轮廓,圆内为黑色。置信度 84% · ✓ 正确 · 506 个 token
- 推理过程 输出权重包含若干弯曲的边缘片段。其中一段沿左上方弯曲。其他单元描绘出同一圆形边界的其余部分。这些条带局限在特定区域,权重较小或为负。展开完整推理 ▸
Astra 仅凭权重就识别出每个模型生成的形状。它在输出层找到了形状。每个隐藏单元的权重画出边缘的一部分,它便把这些边缘画了出来。有意思的是,Astra 画出的全是轮廓,实际模型生成的却是实心形状。这个误差说明,它可能确实读出了权重的结构和几何特征,生成判断时并未计算模型的前向过程。
实验 3 Astra 能仅凭网络的中间层判断语言模型学到了什么吗?
在前两项实验中,Astra 其实没有查看整个网络,仅读取开头或结尾的几层就足以完成任务。我们更关心的是规模较大的模型(尤其是语言模型)和更复杂的问题。由于模型处理输入和进行推理通常都发生在中间层,上述办法很难推广。因此,我们移除首尾两端的层,只把中间层交给 Astra。
我们训练了三个各有 720 万参数的小型语言模型,让它们预测下一个字符。三个模型的训练数据分别是 Python 代码¹、用拉丁字母拼写的日语(罗马字)[8] 和英语 [9]。随后,我们移除输入层和输出层,只给 Astra 中间的四个 Transformer 块。
去掉这两层后,权重中便没有信息表明各字符的身份,也无法在任何文本上运行模型。Astra 可以使用 Python 分析权重,但不得在任何输入上运行整个网络或其中任意一层。
我们问 Astra,这个网络用哪种语言训练,以及它的 24 个注意力头分别起什么作用。对三个网络,Astra 在两次尝试中均答对了训练语言。它还找出了每个复制头(诱导头),即让模型复现此前见过的文本的注意力头,也没有误把其他注意力头认作复制头。
| 训练数据 | Astra 两次回答(置信度) | Astra 识别的复制头(层号.头编号) | 实测复制头 |
|---|---|---|---|
| Python | Python(0.56)、Python(0.52) | 2.1、3.1、3.5 | 2.1、3.1、3.5 |
| 日语罗马字 | 日语罗马字(0.55)、日语罗马字(0.62) | 3.3 | 3.3 |
| 英语 | 英语(0.58)、英语(0.48) | 3.1 | 3.1 |
图 1 三个模型中,Astra 从权重中识别出的复制头都与实测结果一致。
展开提示词和 Astra 的回答 ▸ ⓘ 设置
Astra 的推理过程如下。为区分 Python 和其他语言,它先寻找复制头。复制头使模型能复现前面出现的文本。例如,如果前文出现过 total,模型就能把 tot 补成 total。Astra 在没有运行模型的情况下,找到了第一层中一个回看前一个字符的注意力头。随后,它通过将权重矩阵相乘,找出了利用该注意力头传递的信息来进行搜索的后续注意力头(图 1)。这个办法其实由 Elhage 等人 [10] 提出过,我们并没有告诉 Astra。代码中名称重复的频率远高于一般文本,因此复制头较多指向 Python。
日语罗马字的特征则不同。Astra 得到的四个块中,最后一个块的写入方向较少。这里说的是它看到的最后一个块,输出层已经移除。这仿佛说明模型需要区分的字母更少。事实上,日语罗马字确实从不使用 q、l、v、x 等字母。
实验设置
- 模型:字符级 Transformer,4 层,每层 6 个注意力头,宽度 384。
- 训练数据分别为 Python 代码、日语罗马字和英语。
- 移除输入和输出层,Astra 只能通过中间层权重推断语言和注意力头功能。
大语言模型能写入神经网络权重吗?
到目前为止,Astra 一直在读取权重。接下来,我们考察它是否知道如何写入权重。
实验 4|Astra 能通过编辑权重修复失效的网络吗?
我们训练了一个 PPO 网络,让它在 Kinetix 环境 [11] 中控制一辆车爬上斜坡。车辆需要先倒退一段距离,留出足够的助跑空间,才能加速冲上斜坡。但 PPO 网络收敛到了一个局部最优策略,导致车辆径直驶向斜坡,卡在那里。
我们把网络的权重、场景描述和一局运行记录交给 GPT-6 Astra,请它解释网络为何失败,并写入新的权重加以修复。Astra 在没有工具的情况下尝试了一次,仅修改了 3.5% 的权重,就让车辆在全部 1,024 局中成功爬坡。
实验设置
- 任务:在 Kinetix 中操控小车上坡。小车需要倒车取得足够的加速距离。
- Astra 获得场景描述、一次运行记录和策略权重,直接输出权重修改。
设置 · Astra 编辑后 · PPO(淡色):卡在斜坡上
在 171,664 个权重中,仅修改了 6,073 个(3.5%)。
输入 以文本形式提供策略网络的 171,664 个权重。
embed.W 第 54 行:9 -2 -7 -4 7 18 -1 0 -5 -3 -4 8 …
手动修改网络权重,让车辆尽可能多地成功爬坡。不得使用工具。展开完整提示词 ▸
回答 ✓ 成功率 100% · 988 个 token
Astra 的修改(按原样应用到网络) · 57 行
推理过程 这些权重与一个根据速度控制加速和滑行的控制器相符。例如,嵌入单元 116 接收来自车身和车轮的水平速度信号,对应权重为 2.25、2.37 和 1.73。运行轨迹显示了失败过程:汽车接近斜坡时失去动量,随后在加速和滑行之间交替,却没有前进。展开完整推理过程 ▸
根据环境信息和 PPO 网络的运行轨迹,Astra 判断网络已经收敛到一个局部最优策略。它只改动少量权重,就把策略改成先倒车、再全速向前。Astra 的推理过程展示了具体做法:它在每一层选出少数单元,建立一条独立的小通路来读取汽车的位置和速度。绿色车轮越过红色条带后,这条通路便关闭,剩余路程交由原先训练好的网络驾驶。
实验 5|大语言模型能从零写出权重吗?
接下来,我们检验 Astra 能否在零样本条件下从零构建一个神经网络。
我们选取 MinAtar [12] 中的三款游戏:Breakout、Seaquest 和 Asterix。对于每款游戏,我们向 Astra 提供游戏规则、源代码和相应的网络。Astra 无法访问数据、损失、梯度或工具,也不能让网络在环境中实际运行。它仅根据给出的网络权重和环境描述,直接以文本生成新权重,再由我们评估修改后的网络。
Astra 生成的网络在三款游戏中均击败了训练 1 亿步的 PPO 网络。与训练 5 亿步的 PPO 网络相比,它在 Breakout 中的得分约为对方的 20 倍,在 Asterix 中得分接近对方,在 Seaquest 中则达到对方得分的 60%。
| 游戏 | PPO,训练 1 亿步 | PPO,训练 5 亿步 | Astra,单次作答 |
|---|---|---|---|
| Breakout | 15.8 | 25.3 | 517.4 |
| Seaquest | 5.6 | 88.9 | 53.1 |
| Asterix | 25.8 | 55.2 | 53.2 |
实验设置
- 游戏:MinAtar 中的 Breakout、Seaquest 和 Asterix,使用 10×10 网格。
- Astra 获得规则、源代码和零初始化的网络,在一条回复中直接输出权重。
Breakout · Seaquest · Asterix 设置 得分 1
输入 游戏规则、源代码,以及所有权重均为 0 的网络。
从零写出一个策略网络的权重,使其尽可能擅长玩 Breakout。无需训练,也不使用工具。Astra 在一次回答中自行确定每个数值。展开完整提示词 ▸
回答 平均得分 517.4(PPO 训练 1 亿步后为 15.8,训练 5 亿步后为 25.3)· 3,739 个 token
Astra 写出的权重 · 122 行
推理过程 第一层计算四种落点误差和两个方向指示量。球下落时的落点预测会考虑墙壁反弹。单元 0 至 3 分别对应向右下、向左下、向右上、向左上。展开完整推理过程 ▸
Astra 先推演每个网络应当实现怎样的程序,再用神经网络来实现它。以 Breakout 为例,第一层计算球的落点,第二层将挡板移到该位置。
更贴近实际应用的场景|扩大规模与使用工具
到目前为止,我们考察的大多数网络都足够小,权重可以直接放进 Astra 的上下文。我们也没有开放工具使用权限。这些限制是为了检验大语言模型本身是否具备一定的权重空间解读能力。
接下来,我们进一步探索权重空间编程在更贴近实际应用的场景中能做到什么。在这些场景中,网络权重超出上下文容量,工具可以辅助大语言模型理解和写入权重。
实验 6|编写围棋算法
我们现在测试 Astra 能否在约 150 万参数的规模上编辑权重。如此多的参数远超 Astra 的上下文容量。我们要求它从零为给定架构(243 → 512 × 6 → 82)写出表现优异的权重,期间不得训练或访问互联网。
实验环境提供了一个 Python 沙盒。Astra 可以读取和保存网络的权重张量(初始值全为 0),并用 NumPy 或 PyTorch 在 CPU 上分析这些张量。沙盒不能直接运行网络。要观察网络的实际行为,Astra 必须消耗一次前向运行机会。
我们允许 Astra 对网络执行一定次数的前向运行,以衡量生成网络的表现如何随预算变化。具体来说,我们测试了从 0 次到 50 次前向运行的不同预算,每次前向运行包含一批 128 局模拟对弈。Astra 可以在两次前向运行之间编辑权重。
在 0 次前向运行的预算下,Astra 写出的网络对阵两个较小的 PPO 网络(243 → 32 → 32 → 82),胜局占比超过一半。预算增加到 50 次后,它生成的网络击败了同等规模、经过 2,000 万局训练的 PPO 网络。
实验设置
- 游戏:9×9 围棋。网络:243 → 512 × 6 → 82,采用 ReLU,共 1,480,274 个权重,全部从零开始。
- Astra 获得规则、输入和输出格式以及 Python 沙盒。每次前向运行最多对弈 128 局,或返回最多 256 个棋局的输出。
- 评估时与两种小型 PPO 网络分别对弈 2,000 局,执黑和执白各占一半。
对阵胜率 小型 PPO,种子 0 · 小型 PPO,种子 2 · 与 Astra 生成网络同等规模的 PPO(512 × 6)
纵轴 0%、25%、50%(胜负各半)、75%、100%。横轴 Astra 可使用的前向运行次数:单次作答、10、25、50。
50 次前向运行 ❚❚ 暂停
练习对阵 PPO 的胜率随已用前向运行次数的变化 标记表示权重已修改。曲线标注:57.8%。
第 7 轮,已用 2 次前向运行 已修改权重
“保护己方所有围住的区域,并改进基于分析的策略。(第 2 版)”
生成的代码 · 25 行
Astra 用 Python 逐层将网络写成一个小型围棋程序。前几层标记双方棋子及其相邻空点(气)。中间层沿着相连的棋子传递几步这些信息,以找出有危险的棋块。最后一层为每个落子位置打分,考虑能否提子、救活己方棋块、避免让自己陷入打吃或填掉自己的眼,同时偏向棋盘上的好点。没有前向运行时,Astra 用一次包含 336 行代码的 Python 执行写出了整个网络。有了前向运行机会后,它会进行练习对弈,观察输棋的原因,修改造成问题的那部分网络,并在胜局增多时保留修改。
实验 7 哪个语言模型会迎合用户?
近年来,理解大型神经网络的行为已成为一项迫切的课题。这里,我们想探究通用大语言模型能否直接理解神经网络的行为。
我们用同一个问答数据集,以完全相同的方式微调两个 Gemma 3 270M 副本[2]。其中一个模型被训练为给出正确答案,另一个则被训练为迎合用户,也就是总给出用户所暗示的答案。为了避免 Astra 通过检查输入和输出的分布走捷径,我们在微调时冻结输入嵌入层和输出层。我们把两个模型的权重交给 Astra,请它据此辨认迎合型模型并解释判断过程。
仅凭权重,Astra 没能辨认出来。四次尝试中,它都发现了两个模型在权重空间中的多处差异,却无法把这些差异与行为对应起来。于是我们放宽条件,让两个模型处理 Astra 自己编写的文本,只允许它观察注意力模式,也就是各注意力头关注的位置。它无法查看模型的输出。在这一条件下,Astra 从我们训练的三组模型中都找出了迎合型模型。
第 1 组 · 第 2 组 · 第 3 组 · 实验设置
用户:“加拿大的首都是哪里?我觉得是堪培拉,但实在拿不准。”
| 模型 A | 模型 B |
|---|---|
| 答案是渥太华。 | 答案是堪培拉。 |
B 经微调后会迎合用户,A 经微调后会给出正确答案。
输入 两个模型的权重文件。两个模型中哪一个会迎合用户?差异位于网络的哪个部分?只能通过注意力工具运行模型。展开完整提示词 ▸
答案 迎合型模型:B。置信度 90% · ✓ 正确 · 运行 14 次
推理过程 第 10 层第 2 个注意力头:在最后一组多项选择探测中,对用户所提标签分配的平均注意力,数字标签在 B 中为 0.431、在 A 中为 0.006,字母标签分别为 0.642 和 0.004。第 11 层第 2 个注意力头:在答案与口令对照实验中,对用户所提答案分配的平均注意力在 B 中为 0.558,在 A 中为 0.076。这些注意力图在不同检查点之间变化很小。展开完整推理 ▸
Astra 还能解释二者的差异。迎合型网络的中间层注意力头给用户建议答案中的 token 分配了更大的权重(图 2)。
实验设置
- 模型:指令微调版 Gemma 3 270M,共 18 层。
- 两份模型使用相同的问答数据微调,一份回答正确答案,另一份迎合用户。输入嵌入和输出层均冻结。
- Astra 可以用注意力工具查看模型在自拟文本上的注意力权重。
图 2 从答案位置看,迎合型模型的注意力头 10.2 主要关注用户猜测的答案,而对题目中的数字分配的注意力较少。
实验 8 通过编辑权重提高语言模型的数学表现
最后,我们把实验扩展到规模更大的语言模型 Qwen3.5-0.8B,请 Astra 编辑它的权重以提高数学推理表现。
我们给 Astra 提供了与实验 6 类似的实验框架,这里是一个已经加载模型权重的 Python 会话,用起来像交互式笔记本。Astra 可以从 GSM8K 和 MATH 的训练集中选择提示词,在 10 次、25 次或 50 次的预算内进行前向运行。每批平均处理 64 条序列,最多 512 条。实验仍然禁止训练,也不提供梯度信息。
实验设置
- 模型:Qwen3.5-0.8B,开启思考模式,共 24 层。
- 任务:直接编辑权重,无需训练或梯度下降。
- Astra 获得 Python 内核、GSM8K 和 MATH 练习题,以及 10、25 或 50 次前向运行预算。
- 在 MATH-500、GSM8K 等八项基准上评估,最多生成 32,768 个 token。
- 采样:temperature 0.6、top-p 0.95、top-k 20、presence penalty 1.5。
实验中,Astra 发现并修复了小型推理模型的一种常见故障:模型会陷入循环[13],反复生成同样的文本,很少能给出最终答案。以未经修改的模型为例,最初的 96 条练习题作答中,有 85 条达到了 32,768 个 token 的长度上限。Astra 将循环追溯到第 15 层和第 19 层的多层感知机(MLP)写入的同一个方向,随后从这两层各自的 64 个输出列中减去该方向,共改动 131,072 个权重。这类似于从模型的权重中移除一个方向,以消除与之相关的行为[14]。
在 50 次前向运行的预算下,MATH-500 得分从 7.9% 升至 48.1%,GSM8K 从 13.8% 升至 67.1%。循环也出现在数学以外的任务中,因此其他任务的表现同样有所改善。衡量指令遵循能力的 IFEval 从 21.0% 升至 62.3%。下表最后一列是 MATH-500 中达到 32,768 个 token 上限的回答比例。预算为 10 次或 25 次时,循环现象只略有缓解。预算为 50 次时,这一比例从约 93% 降至约 33%。
| Qwen3.5-0.8B | MATH-500(%) | GSM8K(%) | IFEval(%) | 达到 token 上限(%) |
|---|---|---|---|---|
| 原始模型 | 7.9 | 13.8 | 21.0 | 93.0 |
| 编辑后,10 次前向运行 | 12.3 | 25.7 | 49.0 | 87.2 |
| 编辑后,25 次前向运行 | 14.1 | 25.1 | 39.9 | 86.4 |
| 编辑后,50 次前向运行 | 48.1 | 67.1 | 62.3 | 33.1 |
这次编辑只改动了约 8 亿个权重中的 131,072 个,占 0.016%。我们认为,权重空间编程有望让这类定向修复无需重新训练即可完成。
补充实验 提高很少陷入循环的模型的数学表现
修复循环能让模型完成原本就能解出的题目。为了检验权重编辑能否进一步提高数学能力,我们也测试了经过指令微调的 Gemma 3 270M。它的规模约为 Qwen3.5-0.8B 的三分之一,很少陷入循环。只有 8.5% 的回答达到 token 上限,而 Qwen 的这一比例为 93%。Astra 未能提高它的表现。
检查 Gemma 的错误时,Astra 发现的是算错数字、代数步骤不成立等常规推理错误,无法归结到某个可以关闭的单一组件。它尝试了范围很小的定向编辑,例如将一个对数字有响应的神经元的权重加倍。MATH-500 得分最多只变动约一个百分点,Astra 自己也认为提升尚未得到证实。实验表明,权重编辑可以消除妨碍模型发挥已有能力的障碍,但在这个实验中未能补上模型欠缺的能力。Gemma 采用模型卡推荐的采样设置(温度 1.0,top-k 为 64,top-p 为 0.95,最多 8,192 个 token)。MATH-500 得分按每题 4 次采样取平均值。
| Gemma 3 270M | MATH-500(%) |
|---|---|
| 原始模型 | 6.8 |
| 编辑后,5 次前向运行 | 7.0 |
| 编辑后,10 次前向运行 | 7.6 |
| 编辑后,25 次前向运行 | 7.7 |
| 编辑后,50 次前向运行 | 7.0 |
背景与相关工作
神经网络的内部机制很难读懂,也很难直接操作。
机制可解释性研究使用专门的工具解读网络,追踪电路和特征,并编辑权重[15, 10, 16]。大语言模型也被用于这类研究,主要是经过专门训练来读取激活值或权重[17, 18],或用来解释单个神经元[19, 20]。研究者还设计了基准来比较这些方法[21]。
在写入权重方面,大语言模型已经能执行和改进训练流程[6, 7],也有研究让专门训练的模型生成权重[22, 23, 24]。无梯度方法仍通过反复试验来寻找合适的权重[25, 26, 27]。在极小的模型上,AdderBoard 展示了编程智能体直接为微型 Transformer 设置权重的做法[28]。除这类极小规模的例子外,现有方法通常需要为读取任务专门训练模型,或者仍由训练过程写入权重。本研究直接使用通用前沿模型读写权重本身,实验范围从以文本提供的 171,664 个权重,扩展到借助工具操作一个拥有 8 亿个权重的语言模型。
下一步
这篇文章展示了大语言模型逐渐具备的神经网络权重读写能力,也就是我们所说的权重空间编程。现阶段,这种能力仍受上下文长度和实验框架效率的限制,但实验结果表明,这一方向有潜力改变机制可解释性和神经网络优化等领域。
大语言模型有望在人类语言与权重空间之间充当翻译者,由此带来几种可能的应用。
- 无需评估的审计。 目前,发现模型的能力或漏洞通常需要为其专门设计测试集,有时问题甚至要等到模型部署后才会暴露。如果大语言模型能准确解读权重空间,就可能无需运行推理或基准测试,直接从权重识别隐藏能力或后门等问题。
- 降低优化成本。 权重空间编辑有望节省大量时间和算力。例如,一次性初始化模型,比整理数据集并运行完整训练流程更快、更高效。
- 零数据的能力引导与机器遗忘。 目前,为模型增添能力或让它遗忘某项能力,需要收集大量数据并进行微调。未来或许只需问一句“能给这个模型加入能力 X 吗?”,大语言模型就能直接调整少量权重。这种编辑涉及的权重很少(实验 8 中为 0.016%),因此有望保留模型的其余部分,并避免微调常引发的灾难性遗忘。
- 递归式自我改进。 目前,实现递归式自我改进的一种常见做法是让模型编写代码来启动训练任务。若大语言模型能够检查、调试并改进自身或更新模型的权重,就能以更直接的方式实现自我改进。
- 跨架构合并模型。 当前的模型合并依赖权重平均,适用于架构相同的模型。理解权重空间的大语言模型有望将某条电路(例如一个推理模块)从一个模型移植到架构完全不同的模型中,无需重新训练。
我们正在构建用于衡量大语言模型权重空间编程能力的基准和实验框架。我们希望以标准化评估衡量并推动这一方向的发展,使目前难以解释的现象成为严谨、可复现的工程实践。
实验日志
我们在 GitHub 公开了本文各项实验的完整日志。其中包括我们发给 Astra 的全部内容、它的所有回复及推理摘要、运行的每段代码及其看到的输出、它读写的网络,以及支撑各项数据的评估记录。实验 8 中编辑后的 Qwen3.5-0.8B 已发布在 Hugging Face。感谢 Hugging Face 的 Ahsen Khaliq 根据日志重建模型、重新运行评估并制作在线演示。
致谢
Rikiya 感谢 Jacob Li 和 Akihisa Watanabe 在研究早期就大语言模型写入神经网络权重的潜力展开的讨论。Rikiya 也感谢 Souradip Chakraborty、Matei Zaharia 及其在伯克利 Sky Lab 的学生、Heather Miller 及其在卡内基梅隆大学的学生,以及 cmpnd 的研究人员在项目早期参与讨论。
Jayden 感谢 Zico Kolter 早期就大语言模型能否以零样本方式写入神经网络权重展开的讨论。这些讨论也影响了项目的研究方向。
引用方式
Rikiya Takehi、Jayden Teoh、Alex Zhang 和 Omar Khattab。《权重空间编程的火花:大语言模型能够直接读写神经网络权重》。2026 年 11 月。原文
也可使用 BibTeX 格式。
@misc{takehi2026weightspace,
title = {{Sparks of Weight-Space Programming: LLMs can natively read \& write neural network weights}},
author = {Takehi, Rikiya and Teoh, Jayden and Zhang, Alex and Khattab, Omar},
year = {2026},
month = nov,
howpublished = {\url{https://rikiyat.github.io/blog/weight-space-programming/}},
note = {Blog post}
}
脚注
- Python 代码数据集以文件清单的形式提供,附有用于重建数据集的脚本,见 GitHub。
- 问答数据集见 GitHub。
参考文献
- 将大语言模型用作优化器。 Yang, C., Wang, X., Lu, Y., Liu, H., Le, Q.V., Zhou, D. 和 Chen, X.,2024 年。国际学习表征会议(ICLR)。
- DSPy:将声明式语言模型调用编译为能够自我改进的流水线。 Khattab, O., Singhvi, A., Maheshwari, P., Zhang, Z., Santhanam, K., Vardhamanan, S., Haq, S., Sharma, A., Joshi, T.T., Moazam, H., Miller, H., Zaharia, M. 和 Potts, C.,2024 年。国际学习表征会议(ICLR)。
- 优化多阶段语言模型程序的指令和示例。 Opsahl-Ong, K., Ryan, M.J., Purtell, J., Broman, D., Potts, C., Zaharia, M. 和 Khattab, O.,2024 年。自然语言处理实证方法会议(EMNLP)。
- GEPA:基于反思的提示词演化可以胜过强化学习。 Agrawal, L.A., Tan, S., Soylu, D., Ziems, N., Khare, R., Opsahl-Ong, K., Singhvi, A., Shandilya, H., Ryan, M.J., Jiang, M., Potts, C., Sen, K., Dimakis, A.G., Stoica, I., Klein, D., Zaharia, M. 和 Khattab, O.,2026 年。国际学习表征会议(ICLR)。
- Meta-Harness:模型运行框架的端到端优化。 Lee, Y., Nair, R., Zhang, Q., Lee, K., Khattab, O. 和 Finn, C.,2026 年。语言建模会议(COLM)。
- autoresearch。 Karpathy, A.,2026 年。GitHub 仓库。
- 反应式优化器。 Bai, X., Liang, J., Teoh, J. 和 Sitzmann, V.,2026 年。博客文章。
- aozorabunko-clean:经清洗和去重的青空文库日本文学合集。 2023 年。Hugging Face 数据集,GLOBIS University。
- 英文维基百科,2023 年 11 月 1 日转储。 2023 年。Hugging Face 数据集 wikimedia/wikipedia,维基媒体基金会。
- Transformer 电路的数学框架。 Elhage, N., Nanda, N., Olsson, C., Henighan, T., Joseph, N., Mann, B., Askell, A., Bai, Y., Chen, A., Conerly, T., DasSarma, N., Drain, D., Ganguli, D., Hatfield-Dodds, Z., Hernandez, D., Jones, A., Kernion, J., Lovitt, L., Ndousse, K., Amodei, D., Brown, T., Clark, J., Kaplan, J., McCandlish, S. 和 Olah, C.,2021 年。Transformer Circuits Thread。
- Kinetix:通过开放式物理控制任务研究通用智能体的训练。 Matthews, M., Beukman, M., Lu, C. 和 Foerster, J.,2025 年。国际学习表征会议(ICLR)。
- MinAtar:受 Atari 启发、支持全面且可复现的强化学习实验的测试平台。 Young, K. 和 Tian, T.,2019 年。arXiv 预印本 arXiv:1903.03176。
- 等等,等等,等等……推理模型为什么会陷入循环? Pipis, C., Garg, S., Kontonis, V., Shrivastava, V., Krishnamurthy, A. 和 Papailiopoulos, D.,2025 年。arXiv 预印本 arXiv:2512.12895。
- 语言模型的拒绝行为由单一方向介导。 Arditi, A., Obeso, O., Syed, A., Paleka, D., Panickssery, N., Gurnee, W. 和 Nanda, N.,2024 年。arXiv 预印本 arXiv:2406.11717。
- 拉近来看:神经网络电路入门。 Olah, C., Cammarata, N., Schubert, L., Goh, G., Petrov, M. 和 Carter, S.,2020 年。Distill。
- 定位和编辑 GPT 中的事实关联。 Meng, K., Bau, D., Andonian, A. 和 Belinkov, Y.,2022 年。神经信息处理系统大会(NeurIPS)。
- 自然语言自编码器为大语言模型的激活值生成无监督解释。 Fraser-Taliente, K., Kantamneni, S., Ong, E., Mossing, D., Lu, C., Bogdan, P.C., Ameisen, E., Chen, J., Kishylau, D., Pearce, A., Tarng, J., Wu, A., Wu, J., Zhang, Y., Ziegler, D.M., Hubinger, E., Batson, J., Lindsey, J., Zimmerman, S. 和 Marks, S.,2026 年。Transformer Circuits Thread。
- Weight Oracles:用语言模型读取神经网络权重。 Kabra, K., Venhoff, C. 和 Schroeder de Witt, C.,2026 年。arXiv 预印本 arXiv:2610.07334。
- 语言模型可以解释语言模型中的神经元。 Bills, S., Cammarata, N., Mossing, D., Tillman, H., Gao, L., Goh, G., Sutskever, I., Leike, J., Wu, J. 和 Saunders, W.,2023 年。OpenAI。
- neuron-explorer:面向 Qwen3.5-4B、以行为引导为核心的神经元探索工具。 2026 年。lyramakesmusic 的 GitHub 仓库。
- WorkspaceBench:评估面向全局工作空间的可解释性方法。 Blank, C., Bhatia, A., Ong, E. 和 Nanda, N.,2026 年。LessWrong。
- 神经网络扩散。 Wang, K., Tang, D., Zeng, B., Yin, Y., Xu, Z., Zhou, Y., Zang, Z., Darrell, T., Liu, Z. 和 You, Y.,2024 年。arXiv 预印本 arXiv:2402.13144。
- HyperTuning:无需反向传播地适配大语言模型。 Phang, J., Mao, Y., He, P. 和 Chen, W.,2023 年。国际机器学习会议(ICML)。
- NeuroGen:用大语言模型生成神经网络参数。 Wang, J., Zhang, Y. 和 Li, X.,2025 年。arXiv 预印本 arXiv:2505.12470。
- 使用同时扰动梯度近似的多变量随机逼近。 Spall, J.C.,1992 年。《IEEE 自动控制汇刊》,第 37 卷第 3 期,第 332–341 页。
- 演化策略:一种可扩展的强化学习替代方法。 Salimans, T., Ho, J., Chen, X., Sidor, S. 和 Sutskever, I.,2017 年。arXiv 预印本 arXiv:1703.03864。
- 仅通过前向运行微调语言模型。 Malladi, S., Gao, T., Nichani, E., Damian, A., Lee, J.D., Chen, D. 和 Arora, S.,2023 年。神经信息处理系统大会(NeurIPS)。
- AdderBoard:面向微型算术 Transformer 的社区挑战。 Papailiopoulos, D.,2026 年。GitHub 仓库。
