Использование нейросетей не повысило скорость работы программистов

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

В настоящее время искусственный интеллект все чаще обозначают термином «нейросети». Хотя Naked Science отмечал, что в действительности слово «интеллект» в названии подобных ИИ не соответствует действительности и что эти системы на деле « китайские комнаты», растущий интерес к потенциалу этих систем стимулировал их активное применение в процессе разработки программного кода. Существующие тесты производительности подтверждают, что использование подобных инструментов позволяет существенно сократить время, затрачиваемое разработчиками.

Сотрудники некоммерческой организации Model Evaluation & Threat Research провели исследование, чтобы определить, насколько это справедливо в условиях реальных задач, а не в рамках искусственно созданных тестов. В эксперименте приняли участие 16 разработчиков, работающих над опенсорсными проектами. Эти проекты нуждаются в постоянном обновлении: исправлении ошибок, добавлении новых функций и прочем.

Для оценки эффективности исследователи распределили 246 задач на две группы: одна группа (половина от общего числа) была решена с использованием специализированных нейросетевых кодеров, таких как Cursor Pro или Claude 3.5/3.7 Sonnet от Anthropic, а другая – традиционными методами. Несмотря на то, что эти системы менее известны широкой публике, среди программистов они пользуются высокой репутацией, поскольку разработчики изначально ориентировали их на создание программного кода.

Перед тем, как распределить задачи, был составлен прогноз необходимого времени на их выполнение. В общую оценку времени разработки было учтено время, затрачиваемое на обработку запросов об интеграции изменений из разрабатываемой ветки в основную, стабильную ветку программного обеспечения.

Программистов попросили заранее оценить потенциальное сокращение времени на выполнение задач благодаря использованию ИИ. Первоначальная средняя оценка составила 24%. Однако, после фактического использования ИИ, разработчики пересмотрели свою оценку, заявив, что время выполнения задач сократилось лишь на 20%.

В ходе изучения фактических затрат времени, основанного на записи действий разработчиков на экранах, были получены иные результаты. При использовании нейросетей выполнение задач занимало на 19% больше времени, чем при ручном программировании. В своей научной работе авторы, опубликованной на сервере препринтов Корнеллского университета, начали искать объяснение столь неожиданному итогу.

Проведенный анализ показал, что программисты, участвовавшие в исследовании, уже пять лет взаимодействовали с этими репозиториями. За этот период они приобрели глубокое понимание их структуры и типичных проблем. В отличие от них, системы искусственного интеллекта не обладали знанием специфики работы данных репозиториев. Также стоит отметить, что работа с подобными репозиториями сопряжена с большой ответственностью, поскольку любые ошибки могут привести к серьезным, зачастую негативным последствиям для разработчика. В коммерческой разработке программного обеспечения иногда можно замаскировать недоработку, переложив вину на других, однако в разработке открытого ПО принята практика строгой личной ответственности, что побуждает программистов более тщательно проверять свою работу.

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

Увеличился период бездействия на экране, что означает, что в процессе работы с нейросетью программисты меньше времени тратили на активную деятельность. Без каких-либо изменений удалось использовать лишь 44% сгенерированного ИИ кода, а 9% рабочего времени разработчиков пришлось потратить на исправление этого кода для обеспечения его корректной работы.

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

Авторы статьи высказали мнение, что нейросети в перспективе смогут достичь такого уровня развития, чтобы не оказывать тормозящего воздействия на работу программистов. Однако подтвердит или опровергнет это только время. Тот факт, что даже после завершения эксперимента сами программисты не смогли однозначно определить, ускорило или замедлило их работу ИИ, указывает на сложность объективной оценки ситуации. Широкая воодушевленность, связанная с нейросетями, вероятно, побуждает многих людей чрезмерно оптимистично оценивать потенциал этих инструментов.