
Apple обучила ИИ создавать качественный UI-код в SwiftUI самостоятельно
В новом исследовании группа учёных Apple описала весьма интересный подход, который они использовали для того, чтобы, по сути, улучшить генерацию пользовательских интерфейсов с помощью ИИ.
В работе под названием «UICoder: Тонкая настройка больших языковых моделей для генерации кода пользовательских интерфейсов с помощью автоматической обратной связи» исследователи объясняют, что, хотя LLM (большие языковые модели) стали лучше справляться с различными задачами, включая творческое письмо и программирование, они по-прежнему испытывают трудности с «надёжной генерацией синтаксически правильного и хорошо структурированного кода для UI».
Учёные также выдвинули предположение о причинах этого.
Для решения проблемы они начали с модели StarChat-Beta с открытым исходным кодом.
Затем каждый сгенерированный фрагмент кода пропускался через компилятор Swift, чтобы убедиться в его работоспособности.
Результаты, которые не компилировались, выглядели нерелевантными или являлись дубликатами, отбрасывались.
Оставшиеся выходные данные формировали высококачественный обучающий набор, который затем использовался для тонкой настройки модели.
Этот процесс повторялся несколько раз, и с каждой итерацией улучшенная модель генерировала код на SwiftUI лучше, чем раньше.
Это, в свою очередь, способствовало созданию ещё более чистого датасета.
После пяти циклов у исследователей оказалось почти миллион программ на SwiftUI и модель под названием UICoder, которая стабильно компилировала код и создавала интерфейсы, гораздо точнее соответствующие запросам, чем исходная модель.
Согласно тестам, UICoder значительно превзошёл базовую модель StarChat-Beta как по автоматизированным метрикам, так и по оценкам людей.
Более того, UICoder почти догнал GPT-4 по общему качеству, а по показателю успешной компиляции даже превзошёл его.
Один из любопытных фактов исследования стал результатом небольшой ошибки.
Исходная модель StarChat-Beta обучалась в основном на трёх корпусах данных: Проблема, как объяснили исследователи Apple, заключалась в том, что...
Это означает, что улучшения UICoder не были достигнуты за счёт простого повторения примеров SwiftUI, которые уже были в данных.
Это привело учёных к гипотезе, что, хотя их метод доказал эффективность для создания интерфейсов на SwiftUI, он, вероятно, может быть адаптирован и для других языков и UI-фреймворков, что само по себе довольно интересно.
Исследование «UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback» доступно на arXiv.