В чем принципиальная разница:
Обычные code LLM учатся предсказывать код как последовательность токенов. CWM учится предсказывать что происходит при выполнении этого кода.
Модель тренировали на 120М+ трейсах выполнения Python-функций, где каждый шаг выглядит как:
<|frame_sep|><|line_sep|>{"n": "0", "c": "'s'"}<|action_sep|>n += int(c == t)То есть модель видит не просто код, а наблюдения (состояние переменных) и действия (выполняемые строки).
Классическая схема world model: observation → action → next observation.
Нужно это для того, чтобы модель могла делать вещи, которые принципиально недоступны обычным code LLM:
💛Симулировать выполнение без запуска (даем ей код с аргументами, она предскажет результат)
💛Планировать исправления (будет понимать, какие изменения к каким последствиям приведут)
💛Работать как дебаггер (может прыгнуть к любой строке и предсказать состояние)
🤩тыкаться сюда
😏резы в статье как всегда