Нейросети замедлили работу программистов, а не помогли ускорить ее
Даже опытные программисты считали, что использование нейросети для написания кода экономит им время. Однако, когда исследователи проверили это на задачах из реального мира, выяснилось, что разработчики ошибаются. В действительности применение ИИ увеличило время, необходимое для реализации проектов.
Изменения во времени работы над ПО-проектом при использовании ИИ разошлись с прогнозами. То, что ожидали экономисты, описывающие прогресс ИИ находится слева, прогнозы специалистов по машинном обучению правее, еще правее можно видеть оценки самих разработчиков, участвовавших в эксперименте, сначала перед выполнением работы, а потом и после нее. Красным справа показаны реальные результаты / © METR
В нашу эпоху ИИ чаще всего называют «нейросети». Хотя Naked Science отмечал, что в действительности слово «интеллект» в названии таких ИИ не отражает реального положения вещей и что такие системы на самом деле «китайские комнаты», общий энтузиазм по поводу их возможностей привел к широкому использованию таких систем в написании кода. Причем большинство специальных тестов (бенчмарков) уже некоторое время показывают, что это экономит время разработчиков.
Исследователи из некоммерческой исследовательской организации Model Evaluation & Threat Research решили выяснить, так ли это в случае реальных задач, а не специально сконструированных бенчмарков. Для этого к эксперименту привлекли 16 разработчиков программного обеспечения для опенсорсных репозиториев. Такие репозитории требуют регулярного поддержания: исправления багов, внедрения новых черт и так далее.
Затем исследователи поручили половину из 246 таких задач выполнять с помощью специализированных нейросетей-кодеров: Cursor Pro или Claude 3.5/3.7 Sonnet от Anthropic. Хотя они не так на слуху, как ChatGPT, в мире программистов эти системы оценивают достаточно высоко, разработчики исходно «затачивали» их во многом под написание кода. Другая половина задач выполнялась без привлечения таких систем.
Перед тем как разделить задачи, для них сделали прогноз времени, нужного для выполнения. Что важно, время по обработке запросов на включение тех или иных изменений из ветки разрабатываемого ПО в основную ветку ПО (уже стабильно работающую) было включено в общую оценку времени на разработку.
Перед работой программистов попросили оценить, насколько сократится время на выполнение задач из-за использования ИИ. Средняя оценка была 24%. После выполнения задачи разработчики изменили ее: по их мнению, его использование снизило время на выполнение задач только на 20%.
А вот исследователи, отслеживавшие реальные траты времени с помощью записи происходящего на экранах разработчиков, выявили совсем другие показатели. При использовании нейросетей они выполняли задачи на 19% медленнее, чем это делалось при программировании «вручную». Авторы научной работы, опубликованной на сервере препринтов Корнеллского университета, начали искать объяснение столь неожиданному итогу.
В частности, они отметили, что участвовавшие в исследовании программисты работали с этими репозиториями пять лет. За это время они хорошо узнали их структуру и характерные проблемы.
ИИ, напротив, особенностей работы этих репозиториев не знали. Кроме того, ответственность при работе с такими репозиториями очень велика, поскольку любая ошибка будет иметь длительные последствия, часто неприятные для программиста. И если в разработке коммерческого ПО иной раз можно скрыть свою недоработку, списав на чужие ошибки, то в разработке открытого программного обеспечения принят подход серьезной личной ответственности — это заставляет программистов тщательнее выверять, что они выпускают.
Затраты времени по типам задач. Фиолетовым показана ситуация для группы, которой запретили пользоваться ИИ, зеленым даны затраты тех, кто использовал ИИ.
И все же основной причиной медленного выполнения задач с помощью нейросетей были их реальные проблемы, а не особенности эксперимента. Анализ экранного времени показал, что хотя время на, собственно, написания кода, отладку/дебаггинг или чтение и поиск информации у разработчиков упало, другие времязатраты это более чем компенсировали. Сначала разработчикам пришлось долго вычитывать написанный ИИ код, затем предлагать ИИ поправить найденные ошибки, затем ждать, пока все это происходит.
Выросло также время, когда на экране ничего не происходило: то есть программисты в период работы с нейросетью меньшую долю времени активно трудились. Без каких-либо правок оказалось возможным задействовать только 44% кода, написанного ИИ, и 9% всего времени разработчиков ушло на внесение в этот код изменений, с которыми он бы заработал нормально.
То, что новое исследование противоречит бенчмаркам, неудивительно: те очень часто измеряют продуктивность в количествах строк кода или же по небольшим, дискретным задачам, законченным в тот или иной промежуток времени. Между тем в работе над реальными проектами много времени занимают и другие процессы: тщательная (в отличие от экспериментов) проверка адекватности кода при самых неожиданных ситуациях, а также интеграция частных «кусков» процесса разработки в единое целое.
Авторы статьи предположили, что уже в скором времени нейросети смогут спрогрессировать достаточно, чтобы не замедлять работу программистов. Но так это или нет, определенно покажет только будущее. То, что сами программисты, участвовавшие в эксперименте, даже по его окончании не могли понять, что ИИ замедлил их, а не ускорил, говорит: оценить ситуацию объективно непросто. Всеобщий энтузиазм по поводу нейросетей, по всей видимости, заставляет многих систематически переоценивать возможности этих помощников.
Источник: https://naked-science.ru/article/hi-tech/nejroseti-zamedlili-rabot
технологии искусственный_интеллект нейросети программирование