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

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

JanusCoder — набор моделей для мультимодального интеллектуального программирования; объединяет код с генерацией, редактированием и интерпретацией визуального контента для решения разных задач.
JanusCoder — набор моделей для мультимодального интеллектуального программирования; объединяет код с генерацией, редактированием и интерпретацией визуального контента для решения разных задач.

Почему это сложно

Главная проблема развития такого рода систем - это количество мультимодальных данных для программирования интерфейсов, ведь необходимы не только код с инструкцией, но также изображение (по результатам исполнения кода) или даже скриншот веб-страницы. Такие данные трудно и дорого синтезируются и проверяются. Поэтому исследователи предлагают со��давать датасеты для каждой узкой задачи: генерация графиков, генерация визуала для веб-интерфейсов, анимация. Но при этом слабо используется перенос знаний между доменами. Предлагаемый пайплайн основан на различных стратегиях выбора и улучшения данных, автоматического запуска кода, а также использования оценок различных больших визуальных языковых моделей.

Что реализовано в работе

Исследователи представили пайплайн, состоящий из следующих шагов:

  • Управляемая эволюция - Использует данные в формате "инструкция-код", чтобы вывести более точные варианты задачи и решения с проверкой в среде исполнения.

  • Реконтекстуализация - Переписывает инструкцию, чтобы она лучше раскрывала замысел и граничные условия заданного кода.

  • Обратная инструкция - Использует фрагменты кода на разных языках для генерации правдоподобных инструкций.

  • Двунаправленный перевод - Переносит решение между двумя близкими доменами программирования, например, Manim ↔ Mathematica для снижения дефицита данных в редких областях.

Для каждой новой версии проверяется исполнимость кода, после чего применяют reward-модели, которые отбирают вариант кода с самым высоким баллом. Reward-модель использует визуальную модель, чтобы сравнить изображение с задачей, а также текстовую модель для оценки качества кода и его соответствие инструкции.

Пайплайн работы JanusCode-800K
Пайплайн работы JanusCode-800K

Что представлено в данных

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

Датасет JanusCode-800K
Датасет JanusCode-800K

Какие модели получились

На основе датасета авторы обучили две модели: JanusCoder (для текстовых задач создания кода) и мультимодальная JanusCoderV (понимает изображение). Оба позиционируются как единый интерфейс для визуального программирования: принимают текстовый или визуальный запрос, создают или редактируют код, а также контролируют визуальный результат через запуск кода. Используются различные внутренние архитектуры в зависимости от размеров модели; авторы показывают, что выгода от их данных переносится на разные архитектуры и размеры моделей.

На PandasPlotBench доля неверного кода у JanusCoder‑14B — 9.7%, сопоставимо с GPT‑4o. На ArtifactsBench по интерактивным артефактам JanusCoder обходит GPT‑4o. На DTVBench модели близки к проприетарным по качеству анимаций и математическим графикам.

Мультимодальная JanusCoderV уверенно обходит открытые аналоги на ChartMimic, WebCode2M и DesignBench, а на ChartMimic даже превосходит GPT‑4o. Модель сохраняет навык генерации кода на BigCodeBench и LiveCodeBench, при этом остаётся сильной в визуализации — редкое сочетание.

Эффективность моделей
Эффективность моделей
Сгенерированные графики в PandasPlotBench
Сгенерированные графики в PandasPlotBench
Сгенерированные интерфейсы в DesingBench
Сгенерированные интерфейсы в DesingBench
Сгенерированные артефакты в InteractScience
Сгенерированные артефакты в InteractScience

Что это значит для нас

Итак, JanusCoder и JanusCoderV открывают новый этап в программировании — когда ИИ не просто пишет код, а видит и понимает, как этот код выглядит на экране, превращая синтаксис в осмысленный визуальный интеллект.

Авторы продвигают свой пользовательский интерфейс, что критично для аналитиков, веб-разработчиков, а также для тех, кто создаёт научные и образов��тельные визуализации. Это шаг к системам, где LLM управляет средой исполнения, получая обратную связь с экрана. Авторы публикуют код и модели, а также новый бенчмарк DTVBench.

? Полная статья

? Код

***

Если вам интересна тема ИИ, подписывайтесь на мой Telegram-канал — там я регулярно делюсь инсайтами по внедрению ИИ в бизнес, запуску ИИ-стартапов и объясняю, как работают все эти ИИ-чудеса.

Комментарии (0)