Компания OpenAI решила проверить, насколько современные языковые модели способны справляться с программированием и смогут ли они в обозримом будущем заменить разработчиков. Для тестирования взяли 1488 заданий с платформы Upwork.
Upwork считается крупнейшим сервисом среди зарубежных площадок для фрилансеров, где исполнители находят заказы в самых разных сферах — от написания кода и создания дизайна до копирайтинга и удалённого администрирования. На платформе зарегистрировано более 20 млн человек по всему миру, а количество заказчиков достигает 5 млн.
Платформа выступает посредником — гарантирует выплаты, предоставляет инструменты для коммуникации и управления проектами, а также помогает разрешать споры между заказчиком и исполнителем.
В исследовании [PDF] участвовали три продвинутые языковые модели: GPT-4o и o1, разработанные OpenAI, а также Claude 3.5 Sonnet от Anthropic. Перед ними стояла задача выполнить работу, за которую фрилансеры в общей сложности получили более 1 млн. При этом требовалось не просто написать код, но и самостоятельно определить, как реализовать техническую часть каждого проекта.
Сложность и стоимость задач варьировались — от простого исправления ошибок за $50 до масштабных разработок с бюджетом в $32 тыс. Около 35% всех заданий стоили более 1 тыс., ещё 34% находились в диапазоне от $500 до $1 тыс.
Вознаграждение соответствовало тем суммам, которые реально получили исполнители. ИИ пришлось разрабатывать мобильные и веб-приложения, работать с API, настраивать интеграции с браузерами и сторонними сервисами, а также устранять сложные ошибки. Каждое решение сначала проходило автоматические тесты, а затем его оценивали три опытных программиста.
Каждая из моделей также попробовала себя в роли технического руководителя. Им предстояло принимать стратегические решения, связанные с архитектурой приложений, выбирать методы разработки и определять приоритеты в развитии различных проектов.
Результаты ИИ сопоставляли с реальными решениями менеджеров, которые вели эти проекты ранее. Любопытно, что около 90% заданий касались не создания новых функций, а исправления уже существующих проблем в коде.
Лучшие показатели продемонстрировала Claude 3.5 Sonnet. В случаях, где требовалось просто написать код, она справилась с 26,2% заданий, что могло бы принести ей 208 тыс. из возможных 500,8 тыс. А при выполнении управленческих функций результат оказался ещё выше — 44,9%, что эквивалентно 400 тыс. из 1 млн.
Особое внимание уделили задачам категории Diamond — самым сложным проектам, на которые даже опытные разработчики на GitHub тратили в среднем 26 дней.
Процесс их выполнения сопровождался множеством вопросов — в обсуждениях таких проектов обычно набиралось до 50 сообщений. Несмотря на то, что Claude 3.5 Sonnet вновь показала лучший результат среди всех моделей, процент успешных решений в этой категории оказался значительно ниже.
Для чистоты эксперимента все языковые модели работали в изолированной среде Docker, не имея доступа к внешним источникам и готовым ответам.
Исследование OpenAI, получившее название SWE-Lancer, примечательно тем, что впервые ИИ проверяли на реальных коммерческих продуктах, которыми ежедневно пользуются миллионы человек. До этого тестирование ограничивалось специализированными репозиториями с исходным кодом, интересными лишь узкому кругу разработчиков.
Ещё по теме: