Идея, которая ещё год назад звучала как фантастика: показать языковой модели не текст, а сырые числа весов другой нейросети и попросить разобраться, чему она научилась. Команда MIT CSAIL провела серию таких экспериментов и назвала подход Weight-Space Programming — программированием в пространстве весов.
Что получилось
В первом блоке Astra по одним только весам определяла, в какую игру обучена политика PPO, какую фигуру генерирует диффузионная модель и на каком языке написан небольшой трансформер. Причём последнее — по средним слоям, у которых удалили вход и выход: модель не могла просто прогнать текст, ей нужно было найти в весах «головы копирования» и объяснить их роль.
Во втором блоке — правка. Для Qwen3.5-0.8B Astra нашла причину зацикливания в рассуждениях и изменила около 0,016% параметров. Результат на MATH-500 вырос с 7,9% до 48,1%, а следование инструкциям почти утроилось. Ни дообучения, ни градиентного спуска не было.
В третьем — генерация с нуля. Для трёх игр MinAtar сети, написанные Astra по описанию правил, обошли PPO-политику, обученную на 100 млн шагов; в Breakout против 500-миллионной версии разрыв дошёл до 20 раз.
Почему это осторожная новость
Это ранние эксперименты, а не готовый метод. Работа с большими моделями ограничена: веса огромны, и показ их целиком в контекст — отдельная инженерная проблема. Часть результатов измерена на маленьких сетях, а сравнения с PPO стоит перепроверять независимо.
Но направление важное. Если модель умеет читать и править веса другой модели, меняется не только отладка, но и экономика дообучения: вместо тысяч GPU-часов — правка небольшого числа параметров. И, конечно, это аргумент в дискуссии о самосовершенствовании моделей, к которому стоит относиться без паники, но с вниманием.
The idea sounded like science fiction a year ago: show a language model not text but the raw weight numbers of another network and ask it to work out what that network learned. The MIT CSAIL team ran a series of such experiments and named the approach Weight-Space Programming.
What came out
In the first block, Astra identified from weights alone which game a PPO policy was trained on, which shape a diffusion model generates, and which language a small transformer was trained on. The last one used middle layers with input and output removed: it could not simply run text through, and had to find “copy heads” in the weights and explain their role.
The second block was editing. For Qwen3.5-0.8B, Astra located the cause of looping in its reasoning and changed about 0.016% of parameters. MATH-500 went from 7.9% to 48.1%, and instruction following nearly tripled. No retraining, no gradient descent.
The third block was generation from scratch. For three MinAtar games, networks written by Astra from rules beat a PPO policy trained for 100 million steps; against the 500-million-step version, Breakout showed a 20x gap.
Why the news is cautious
These are early experiments, not a ready method. Work with larger models is limited: weights are huge, and feeding them into context at all is an engineering problem. Some results are measured on tiny networks, and the PPO comparisons deserve independent replication.
Still, the direction matters. If a model can read and edit another model’s weights, it changes not just debugging but the economics of fine-tuning: a small number of parameters instead of thousands of GPU-hours. And it is, of course, an argument in the debate about model self-improvement — worth attention, not panic.