
Научные графики, интерактивные интерфейсы, а также анимации различных теорем – всё это, по сути, визуальное представление кода. Однако сегодня системы искусственного интеллекта учитывают только текстовую модальность и не принимают во внимание, как код будет выглядеть на экране или как он будет вести себя в рабочем приложении.
Исследователи предлагают использовать единую мультимодальную модель для кода JanusCoder. На вход модели может поступать текст, изображение или их комбинация, а на выходе будет получаться код, который при исполнении сможет воспроизвести визуал – картинку, которую просили воспроизвести, или интерактивные элементы веб-страницы, а также анимации.

Почему это сложно
Главная проблема развития такого рода систем - это количество мультимодальных данных для программирования интерфейсов, ведь необходимы не только код с инструкцией, но также изображение (по результатам исполнения кода) или даже скриншот веб-страницы. Такие данные трудно и дорого синтезируются и проверяются. Поэтому исследователи предлагают со��давать датасеты для каждой узкой задачи: генерация графиков, генерация визуала для веб-интерфейсов, анимация. Но при этом слабо используется перенос знаний между доменами. Предлагаемый пайплайн основан на различных стратегиях выбора и улучшения данных, автоматического запуска кода, а также использования оценок различных больших визуальных языковых моделей.
Что реализовано в работе
Исследователи представили пайплайн, состоящий из следующих шагов:
Управляемая эволюция - Использует данные в формате "инструкция-код", чтобы вывести более точные варианты задачи и решения с проверкой в среде исполнения.
Реконтекстуализация - Переписывает инструкцию, чтобы она лучше раскрывала замысел и граничные условия заданного кода.
Обратная инструкция - Использует фрагменты кода на разных языках для генерации правдоподобных инструкций.
Двунаправленный перевод - Переносит решение между двумя близкими доменами программирования, например, Manim ↔ Mathematica для снижения дефицита данных в редких областях.
Для каждой новой версии проверяется исполнимость кода, после чего применяют reward-модели, которые отбирают вариант кода с самым высоким баллом. Reward-модель использует визуальную модель, чтобы сравнить изображение с задачей, а также текстовую модель для оценки качества кода и его соответствие инструкции.

Что представлено в данных
Авторы создали крупнейший на данный момент датасет JanusCode-800K, который содержит «правильные» примеры визуального программирования. Внутри уже сбалансированы задачи, где важнее инструкция и код (текст-центричные) и задачи, где дополнительно используется изображение рендера или скриншот (визуал-центричные). Внутри собраны: визуализация на Python и правки графиков, веб-страницы и задачи их редактирования, svg, задачи для разных алгоритмов, научные задачи, а также анимации на Manim и проекты для Wolfram Mathematica. Также отмечается важность переноса данных из разных доменов: другие языки визуализации, такие как R и Matlab, а HTML и SVG для научных интерактивных артефактов.

Какие модели получились
На основе датасета авторы обучили две модели: JanusCoder (для текстовых задач создания кода) и мультимодальная JanusCoderV (понимает изображение). Оба позиционируются как единый интерфейс для визуального программирования: принимают текстовый или визуальный запрос, создают или редактируют код, а также контролируют визуальный результат через запуск кода. Используются различные внутренние архитектуры в зависимости от размеров модели; авторы показывают, что выгода от их данных переносится на разные архитектуры и размеры моделей.
На PandasPlotBench доля неверного кода у JanusCoder‑14B — 9.7%, сопоставимо с GPT‑4o. На ArtifactsBench по интерактивным артефактам JanusCoder обходит GPT‑4o. На DTVBench модели близки к проприетарным по качеству анимаций и математическим графикам.
Мультимодальная JanusCoderV уверенно обходит открытые аналоги на ChartMimic, WebCode2M и DesignBench, а на ChartMimic даже превосходит GPT‑4o. Модель сохраняет навык генерации кода на BigCodeBench и LiveCodeBench, при этом остаётся сильной в визуализации — редкое сочетание.




Что это значит для нас
Итак, JanusCoder и JanusCoderV открывают новый этап в программировании — когда ИИ не просто пишет код, а видит и понимает, как этот код выглядит на экране, превращая синтаксис в осмысленный визуальный интеллект.
Авторы продвигают свой пользовательский интерфейс, что критично для аналитиков, веб-разработчиков, а также для тех, кто создаёт научные и образов��тельные визуализации. Это шаг к системам, где LLM управляет средой исполнения, получая обратную связь с экрана. Авторы публикуют код и модели, а также новый бенчмарк DTVBench.
***
Если вам интересна тема ИИ, подписывайтесь на мой Telegram-канал — там я регулярно делюсь инсайтами по внедрению ИИ в бизнес, запуску ИИ-стартапов и объясняю, как работают все эти ИИ-чудеса.