Перейти к основному содержимому

Программирование в пространстве весов: как LLM читают и редактируют веса нейросетей

Программирование в пространстве весов позволяет LLM читать и редактировать веса сети без обучения. Эксперименты MIT с GPT-6 Astra: результаты, ограничения и их значение.
Tom Farnschläder
Tom Farnschläder

Создать бесплатный аккаунт

Практикуйтесь и следите за своим прогрессом.

Продолжить с GoogleПродолжая, вы принимаете нашу Условия использования, наши Политику конфиденциальности и то, что ваши данные хранятся в США.

Программирование в пространстве весов — это метод, при котором универсальная большая языковая модель (LLM) читает сырые веса нейросети и редактирует или записывает их напрямую, исходя из цели, сформулированной на естественном языке, без градиентного спуска и без обучающего цикла. В посте в блоге от 2 ноября 2026 года четверо исследователей из MIT CSAIL сообщают, что GPT-6 Astra уже умеет это делать: она изменила 0,016% весов Qwen3.5-0.8B и подняла показатель MATH-500 модели с 7,9% до 48,1%.

Авторы — Rikiya Takehi, Jayden Teoh, Alex Zhang и Omar Khattab, первый автор оригинальной статьи DSPy. Результаты предварительные и получены на одной LLM, но команда опубликовала все подсказки, ответы и оценки, лежащие в их основе.

В этой статье мы разберём, что такое программирование в пространстве весов, какие результаты дали эксперименты, где метод даёт сбой и что это значит для вашей работы. Если нужно освежить знания о модели, которая выполняет редактирование, см. наш гайд по GPT-6 Astra.

Что такое программирование в пространстве весов?

Программирование в пространстве весов — это практика, при которой LLM просят читать, исправлять или записывать веса нейросети напрямую по спецификации на естественном языке, иногда вообще без отклика из среды. LLM разбирается, что вычисляет каждая часть сети — или должна вычислять — и задаёт числа соответствующим образом.

Это иной путь по сравнению с тем, как обычно получаются веса. Сегодня веса появляются в результате градиентного спуска с оптимизаторами типа Adam или Muon, из сетей, обученных генерировать веса других сетей, или из компиляторов, превращающих формальные программы в сети. В установке MIT GPT-6 Astra не пишет обучающий цикл. Она рассуждает о весах так же, как инженер рассуждает о коде.

LLM уже оптимизируют подсказки, программы и обучающий код. Авторы утверждают, что это основанное на рассуждениях улучшение теперь добралось и до самих весов.

Что показали исследователи MIT

8 экспериментов делятся на три группы: чтение весов, их исправление и запись с нуля. Большинство использует небольшие сети, чьи веса помещаются в контекстное окно Astra в виде текста; для более крупных добавляется песочница Python, а в некоторых — бюджет на прямые проходы.

GPT-6 Astra читала, исправляла, писала и улучшала сети без обучения

Чтение весов сети

Команда обучила четыре политики с помощью proximal policy optimization (PPO) — стандартного алгоритма обучения с подкреплением для игровых агентов — на сеточных версиях Breakout, Pong, Pac-Man и Freeway, все с одинаковой архитектурой на 17 253 веса. Не получив список игр, Astra верно назвала игру для всех 4 сетей, читая подсказки вроде веса первого слоя агента Breakout, расположенные вдоль нижней строки — там, где ракетка.

Затем последовали две более сложные версии:

  • Диффузионные модели: По весам 3 небольших DDPM, без разрешённых прямых проходов, Astra определила, какая генерирует круги, квадраты или треугольники. Она нарисовала их как контуры, хотя модели производят залитые фигуры — намёк, что она читала геометрию весов, а не имитировала сеть.
  • Языковые модели: Имея только средние 4 трансформерных блока символьных моделей на 7,2 млн параметров, Astra назвала язык обучения (Python, ромадзи-японский или английский) для всех 3 — в обеих попытках. Она также нашла все головы копирования (induction heads) и не назвала ни одну другую голову таковой. Наш гид по многоголовой вниманию объясняет, что делают эти головы.

Исправление сломанной политики

Политика PPO, обученная 1 миллиард шагов на уровне с машиной и трамплином в среде Kinetix, каждый раз ехала прямо на трамплин и глохла. Получив 171 664 веса, описание сцены и одну записанную сессию, Astra объяснила сбой и в одном ответе без инструментов предложила исправление. Правка изменила 3,5% весов и подняла долю успешных прохождений с 0% до 100% по 1 024 эпизодам.

Исправление читаемое: небольшой дополнительный путь, который заставляет машину сдавать назад, а затем отключается, когда она проезжает полосу.

Запись сетей с нуля

Для трёх игр MinAtar Astra получила правила, исходный код и нулевую сеть, после чего записала каждый вес текстом в одном ответе — без данных, градиентов или инструментов. Все три сети обошли агентов PPO, обученных 100 миллионов шагов.

ИграPPO, 100M шаговPPO, 500M шаговAstra, одним заходом
Breakout15,825,3517,4
Seaquest5,688,953,1
Asterix25,855,253,2

Breakout выбивается из ряда, потому что Astra записала его как программу: первый слой вычисляет, где приземлится мяч, второй — перемещает ракетку туда. Сеть для Го 9×9 с 1 480 274 весами, записанная в песочнице Python, обошла равную по размеру сеть PPO, обученную на 20 миллионах партий, когда у Astra было 50 прямых проходов для проверки.

Исправление петель рассуждений в Qwen3.5-0.8B

Наиболее прикладной результат нацелен на известный изъян. Карта модели Qwen предупреждает, что Qwen3.5-0.8B склонна к петлям размышлений, и в тестах MIT 93,0% её ответов по MATH-500 упирались в лимит в 32 768 токенов. Работая в ядре Python с 50 прямыми проходами на тренировочных задачах из GSM8K и MATH, Astra отследила петли до одного направления, заданного MLP слоёв 15 и 19, и вычла его из 64 выходных столбцов в каждом.

Изменено весов
0,016%
131 072 из 0,8 миллиарда
MATH-500
7,9% → 48,1%
База vs. после правок
GSM8K
13,8% → 67,1%
База vs. после правок
IFEval
21,0% → 62,3%
Следование инструкциям

Доля ответов, упирающихся в лимит токенов, снизилась до 33,1%, и, поскольку петли не специфичны для математики, улучшилось и следование инструкциям. Бюджет имел значение: при 10 или 25 прямых проходах петли почти не исчезали. Ahsen Khaliq из Hugging Face восстановил отредактированный чекпоинт по логам и повторно прогнал MATH-500 с теми же настройками, получив 51,0%.

Где программирование в пространстве весов даёт сбой

Программирование в пространстве весов даёт сбой там, где проблема — не единичный локализованный дефект в весах. Авторы сообщают о двух явных неудачах — и обе показательны.

  • Лесть была невидима в весах. Имея честную и льстивую дообученные версии Gemma 3 270M, Astra не смогла отличить их по одним лишь весам ни в одной из четырёх попыток. Когда стали доступны их паттерны внимания, она безошибочно находила льстивую модель во всех трёх парах.
  • Gemma 3 270M не стала лучше в математике. Gemma редко зацикливается, так что не было единственного дефекта для удаления, и лучшая правка Astra сдвинула MATH-500 с 6,8% до 7,7%. Как отмечают авторы, редактирование весов может убрать препятствие, скрывавшее способность, но не может добавить способность, которой у модели не было.

Более общие оговорки: каждый эксперимент использует одну LLM, крупнейшая сеть имеет 0,8 миллиарда весов, и это пост в блоге с ранними результатами, а не рецензируемая статья. Авторы говорят, что всё ещё создают бенчмарк для задачи.

Что это значит для специалистов по данным и ИИ

Для практиков программирование в пространстве весов — это пока исследовательский сигнал, но ещё не инструмент. Два его аспекта уже стоит отслеживать.

Первый — интерпретируемость. Методы атрибуции, такие как SHAP, объясняют модель через её входы, а механистической интерпретируемости нужны специально созданные инструменты. Astra восстановила головы индукции с помощью известного метода умножения матриц, о котором исследователи ей не упоминали. Если это подтвердится на больших моделях, «спросить у передовой модели, что делает этот слой» станет первым проходом до тяжёлых инструментов.

Второй — точечный ремонт. Когда у небольшой модели есть один узкий сбой, как петли у Qwen, обычное решение — дообучить её на новых данных. Правка из 131 072 весов оставляет остальную модель нетронутой, что, по мнению авторов, избегает катастрофического забывания, к которому может приводить дообучение. Я бы считал это гипотезой: результат с Gemma показывает, что правка работает, только когда есть один виновник. Более широкий список желаний авторов — от аудита моделей на закладки без их запуска до «разучивания» способностей без данных — пока не продемонстрирован.

Как попробовать программирование в пространстве весов самому

Самый прямой способ протестировать программирование в пространстве весов — воспроизвести один из экспериментов: логи содержат точные подсказки, которые получала Astra, а GPT-6 Astra доступна как gpt-6-astra в OpenAI API, в Amazon Bedrock и в платных планах ChatGPT. Эксперимент 1, где по весам политики нужно назвать игру, — самое простое начало:

  1. Получите логи. Клонируйте репозиторий lm_understand-logs. В каждой папке эксперимента есть README, который сопоставляет каждое число в посте с исходным файлом.

  2. Выберите эксперимент без инструментов. В экспериментах 1, 2, 4 и 5 Astra не давали инструментов, так что один промпт воспроизводит каждый запуск. В Эксперименте 1 в каждой папке запуска есть prompt.txt с описанием сети, вопросом и всеми 17 253 весами в виде текста.

  3. Отправьте так же, как делали авторы. Они вызывали gpt-6-astra через Codex CLI (codex exec, подсказка в stdin) с отключёнными всеми встроенными инструментами и с высоким усилием рассуждения для Эксперимента 1. Остальная конфигурация в harness/codex_config.toml, но по умолчанию там gpt-6-luna на medium усилии, так что указывайте модель и усилие рассуждения в каждом вызове, как делали авторы.

  4. Сравните ответы. В каждой папке запуска также есть answer.md от Astra, а в eval/ — скоринг и эталонные ответы.

Один запуск использует около 73 700 входных токенов и менее 2 000 выходных, так что при тарифах API $10 и $50 за миллион токенов одно воспроизведение стоит менее $1. Эксперименты с песочницей Python (3, 6, 7 и 8) требуют harness/sandbox.py и гораздо больше итераций, так что планируйте бюджет соответственно.

Если вы не хотите ничего запускать, отредактированная Qwen3.5-0.8B доступна на Hugging Face под Apache-2.0, с хешами 2 изменённых тензоров на её карточке модели. В Hugging Face Space вы можете ввести задачу и посмотреть, как базовая модель зацикливается, пока отредактированная её решает.

Заключение

Программирование в пространстве весов показывает, что передовая LLM способна читать и редактировать веса нейросети за счёт рассуждений — по крайней мере для небольших сетей и единичных локализованных дефектов. Исправление Qwen — результат, который привлечёт внимание, и заслуженно, в том числе потому, что Hugging Face воспроизвёл его за день.

К более широким заявлениям я отношусь осторожнее. Одна модель, небольшие сети и отсутствие бенчмарка — слабая база для формулировки авторов, что «весы наших нейросетей вскоре будут нативно оптимизироваться LLM». Тем не менее неудачи описаны так же подробно, как и успехи, и это заставляет серьёзнее отнестись к удачам.

Если вы хотите глубже понять внутреннее устройство трансформеров, к которым нацелены эти правки, рекомендуем наш трек Developing Large Language Models.

Вопросы и ответы

Что такое программирование в пространстве весов?

Программирование в пространстве весов — это метод, при котором универсальная LLM читает сырые веса нейросети и редактирует или записывает их напрямую, исходя из цели на естественном языке, без градиентного спуска и обучающего цикла. Термин появился в посте блога MIT CSAIL в ноябре 2026 года, авторами которого являются Rikiya Takehi, Jayden Teoh, Alex Zhang и Omar Khattab; они протестировали подход с GPT-6 Astra.

Могут ли LLM напрямую редактировать веса нейросетей?

Да, по крайней мере для небольших сетей. В экспериментах MIT CSAIL GPT-6 Astra изменила 3,5% весов неработающей управляющей политики, доведя успех с 0% до 100%, и изменила 0,016% весов Qwen3.5-0.8B, чтобы сократить петли размышлений, снизив долю ответов, упирающихся в лимит токенов, с 93% до 33%. Подход не сработал, когда не было единственного дефекта для удаления, как в случае ошибок по математике у Gemma 3 270M.

Как GPT-6 Astra улучшила Qwen3.5-0.8B без обучения?

Astra отследила петли размышлений в Qwen3.5-0.8B до одного направления, заданного MLP слоёв 15 и 19, затем вычла его из 64 выходных столбцов в каждом, изменив 131 072 веса. При 50 прямых проходах на тренировочных задачах MATH-500 вырос с 7,9% до 48,1%, GSM8K — с 13,8% до 67,1%, а IFEval — с 21,0% до 62,3%.

Заменяет ли программирование в пространстве весов дообучение?

Пока нет. Метод сработал для единичного локализованного дефекта, как петли у Qwen, но он не смог добавить способность, которой у модели не было, и был протестирован только с одной LLM на сетях до 0,8 миллиарда весов. Пока что дообучение остаётся практичным способом изменить поведение модели.

Могу ли я сам попробовать программирование в пространстве весов?

Вы можете изучить и протестировать результаты без доступа к GPT-6 Astra. Исследователи опубликовали полные логи экспериментов на GitHub, отредактированная Qwen3.5-0.8B доступна на Hugging Face под Apache-2.0, а в Hugging Face Space можно сравнить базовую и отредактированную модели на ваших собственных задачах.

Tom Farnschläder

Автор

Tom Farnschläder

Том — редактор по Data Science в DataCamp. Он пишет и редактирует обучающие материалы по ИИ, сравнивает новые релизы LLM и создаёт рабочие процессы на основе ИИ. Ранее работал в области науки о данных в Deutsche Telekom. Вне работы занимается прогнозированием футбольных матчей с помощью машинного обучения.

Темы