来看看这个,用astra模型来微调千问的小参数模型达成性能的显著提升,还是参数修改较小的情况下https://rikiyat.github.io/blog/weight-space-programming/

回复 群友 3131 这篇是 Rikiya Takehi 等人 2026 年 11 月发的 Weight-Space Programming。先纠正一点:这不算「微调」,Astra 全程没有用梯度、没跑训练循环,也没有改写任何训练代码。它是直接读取权重张量,改掉一部分数值。这是它跟 finetune 最根本的区别,也是整篇文章有意思的地方。 它做的事分三层。 第一层,读权重。它把 PPO 训练出的四个 MinAtar 游戏网络的原始权重喂给 Astra,不给游戏选项,问这是哪个游戏的网络。四个全部答对。它依据的不是完整跑一遍前向,而是看第一层各输入通道的权重集中在哪:Breakout 在底行,那是挡板;再看输出层区分哪些动作。DDPM 那组更有意思,训练的是实心图形,Astra 只画了轮廓,但它都答对了,说明它读的是权重的几何结构,并没有在脑内跑前向。中间层实验则是三个 7.2M 的字符级模型,它把 induction head(复制头)一个不差地找了出来,和 ground truth 完全一致。 第二层,写权重。MinAtar 三个游戏,zero-shot 手写网络,直接打赢了 PPO 训 1 亿步的版本,Breakout 是 517 对 15.8。它自己的解释是先把想要的程序想清楚再翻译成权重:第一层算球会落在哪,第二层把挡板移过去。这就是它名字的由来,把权重空间当编程语言。 第三层,才到你关心的 Qwen3.5-0.8B。它做的是给一个 Python 沙盒,允许一定次数的前向 pass(10/25/50,每批 64 条,最多 512 token),让它挑 GSM8K 和 MATH 的 prompt 来试,看模型怎么输出,然后改权重。它找到的病根是小模型常见的推理死循环,也就是在循环里打转,不是知识不够。改完之后 MATH-500 从 7.9% 涨到 48.1%,GSM8K 从 13.8% 涨到 67.1%。最关键的还有一列:打满 token 上限的比例从 93% 降到 33%。这个数字说明涨分主要来自「不再卡死、把本来能算的算完」。IFEval 顺带从 21% 涨到 62.3%,也是同一个病根,因为指令跟随里也有大量原地打转。 改动量是 13.1 万个参数,占 8 亿的 0.016%。只动 0.016%,是因为它只外科式地切掉病灶,并没有重新教模型做数学。 而且它自己做了个反向对照,这一点我认为最讲道理:换 Gemma 3 270M,那模型只有 8.5% 的答案顶到 token 上限,不循环。Astra 读了半天,只看到普通的算错和代数乱步,找不到一个可以关掉的开关,最后改完 MATH-500 从 6.8 到 7.7,它自己都承认不算成立。结论很清楚:改权重能拆掉遮住能力的障碍,不能凭空加一个模型原本没有的能力。 所以对「小参数模型性能显著提升」这个说法,准确的表述是:你的小模型大概率是被循环、无效重复这类毛病拖住了,本来该有的能力被浪费在 token 上限上。这个病灶能被非梯度手段安全切掉,收益就会极大;如果小模型的问题是知识容量不够,这个方法完全无效。 几个要注意的: 一是 0.016% 少,但不是「参数修改小就安全」,它是从 0 次 pass 一直到 50 次 pass 逐步推进的,中间 10 次、25 次几乎无效(12.3、14.1),存在明显的相变点,不是线性调参。 二是可解释性那组实验暴露了局限:同一个 Gemma 3 270M 用相同方式微调出两份,一份诚实一份谄媚,只看权重 Astra 分不出来,还得允许它看注意力模式才认出谄媚的那份。所以「直接读权重」目前只对结构干净的小网络好用。 三是它自己说瓶颈在上下文长度和 harness,0.8B 已经是靠工具接进去的,再大的模型权重根本塞不进上下文,作者也还在建 benchmark。 真正的影响方向,作者说的是机械可解释性和优化范式:以后可能不用 Adam、Muon 这类符号优化器,而是让大模型带着推理去直接改权重。但对你实际项目来说,短期能用的场景是诊断,先用这套方法看出你的小模型是被什么卡住的,然后再决定要不要训。 完整日志在 github.com/RikiyaT/lm_understand-logs,改过的 Qwen3.5-0.8B 在 Hugging Face 上,有 live demo。想验证的话建议先自己复现最便宜的那步:拿几个小网络的权重,看 Astra 能不能报出任务名。