Препринт — материал ещё не прошёл рецензирование
В тестах ИИ чаще портил правильный код, чем чинил ошибочный
Кратко
В ограниченной проверке двух моделей на 20 задачах ИИ нередко находил ошибки там, где программа была правильной. При повторных исправлениях одни и те же изменения иногда добавлялись и отменялись снова и снова.
Зачем это знать
Для систем, которые сами меняют код, это предупреждение о риске бесконечного пересмотра одних и тех же правок. Результат пока описывает поведение в заданных условиях, а не частоту такого вреда в реальных командах.
Разбор
Авторы проверяли не один удачный ответ модели, а повторяющийся сценарий: давали двум моделям C++-решения задач по программированию и просили искать ошибки и вносить исправления. Для проверки взяли решения, которые уже прошли или не прошли скрытые тесты, то есть оценивали код по фактическому результату запуска, а не по впечатлению эксперта. Затем тот же процесс повторяли много раз, чтобы посмотреть, что произойдёт с программой после длинной цепочки автоматических правок.
Отдельно исследователи заглянули внутрь одной из моделей. Они искали направление в её внутренних сигналах — условную «стрелку», связанную с тем, насколько модель склонна считать код ошибочным. Когда этот сигнал усиливали или ослабляли, менялась и готовность модели редактировать программу. Это не доказывает, что модель понимает ошибочность кода как человек, но показывает: её решения могут зависеть от устойчивого внутреннего представления о «подозрительном» коде, которое иногда включается без реальной ошибки.
Эксперимент проводили на 20 случайно выбранных задачах, используя по 40 случайных решений для каждой задачи. В среднем в задаче было 23 теста, а разрешённое время выполнения составляло 2,1 секунды. Важный результат за пределами самой карточки: авторы не только увидели вредные правки, но и нашли возможный механизм их появления — модель сначала формирует внутренний сигнал о «баговости», а уже потом начинает редактировать код. Такой разбор полезен для создания условий остановки: системе может быть недостаточно просто разрешить исправлять код, ей нужно ограничивать повторные циклы и проверять, действительно ли новая правка улучшила результат.
Ключевые цифры
Можно ли доверять
Это препринт на arXiv, а не статья, прошедшая рецензирование, поэтому выводы ещё должны подтвердить независимые исследования. Проверка была ограниченной: две модели, 20 задач и решения на C++, причём эксперименты шли в искусственно заданном цикле правок, а не в реальной работе разработчиков.
Пересказано ИИ по научной статье. Как это устроено