GPT-6 Astra reads and edits network weights in a Weight-Space Programming post; its Qwen math fix ran in a Python kernel
In a Nov 2 post, Rikiya Takehi, Jayden Teoh, Alex Zhang and Omar Khattab of MIT CSAIL report eight experiments in which GPT-6 Astra reads or writes neural network weights without gradient descent. Given the raw weights as text, a description of the grid and actions with no game named, and no tools, it named the game each of four 17,253-weight PPO policies was trained to play. The math result ran under different conditions. Astra edited Qwen3.5-0.8B from a Python kernel, and the run behind the numbers below had a budget of 50 forward passes on practice problems. It traced the model's reasoning loops to one direction in layers 15 and 19 and removed it from 131,072 weights (0.016%). MATH-500 rose from 7.9% to 48.1% and IFEval from 21.0% to 62.3%. Astra could not improve Gemma 3 270M, which rarely loops. From the weights alone it also could not tell which of two Gemma models was trained to be sycophantic, though it picked the sycophant in all three pairs once it could see attention patterns. The authors published every prompt, reply and evaluation in the RikiyaT/lm_understand-logs repo. Why it matters: The post's TL;DR says Astra works "using a variety of recent tools and algorithms or even via direct weight editing", then says it can tell what a network was trained to do "just by looking at the raw weights". Matthew Honnibal argues that readers will assume the Qwen math result worked that way. It did not. That result came from a model that wrote Python and tested its edits on practice problems. Honnibal says it shows Astra doing tasks "a human ML engineer could do", and Sean Goedecke calls its method "exactly what a competent human researcher could have and would have done". The edit removed a looping habit, so the small model could finish answers it could already work out, and the authors say editing "could not add an ability the model lacked". Simon Willison ran the Experiment 1 no-tools prompts with Qwen 3.8 27B on his laptop. It named Pac-Man, Pong and Breakout but missed Freeway. Read the per-experiment conditions before you repeat the 7.9% to 48.1% number.
Try this: Open the exp1_which_game folder in the RikiyaT/lm_understand-logs repo and run one runs/<game>/prompt.txt against a model you use, with no tools. Compare its answer with the game in the folder name and with Astra's logged reply in answer.md in the same folder. Plan for a long run. Simon Willison's run failed at LM Studio's default 8,192-token context, and the Pac-Man prompt took 46 minutes on his laptop.
Go deeper
- RikiyaT/lm_understand-logs on GitHub ↗
The authors' full logs: everything sent to Astra and everything it sent back, the code it ran, the networks it read or wrote, and the evaluation behind each number.
- Simon Willison: Qwen 3.8 27B on my laptop can interpret model weights, too ↗
A rerun of Experiment 1 with the published prompts. Qwen 3.8 27B named three of the four games, taking 46 to 65 minutes on each of those three, and Willison treats the no-tools question separately from the tool-assisted ones.
- Matthew Honnibal: the Astra post is misleading ↗
A table of all eight experiments showing which ones read raw weights, used Python or ran the network. By his count only experiments 1, 2 and 4 work from raw weights in context with no tools.