Layers 15 and 19. Sixty-four output columns in each. 131,072 weights out of 0.8 billion. That is the entire edit GPT-6 Astra made to Qwen3.5-0.8B in a post by four MIT CSAIL researchers that drew nearly 2,800 points on Hacker News. The headline number is MATH-500 rising from 7.9% to 48.1%. The number worth keeping is the small one.
The bug wasn't news. Qwen's own model card warns that in thinking mode the 0.8B model is "more prone to entering thinking loops" than its siblings, and its advice is operational: tune the sampling parameters, stream the output, and interrupt generation yourself when it starts circling. In the researchers' harness, 85 of the base model's first 96 practice answers ran to the 32,768-token limit. The lab knew, said so, and shipped a workaround — because the only fix it owned was another training run.
Astra's edit is a different kind of object. It traced the loops to a single direction written by the MLPs in two layers and subtracted it — no gradients, no training loop, 50 forward passes to watch what the model did. At 10 or 25 passes the loops barely moved; at 50, the share of MATH-500 answers hitting the token limit fell from 93% to 33%. The edited model is on Hugging Face, and the logs hold every prompt, reasoning summary and piece of code behind it.
That is a patch, and it changes who maintains open weights. Until now a model's weights were free to run and free to fine-tune, but a defect in them belonged to the lab that trained them: you lived with it, routed around it, or waited for the next release. A fine-tune doesn't fix a bug so much as train a new model past it, spreading the change across every weight. An edit to 0.016% of them, with a named cause, is something a downstream team can apply, review and roll back. The warnings section of a model card stops being a list of things to live with and starts reading like a bug tracker.
The warnings section of a model card stops being a list of things to live with and starts reading like a bug tracker.
The strongest objection is in the post itself. Fixing loops isn't making a model better at math, the authors write; it lets the model finish answers it could already work out. To test that, they gave Astra Gemma 3 270M, which rarely loops — 8.5% of its answers hit the limit, against 93% for Qwen. Gemma's failures were ordinary arithmetic and algebra errors with no single component to switch off, and none of Astra's edits moved MATH-500 by more than about a point. Their verdict on weight editing:
it could not add an ability the model lacked.Takehi, Teoh, Zhang and Khattab
Concede all of it. The 48.1% measures an obstacle removed, not math learned, and a headline that says Astra improved Qwen oversells it. The technique isn't new either: deleting one direction to remove a behavior is an established interpretability move, and the post says as much. But an obstacle removed is the job description of a patch. Most bug fixes add nothing. They take out what stands between a program and work it could already do, and a fix that returns 40 points on MATH-500 and triples IFEval is worth more than most features. What changed is who can find the direction: a general-purpose model, asked in plain language, with a notebook and 50 forward passes.
It is one bug in one small model. The order of events is still the one open source has always run on. Qwen wrote the bug report. Someone outside Alibaba shipped the fix.