Представьте: ИИ, который думает о коде как программист
Ну что, друзья, у меня для вас новость, которая меня реально зацепила. Команда Meta выпустила языковую модель для программирования, которая работает совсем не так, как все остальные. Называется Code World Model, сокращённо CWM. И знаете, в чём фишка? Она учится не просто тому, как выглядит код, а тому, что он делает, когда его запускаешь.
Звучит как мелочь? А вот и нет. Это принципиально другой подход. Модель строит внутри себя что-то вроде «модели мира» — понимание того, как работают вычислительные системы. И это, кажется, открывает новое направление для обучения ИИ-агентов, которые смогут справляться со сложными задачами разработки в реальных условиях.
Короче, Meta пытается вытащить большие языковые модели за пределы простого предсказания следующего токена. И похоже, у них что-то получается.
Почему обычная генерация кода — это не то
Вот смотрите. Даже самые продвинутые языковые модели до сих пор спотыкаются, когда дело доходит до генерации качественного, надёжного кода. Исследователи из Meta считают, что проблема в самом подходе к обучению.
Обычно модель учится программировать примерно так же, как учится писать текст: предсказывает следующую инструкцию в программе, как предсказывала бы следующее слово в предложении. Но вот в чём дело — этого мало для настоящего мастерства в программировании.
Чтобы по-настоящему освоить код, модель должна понимать «не только то, как код выглядит, но и то, что он делает при выполнении». Подумайте: именно так работают настоящие программисты! Они же не воспринимают код как последовательность символов. Они держат в голове общую картину: как изменение кода повлияет на переменные, на поведение приложения в целом.
Программисты думают о коде как о наборе связанных компонентов (переменные, объекты, функции, модули), а потом переводят это в последовательность инструкций. То есть они разрабатывают «модель мира» своего приложения в процессе его создания или изменения.
И вот именно эту способность к «моделированию мира» обычно игнорируют при обучении языковых моделей. А команда Meta решила это исправить — причём не в самом конце обучения, а гораздо раньше.
Как работает Code World Model: учим ИИ думать как разработчик
CWM — это новая языковая модель, которую специально учили понимать, как ведёт себя код. Причём не в конце обучения на этапе тонкой настройки, а на промежуточном этапе, в середине процесса.
Гипотеза такая: если модель с самого начала будет привязана к реальной динамике вычислительных сред, это даст намного более прочный фундамент для последующего обучения и подкрепления.
Исследователи сосредоточились на двух типах данных. Первый — это трассы выполнения кода на Python. Представьте себе пошаговую запись того, как меняется внутреннее состояние программы (например, её переменные) при выполнении каждой строки кода. Это кардинально отличается от классической схемы, где модели учат на коде и финальных результатах.
Обучаясь на таких траекториях «наблюдение-действие», CWM получает глубокое понимание того, как инструкции влияют на общее поведение программы. Исследователи пишут: «Наша предпосылка в том, что обучение CWM семантике, а не только синтаксису программ, должно помочь как с написанием кода, так и с задачами рассуждения вроде верификации, тестирования и отладки».
Второй тип данных — это агентные взаимодействия в Docker-окружениях. Команда создала синтетический генератор данных под названием ForagerAgent, который симулирует работу ИИ-агента, выполняющего задачи разработчика: исправление багов, добавление новых функций и так далее. Наблюдая за этими многошаговыми взаимодействиями в больших масштабах ещё на ранних этапах обучения, CWM учится динамике этих сред до того, как её вообще начнут дообучать под конкретные задачи.
На практике это позволяет CWM рассуждать о коде примерно так же, как это делает живой разработчик. Например, если дать ей задачу по спортивному программированию, она может создать первоначальное решение, потом сама придумать тесты с входными и выходными данными для проверки правильности, а затем сравнить предсказанный результат с реальным выполнением кода.
Это самопроверка — прямое следствие обучения на основе модели мира. Круто же?
Результаты: как CWM показывает себя на практике
Исследователи из Meta обучили модель на 32 миллиарда параметров с контекстным окном до 131 000 токенов. Это серьёзная машина. И результаты, надо сказать, впечатляют.
На бенчмарке SWE-bench Verified (это решение реальных задач из GitHub-репозиториев) CWM достигла 65,8% успешных решений. Это лучше, чем у других открытых моделей аналогичного размера. Также модель показала высокие результаты на:
- LiveCodeBench (спортивное программирование)
- Math-500 и AIME 2024 (математические рассуждения)
- CruxEval (предсказание результата выполнения кода на Python)
По мнению исследователей, модели мира «могут принести пользу агентному программированию, обеспечить пошаговую симуляцию выполнения кода на Python и показывают первые результаты того, как рассуждения могут выиграть от этого подхода».
Правда, они честно отмечают ограничения. CWM выпущена как исследовательская модель под некоммерческой лицензией. Это не универсальный ассистент и не чат-бот. Хотя модель получила некоторые данные для следования инструкциям, она не прошла ту обширную оптимизацию, которая нужна для разговорного использования.
Команда Meta настроена оптимистично насчёт будущего этого подхода, но признаёт: «это только наши первые шаги в этом направлении». Они видят большие возможности для дальнейшей работы: «надёжные способы использовать знания модели мира для улучшения производительности в различных задачах через промптинг или дообучение — это перспективная область для исследований».
Модели мира: ключ к настоящему интеллекту?
Знаете, CWM появилась на фоне растущего интереса к тому, чтобы научить языковые модели чему-то большему, чем просто предсказание следующего токена.
Взять хотя бы chain-of-thought (цепочку рассуждений) — самую популярную технику такого рода. Она заставляет модели сначала «записать свои мысли», а потом уже выдать финальный ответ. Модели с рассуждениями вроде DeepSeek-R1 используют обучение с подкреплением, чтобы заставить модели генерировать более длинные цепочки рассуждений, где они размышляют над ответом и корректируют его перед выдачей.
Но вот проблема: CoT — это всё равно процесс генерации токенов. И есть исследования, которые показывают, что CoT представляет собой скорее иллюзию мышления, а не настоящее свидетельство рассуждений, на которое можно полагаться.
Модели мира — это более свежая и продвинутая попытка решить эту проблему. Вместо того чтобы формулировать задачу как предсказание следующего токена, они пытаются заставить языковую модель развить модель мира в своём скрытом пространстве — и это не обязательно отражается в выходных токенах.
Есть недавняя работа, которая комбинирует сильные стороны языковых моделей с JEPA — архитектурой глубокого обучения, специально разработанной для моделирования мира. Первые результаты показывают, что LLM-JEPA более устойчива к изменениям в окружении и может учиться новым задачам эффективнее, чем модели, обученные на чистом предсказании следующего токена.
Пока непонятно, насколько хорошо исследователи смогут совместить эти разные архитектуры ИИ. Но одно кажется точным: наличие надёжной модели мира делает ИИ-системы более устойчивыми и надёжными в постоянно меняющихся условиях реальных приложений.
Что это значит для нас?
А вот это, на мой взгляд, самое интересное. Мы стоим на пороге нового поколения ИИ-моделей, которые будут не просто «попугаями» (как их иногда называют критики), а системами с настоящим пониманием.
Представьте ИИ-помощника для разработки, который не просто генерирует код по шаблонам, а действительно понимает, что произойдёт при его выполнении. Который может сам себя проверить, найти баги, предложить улучшения — и всё это не методом тыка, а на основе реального понимания динамики системы.
Конечно, до этого ещё далеко. CWM — только первый шаг. Но направление выбрано правильное, и это вдохновляет.
Если вам интересно следить за тем, как развиваются модели мира в ИИ, какие ещё прорывы готовит Meta и другие компании, и вообще быть в курсе самых свежих новостей из мира искусственного интеллекта:🔔 Подписывайтесь на мой канал «ProAI» в Telegram! Там я регулярно делюсь разборами исследований, новостями и своими размышлениями о будущем ИИ.