Meta FAIR выпустила Code World Model (CWM): большая языковая модель для исследований в области генерации кода

Meta FAIR выпустила Code World Model (CWM) — большую языковую модель (LLM) с 32 миллиардами параметров. Она предназначена для исследований в области генерации кода с использованием мировых моделей.

Что нового?

CWM обучается на двух больших семействах траекторий «наблюдение-действие»:
* Трассы интерпретатора Python, которые записывают состояния локальных переменных после каждой выполненной строки.
* Агентские взаимодействия внутри докеризированных репозиториев, которые фиксируют правки, командные строки и обратную связь по тестам.

Это обучение предназначено для изучения семантики (как развивается состояние), а не только синтаксиса.

Модель и контекстное окно

CWM — это плотный трансформер (только декодер) с 64 слоями, GQA (48Q/8KV), SwiGLU, RMSNorm и Scaled RoPE. Внимание чередуется между локальными блоками 8k и глобальными блоками 131k, обеспечивая эффективный контекст в 131k токенов; при обучении используется маскирование, учитывающее причинно-следственные связи в документах.

Рецепт обучения (предварительное → промежуточное → последующее)

* Общее предварительное обучение: 8T токенов (с большим количеством кода) в контексте 8k.
* Промежуточное обучение: +5T токенов, длинный контекст (131k) с трассами выполнения Python, данными ForagerAgent, изменениями, полученными из PR, IR/компиляторами, ядрами Triton и Lean math.
* Последующее обучение: 100B-token SFT для инструкций + рассуждения, затем многозадачное RL (~172B-token) в средах верифицируемого программирования, математики и многоэтапного SWE с использованием алгоритма в стиле GRPO и минимального набора инструментов (bash/edit/create/submit).

Бенчмарки

Исследовательская группа приводит следующие результаты pass@1 / scores (с масштабированием при тестировании, где это применимо):
* SWE-bench Verified: 65,8% (с масштабированием при тестировании).
* LiveCodeBench-v5: 68,6%; LCB-v6: 63,5%.
* Math-500: 96,6%; AIME-24: 76,0%; AIME-25: 68,2%.
* CruxEval-Output: 94,3%.

Исследовательская группа позиционирует CWM как модель, конкурентоспособную с аналогичными по размеру открытыми базовыми моделями и даже с более крупными или закрытыми моделями в SWE-bench Verified.

Почему моделирование мира важно для кода?

В релизе подчёркиваются две операционные возможности:
* Прогнозирование трасс выполнения: учитывая функцию и начало трассы, CWM предсказывает кадры стека (локальные переменные) и выполненную строку на каждом шаге в структурированном формате — это можно использовать в качестве «нейронного отладчика» для обоснованного рассуждения без выполнения в реальном времени.
* Агентское кодирование: многоэтапные рассуждения с использованием инструментов в реальных репозиториях, проверенные скрытыми тестами и вознаграждениями за сходство патчей; такая настройка обучает модель локализовать ошибки и генерировать комплексные патчи (git diff), а не фрагменты кода.

Некоторые детали, на которые стоит обратить внимание

* Токенизатор: семейство Llama-3 с зарезервированными управляющими токенами; зарезервированные идентификаторы используются для разграничения сегментов трассировки и рассуждений во время SFT.
* Расположение внимания: чередование локальных и глобальных блоков 3:1 повторяется по глубине; обучение с длинным контекстом происходит при больших размерах пакетной обработки токенов для стабилизации градиентов.
* Масштабирование вычислений: графики скорости обучения/размера пакета получены из внутренних свёрткок с учётом закона масштабирования, адаптированных для учёта накладных расходов на длинный контекст.

Резюме

CWM — это прагматичный шаг к обоснованной генерации кода: Meta привязывает плотный трансформер с 32B параметрами к обучению на основе трасс выполнения и агентскому, проверенному тестами исправлению, выпускает промежуточные/пост-обученные контрольные точки и ограничивает использование лицензией FAIR Non-Commercial Research License — это делает его полезной платформой для воспроизводимых абляций в области кодирования с длинным контекстом и учётом выполнения, не смешивая исследования с производственным развёртыванием.

Ознакомьтесь с [статьёй](https://ai.meta.com/research/publications/cwm-an-open-weights-llm-for-research-on-code-generation-with-world-models/), [страницей GitHub](https://github.com/) и [моделью на Hugging Face](https://huggingface.co/). Не стесняйтесь посетить нашу [страницу GitHub](https://github.com/) для ознакомления с учебными пособиями, кодами и ноутбуками. Также подписывайтесь на нас в [Twitter](https://twitter.com/) и присоединяйтесь к нашему [сообществу в SubReddit](https://www.reddit.com/) (более 100 тысяч участников) и подписывайтесь на [наш информационный бюллетень](https://www.marktechpost.com/subscribe/).

1. Какие особенности обучения Code World Model (CWM) делают её эффективной для исследований в области генерации кода?

Ответ: CWM обучается на двух больших семействах траекторий «наблюдение-действие»: трассы интерпретатора Python и агентские взаимодействия внутри докеризированных репозиториев. Это позволяет модели изучать семантику, а не только синтаксис, что делает её более эффективной для генерации кода.

2. Какие бенчмарки использовались для оценки производительности CWM?

Ответ: для оценки производительности CWM использовались следующие бенчмарки: SWE-bench Verified, LiveCodeBench-v5, LCB-v6, Math-500, AIME-24, AIME-25 и CruxEval-Output. Результаты показали, что CWM конкурентоспособна с аналогичными по размеру открытыми базовыми моделями и даже с более крупными или закрытыми моделями в SWE-bench Verified.

3. Какие операционные возможности предоставляет CWM для прогнозирования трасс выполнения и агентского кодирования?

Ответ: CWM может прогнозировать трассы выполнения, учитывая функцию и начало трассы, и предсказывать кадры стека (локальные переменные) и выполненную строку на каждом шаге в структурированном формате. Это можно использовать в качестве «нейронного отладчика» для обоснованного рассуждения без выполнения в реальном времени. Кроме того, CWM может выполнять многоэтапные рассуждения с использованием инструментов в реальных репозиториях, что обучает модель локализовать ошибки и генерировать комплексные патчи (git diff).

4. Какие детали обучения CWM могут быть полезны для разработчиков, работающих над генерацией кода?

Ответ: разработчики, работающие над генерацией кода, могут найти полезными следующие детали обучения CWM: использование плотного трансформера с 32 миллиардами параметров, обучение на основе трасс выполнения и агентскому, проверенному тестами исправлению, а также использование семейства Llama-3 с зарезервированными управляющими токенами.

5. Какие ограничения существуют для использования CWM в коммерческих целях?

Ответ: использование CWM ограничено лицензией FAIR Non-Commercial Research License, что делает её полезной платформой для воспроизводимых абляций в области кодирования с длинным контекстом и учётом выполнения, но не для производственного развёртывания в коммерческих целях.

Источник