Группа исследователей Apple провела уникальное исследование, в котором они научили большую языковую модель (LLM) самостоятельно создавать качественный пользовательский интерфейс на SwiftUI — фирменном фреймворке Apple для разработки UI. Основная сложность заключалась в том, что даже самые современные языковые модели плохо справляются с генерацией синтаксически корректного и хорошо структурированного кода для интерфейсов из-за отсутствия в обучающих датасетах достаточного количества примеров UI-кода.
Исследователи взяли открытое LLM под названием StarChat-Beta, специализировавшееся на программировании. Модель получила описание интерфейса и была поставлена задача сгенерировать на базе этих описаний огромный синтетический датасет программ на SwiftUI. Затем сгенерированный код автоматически компилировали, проверяли с помощью модели GPT-4V (которая сопоставляет визуальный результат интерфейса с описанием) и отбрасывали неработающие или не соответствующие запросам варианты. Итоговая отфильтрованная коллекция качественных программ служила новым обучающим набором для дообучения модели. Процесс повторялся несколько раз, постепенно улучшая качество кода и набор данных.
После пяти итераций в распоряжении исследователей оказалось почти миллион (996 000) программ на SwiftUI, а новая модель, получившая название UICoder, стабильно генерировала код, который успешно компилировался и соответствовал исходным запросам гораздо лучше исходной StarChat-Beta. По результатам автоматизированных и человеческих оценок, UICoder не только превзошел базовую модель, но и приблизился по качеству к GPT-4, при этом даже превзойдя ее по успешности компиляции.
Особый интерес вызывает факт, что исходный датасет, на котором была обучена StarChat-Beta, практически не содержал примеров кода на SwiftUI. Это связано с тем, что Swift-репозитории по ошибке были исключены из основного корпуса данных TheStack, а остальные источники содержали лишь единичные примеры. Следовательно, успех UICoder обусловлен не переиспользованием изученного кода, а именно методом автоматического самосовершенствования на синтетических данных с циклом обратной связи.
Исследователи Apple считают, что описанный подход можно масштабировать и для других языков и UI-фреймворков, что открывает перспективу широкого применения искусственного интеллекта в автоматизированной разработке интерфейсов.
Этот прорыв актуален для разработчиков экосистемы Apple, так как качество и скорость создания интерфейсов на SwiftUI напрямую влияют на удобство и красоту приложений для iPhone, iPad и macOS. Такой инструмент способен значительно упростить жизнь как начинающим, так и опытным инженерам, повысив уровень автоматизации и улучшив пользовательский опыт конечных продуктов.
Таким образом, Apple делает еще один шаг в интеграции ИИ в процесс разработки, подчеркивая свое стремление не только создавать новые устройства и сервисы, но и активно внедрять передовые технологии в инструменты программистов. Такой прогресс поможет сохранять лидерство Apple в разработке интуитивных и качественных интерфейсов, которыми славятся их устройства. Это важное достижение для всей индустрии IT.