Rikiya Takehi и коллеги из MIT CSAIL 11 2 в блоге «Sparks of Weight-Space Programming» представили результаты эксперимента 8: передовая большая языковая модель (названная в тексте Astra) в среде Python напрямую читает и записывает веса Qwen3.5-0.8B, не запуская градиентный спуск и не проводя обучение. Используя всего 50 прямых проходов для анализа задач из наборов GSM8K / MATH, модель находит направление, из-за которого она зацикливается при размышлениях, и вычитает его из 64 столбцов матриц down_proj в MLP-слоях с номерами 15 и 19. Всего изменено 131,072 весов (что составляет 0.016%). Этот репозиторий содержит исправленную модель, созданную 11 2; за последние 7 периодов она не была включена в подборки.
Рост рейтинга: 64 · Лайки: 64 · Загрузки: 310
Обоснование
- Авторы утверждают, что оригинальная модель почти для каждой математической задачи генерирует текст до достижения лимита токенов (достигает предела 93.0%), тогда как после исправления этот показатель снижается до 33.1%. При тех же параметрах сэмплирования результат на MATH-500 вырос с 7.9% до 48.1%, на GSM8K — с 13.8% до 67.1%, а на IFEval, для которого изменения не предназначались, — с 21.0% до 62.3%.
- Можно проверить: изменения опубликованы на GitHub в виде построчного diff (репозиторий RikiyaT/lm_understand-logs, ветка exp8_math). По сравнению с оригиналом отличаются только два тензора; в карточке модели указаны их хеши sha256. Пользователь akhaliq с помощью ML Intern на платформе H200 повторно выполнил полный тест MATH-500 (задач: 500, сэмплирований: 4) согласно исходному протоколу, получив результат 51.0% и достижение лимита в 31.6% случаях. Результаты по каждой задаче находятся в каталоге eval/ репозитория.
- Значимость метода: в том же блоге показано, как большая модель, анализируя только веса, определяет, для какой игры обучена нейросеть, и пишет с нуля сеть, способную играть в мини-игры. Данный репозиторий содержит публичный чекпоинт реального эксперимента с языковой моделью, который можно скачать и сравнить.
Использование
- vLLM: LLM(model="RikiyaT/Qwen3.5-0.8B-weight-space-programming", dtype="bfloat16", max_model_len=34816). При вызове apply_chat_template установите enable_thinking=True. Параметры сэмплирования, указанные в карточке: temperature 0.6, top_p 0.95, top_k 20, presence_penalty 1.5, max_tokens 32768.
- Для математических задач добавьте после условия фразу «Please reason step by step, and put your final answer within \boxed{}» и используйте последнее значение в \boxed{} в качестве ответа.
- Если вы не хотите разворачивать модель, можно сравнить оригинальную и исправленную версии на одинаковых задачах в Space ML-Intern-lab/weight-space-programming-demo (ссылка akhaliq/weight-space-programming-demo, указанная в карточке, перенаправляет сюда).
Риски
- Это небольшая модель на 0.8B параметров. Даже после исправления точность на MATH-500 составляет лишь около 50%, а примерно в трети случаев генерация обрывается из-за достижения лимита токенов. Модель не подходит для использования в качестве практического математического помощника; это преимущественно исследовательская демонстрация.
- Результаты получены авторами и пользователем akhaliq самостоятельно с использованием длинных цепочек рассуждений (до 32,768 токенов) и специфических параметров сэмплирования. Низкий балл оригинальной модели обусловлен в основном зацикливанием без получения ответа; при изменении лимита или параметров сэмплирования результаты могут отличаться. При повторном запуске оригинальной модели был выполнен только смоук-тест на 25 задачах.
- Передовая модель, вносившая изменения, не публикуется. Воспроизвести можно только исправленный чекпоинт и результаты оценки, но не сам процесс «изменения весов большой моделью». Репозиторий содержит полную мультимодальную версию, тогда как в оригинальной статье использовалась текстовая версия (хеш тензоров языковой части совпадает).