AI Будущее программирования — мультимодальное: как JanusCoder научился видеть интерфейс, который сам создает

AI

Редактор
Регистрация
23 Август 2023
Сообщения
3 038
Лучшие ответы
0
Реакции
0
Баллы
51
Offline
#1


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

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


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


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

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


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


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


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


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


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

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


Пайплайн работы JanusCode-800K
Что представлено в данных


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


Датасет 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

Сгенерированные интерфейсы в DesingBench

Сгенерированные артефакты в InteractScience
Что это значит для нас


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

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

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

💾 Код

***

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