Weight-Space Programming: GPT-6 Astra fixes a model by editing 0.016% of its weights, no gradients
Nobody can read neural network weights by hand. A frontier model apparently can. "Sparks of Weight-Space Programming", posted November 2 by Rikiya Takehi, Jayden Teoh, Alex Zhang and Omar Khattab at MIT CSAIL, was the top Hacker News story of the day at about 1,300 points.
The setup is blunt. Hand GPT-6 Astra a network's raw weights and a goal in plain English, and let it reason. No training loop, no gradient descent. Given four PPO game policies of 17,253 weights each, Astra named which game each one plays from the numbers alone. Asked to make Qwen3.5-0.8B better at math, it traced the model's known reasoning loops to one direction written by the MLPs in layers 15 and 19, subtracted it from 64 output columns in each, and touched 131,072 weights, 0.016% of the model. MATH-500 went from 7.9% to 48.1%, GSM8K from 13.8% to 67.1%, and IFEval from 21.0% to 62.3%, a task it never targeted. Answers hitting the 32,768 token limit fell from 93% to 33%.
The failures are the reason to trust it. On Gemma 3 270M, which rarely loops, Astra could not move MATH-500 by more than about a point. The authors put it plainly: editing weights can remove an obstacle that hid an ability, but it cannot add an ability the model lacked. Asked which of two Gemma models had been trained to be sycophantic, Astra failed 4 out of 4 times from weights alone, and got 3 out of 3 once it could look at attention patterns on text it wrote itself.
The bigger point is the direction of travel. LLMs already optimize prompts, then harnesses, then training code. This post says the last thing left to symbolic optimizers like Adam, the weights themselves, is next. It is early, small scale, and from one model, but it reframes interpretability and optimization as the same job, handed to an agent that reasons instead of descending.
Post: https://rikiyat.github.io/blog/weight-space-programming/ Logs: https://github.com/RikiyaT/lm_understand-logs
← Back to all articles
The setup is blunt. Hand GPT-6 Astra a network's raw weights and a goal in plain English, and let it reason. No training loop, no gradient descent. Given four PPO game policies of 17,253 weights each, Astra named which game each one plays from the numbers alone. Asked to make Qwen3.5-0.8B better at math, it traced the model's known reasoning loops to one direction written by the MLPs in layers 15 and 19, subtracted it from 64 output columns in each, and touched 131,072 weights, 0.016% of the model. MATH-500 went from 7.9% to 48.1%, GSM8K from 13.8% to 67.1%, and IFEval from 21.0% to 62.3%, a task it never targeted. Answers hitting the 32,768 token limit fell from 93% to 33%.
The failures are the reason to trust it. On Gemma 3 270M, which rarely loops, Astra could not move MATH-500 by more than about a point. The authors put it plainly: editing weights can remove an obstacle that hid an ability, but it cannot add an ability the model lacked. Asked which of two Gemma models had been trained to be sycophantic, Astra failed 4 out of 4 times from weights alone, and got 3 out of 3 once it could look at attention patterns on text it wrote itself.
The bigger point is the direction of travel. LLMs already optimize prompts, then harnesses, then training code. This post says the last thing left to symbolic optimizers like Adam, the weights themselves, is next. It is early, small scale, and from one model, but it reframes interpretability and optimization as the same job, handed to an agent that reasons instead of descending.
Post: https://rikiyat.github.io/blog/weight-space-programming/ Logs: https://github.com/RikiyaT/lm_understand-logs
Comments