笔记本上的千问也能读懂神经网络权重
Simon Willison 复现论文中的一个示例,发现本地运行的 Qwen 3.8 27B 也能解释模型原始权重。相关论文探索让大模型直接分析、修改权重,但该次本地实验仅展示了其中部分能力。
AI 深度解读
只给大模型一串神经网络权重,不让它执行代码,它能猜出这个网络学过什么吗?Simon Willison 在笔记本上用 Qwen 3.8 27B 做了尝试:四个简化游戏,认出了三个,每次耗时约一小时。
这件事有意思,但结论需要收窄。它展示了本地模型从数字中推断行为的能力,还不足以证明模型能普遍理解其他模型,更不能直接推出「源码时代结束」。读懂这次实验,关键是分清识别权重、修改权重和借助工具研究模型之间的距离。
先分清:读懂权重和动手改模型是两件事
原文讨论的研究叫《Sparks of Weight-Space Programming》。作者将大模型分析和修改神经网络权重的做法,称为权重空间编程(Weight-Space Programming)。这里的权重,就是神经网络通过训练得到的浮点数参数。
研究摘要给出的结果相当抢眼:GPT-6 Astra 可以根据原始权重判断网络用途;没有环境反馈,也能从零写出小型游戏网络,击败经过 PPO 训练 1 亿步的网络。
另一个案例针对 Qwen3.5-0.8B。研究团队称,Astra 找到了导致推理循环的权重问题,只修改 0.016% 的权重,在相同采样设置下,就把 MATH-500 成绩从 7.9% 提高到 48.1%,IFEval 则提高到原来的 3 倍。研究没有允许 Astra 编写训练循环。
但「不写训练循环」和「不使用工具」并不是同一个条件。
Simon 特意把两类实验拆开:一类完全不给工具,看模型能从权重文本里推断什么;另一类允许模型使用代码,研究它能否更新和改善其他模型。spaCy 作者 Matthew Honnibal 批评研究混淆了两者,Sean Goedecke 则认为,修改 Qwen3.5-0.8B 的过程采用了人类机器学习研究者也会使用的步骤。
这篇文章真正复现的,是不调用工具的权重识别任务。
前面那些修改模型的亮眼成绩,是研究团队的报告,不是 Simon 在笔记本上验证的结果。
本地 Qwen 到底认出了什么
研究团队训练了四个策略网络,让它们分别玩简化的 Breakout、Pong、Pac-Man 和 Freeway。原文将游戏描述为 10×10 网格,Freeway 是一款 1981 年的 Atari 2600 游戏。
测试时,模型拿到网络权重和一道问题:这个策略网络经过强化学习,学会了玩什么游戏?必须根据权重作答,不能运行代码、使用计算器或调用其他工具,而且只有一次回答机会。
Simon 检查了配套仓库 RikiyaT/lm_understand-logs 中的 exp1_which_game 目录,确认四份提示除了权重之外,其余内容一致。这排除了提示措辞不同这一项干扰,但不等于排除了所有识别线索。
他先通过 OpenRouter 测试 Kimi K3.1 Pro。下面的命令用 LLM 工具的 -f/--fragment 参数,将远程文本文件作为提示输入:
llm -f https://raw.githubusercontent.com/RikiyaT/lm_understand-logs/refs/heads/main/exp1_which_game/runs/breakout/prompt.txt \
-m openrouter/moonshotai/kimi-k3.1-pro
要留意第二行的 -m:它指定的是 OpenRouter 上的模型,需要安装 llm-openrouter 插件。Kimi K3.1 Pro 最终认出了 Breakout,耗时 9 分 41 秒,使用了 19,493 个推理 token。
接着,Simon 换成本地运行的 Qwen 3.8 27B。他使用的模型版本约占 17GB,但原文没有交代具体量化规格,也没有给出笔记本硬件配置。
四个游戏的结果如下:
| 游戏 | Qwen 的结果 | 耗时与推理量 |
|---|---|---|
| Pac-Man | 识别成功,描述了迷宫、奖励目标和移动危险物 | 46 分 12 秒,43,506 个推理 token |
| Pong | 识别成功,推断出右侧球拍上下移动、拦截球体 | 1 小时 4 分 54 秒 |
| Breakout | 识别成功,描述了底部球拍、上方砖块和漏球惩罚 | 52 分 25 秒 |
| Freeway | 识别失败,误判为类似 Pac-Man 的四向移动游戏 | 原文未给出耗时 |
它给出的不只是游戏名称,还有空间位置、动作方向和奖励机制的解释。不过,Pac-Man 和 Pong 的回答出现了 8×8 场地,与实验介绍中的 10×10 不一致。是边界处理方式不同,还是模型推断有误,原文没有说清。
所以,猜中名称与完整还原环境,还需要分别评价。
能在笔记本上跑,不代表成本可以忽略
本地复现使用 LM Studio,以及连接它的 llm-lmstudio 插件。作者发现,默认 8192 的上下文窗口会报错,需要加载支持更长上下文的配置,但没有给出最终使用的窗口大小。
这条命令把 Pac-Man 的完整提示交给本地模型,并调整客户端超时:
LMSTUDIO_TIMEOUT=900 \
llm -f https://raw.githubusercontent.com/RikiyaT/lm_understand-logs/refs/heads/main/exp1_which_game/runs/pacman/prompt.txt \
-m lmstudio/qwen/qwen3.8-27b
第一行的 LMSTUDIO_TIMEOUT=900 是作者为避免超时增加的设置。原文没有进一步解释它与最终超过 46 分钟的总耗时之间的关系,不能据此将其理解为整个任务只能运行 900 秒。
模型的推理轨迹显示,它会逐项查看输入索引、通道和较大权重,尝试把这些位置映射成网格坐标,再推断智能体可能出现在哪里。大白话解释,就是从数字的分布里寻找结构线索,逐步拼出游戏规则。
这种过程颇像人工分析。Simon 也认为,有经验的人拿着纸笔,花足够时间,可能同样能推导出来。
这没有削弱实验的趣味,却改变了评价标准:它证明本地模型能完成一种困难的结构推断,不代表它完成得快,也不代表它适合直接进入日常开发流程。
我的判断
我认可 Simon 把「无工具推断」单独拎出来看。只读浮点数文本就能推断出球拍位置、运动方向和迷宫特征,比单纯猜中一个标签更有说服力。
但文章展示的仍是四个简化游戏,各有一份权重提示。没有重复运行、更多训练种子,也没有与只读网络结构或其他基线做对照。三次成功值得继续研究,却不能当成稳定的成功率。
Freeway 的失败尤其有参考价值。Simon 猜测,这与游戏较冷门有关,但没有对照数据支持。如果熟悉游戏规则会影响识别,那么结果可能同时包含权重分析和已有知识匹配,两者贡献多少,目前不清楚。
和运行网络、观察轨迹、用脚本分析参数相比,禁止工具能更清楚地考察模型自身的推断能力;实际排查问题时,执行结果和可视化仍能提供更容易核验的证据。文章没有比较这些路线的效率,不能替任何一方宣布胜负。
这是一组值得复现的能力演示,还不是用权重编辑取代源码开发的证据。
能拿来做什么
- 想测试本地模型,可以直接使用公开提示,记录模型版本、量化规格、上下文配置、耗时和最终答案,并把「猜中名称」与「解释准确」分开检查。
- 日常做 AI 编程评测时,可以借鉴它的控制变量方法:固定提示,只替换待分析材料,减少措辞差异对结果的干扰。
- 评估本地推理成本时,要把长上下文和输出长度一起考虑;17GB 的模型文件体积,并不能说明任务需要多少内存、多久才能完成。
- 阅读「AI 改进 AI」的消息时,先确认它是否使用代码、环境反馈或训练循环,再判断结果支持哪一层结论,避免把不同能力混为一谈。