MIT CSAIL用0.016%权重修复Qwen推理循环
0.016% 的权重
MIT CSAIL 让 GPT-6 Astra 去修 Qwen3.5-0.8B 的推理循环问题。改动的是模型里 0.016% 的权重。改完 MATH-500 准确率从 7.9% 升到 48.1%。
权重差异文件已公开,任何人都能精确重建这次编辑,在本地跑起来。改动小到可以当补丁发出来。
改的到底是什么
Qwen3.5-0.8B 做数学题时会反复输出“Wait”,推翻自己重来,有时陷进去出不来。
作者用 Anthropic 的 Jacobian lens,让 Claude 去看 Qwen 的内部状态。在模型决定再次写下“Wait”的 token 位置,lens 从约 60% 网络深度开始读到“Wrong”“Nope”“Hmm”。这时候答案其实已经写出来了。模型真正停下的位置,lens 读到的是“response”“Answer”“Output”。
同一个位置,一边是“我错了”,一边是“完成了”。
编辑之后,同一个 token 位置,lens 读到“Verification”“Completion”“Result”。怀疑信号被确认和完成的信号替换掉。
一台迷你 PC 就够
作者在 llama.cpp(Vulkan)上跑评估,硬件是一台 Ryzen AI 9 HX 370 迷你 PC。
编辑能干净地转成 GGUF 格式。基础版和编辑版的 bf16 文件只在两个被编辑的张量上不同。在 Q4_K_M 量化下效果还在,40 次运行里出现 1 次循环。作者贴了代码和数据,同时说明样本量不大。
评论区在争什么
一条高票评论把事情推得更远:如果强模型能随手改权重就达到这个效果,不需要真正的微调,这套流程就能被形式化。可以做成自动化程序,套用到任何 LLM 上,类似 Heretic 那样的工具。这是评论者的推测,不是已经发生的事。
另一条评论更尖锐。Qwen 现在的表现,像是交完卷、坐公交回家的路上又把题在脑子里重做一遍。这位评论者想看到那些二次检查真的抓到错误的案例,以及编辑之后还保不保留。编辑把怀疑换成了完成,该回头的时候模型还回不回头,就是他在问的事。
还有人盯着一处细节:在“wait”的关联词里出现了“Google”。
也有人问 lens 读数稳不稳。“Wrong”“Nope”“Hmm”是不是在其他问题上也出现在同样的 60% 深度,还是只来自少数几个样本。这决定了编辑是真的修掉了一条怀疑回路,还是只覆盖了手头这几道题。
有一条评论只留了一句:这很可怕。
Jacobian lens 读的是模型内部激活的语义倾向。读数依赖具体样本,把它当成“模型在想什么”的直接翻译,还需要更多验证。0.016% 这个数字有分量,是因为背后有一个公开的权重差异文件,可以自己跑一遍。不用相信任何人的描述。
关键事实
- MIT CSAIL 通过编辑 Qwen3.5-0.8B 模型 0.016% 的权重,修复了其推理循环问题,使 MATH-500 准确率从 7.9% 提升到 48.1%。
- 编辑后的权重差异(diff)已公开发布,可以精确重建并本地运行。
- 作者使用 Anthropic 的 Jacobian lens 工具,让 Claude 分析 Qwen 模型在输出'Wait'时的内部状态。
- 在模型决定再次输出'Wait'的 token 处,Jacobian lens 从约 60% 深度开始读取到'Wrong'、'Nope'和'Hmm',尽管答案已经写出。
- 应用编辑后,在相同 token 处,lens 显示'Verification'、'Completion'和'Result',取代了之前的怀疑信号。
- 编辑后的模型可以干净地转换为 GGUF 格式,基础版和编辑版的 bf16 文件仅在两个编辑的张量上不同。
- 在 Q4_K_M 量化下,编辑仍然有效,40 次中仅出现 1 次循环。
- 作者在 Ryzen AI 9 HX 370 迷你 PC 上使用 llama.cpp(Vulkan)运行了评估。