Нейросети переписывают код сильнее, чем нужно для починки бага

Нейросети переписывают код сильнее, чем нужно для починки бага

Исследователи изучили эффект «over-editing» (избыточного редактирования), склонность ИИ-моделей переписывать код сильнее, чем требуется для исправления конкретного бага. Для проверки они собрали оценочный фреймворк из 400 задач BigCodeBench: в эталонные решения вносили контролируемые повреждения на уровне AST (абстрактного синтаксического дерева), так что для каждой задачи на исправление был известен минимальный «правильный» патч, с которым можно было сравнивать правки модели.

Выяснилось, что избыточное редактирование широко распространено даже среди сильных моделей, например, GPT-5.5: модель может показывать высокую точность (Pass@1) и при этом вносить излишне большие правки, добавляющие когнитивную сложность коду. Простая инструкция, требующая сохранять код по максимуму (preservation instruction), заметно снижает эту проблему: среднее избыточное расстояние Левенштейна (мера того, насколько правка модели отличается от минимально необходимой) падает с 0,195 до 0,131, добавленная когнитивная сложность снижается на 26,6%, а точность Pass@1 растёт на 2,3 процентных пункта. При этом авторы отмечают, что этот выигрыш не объясняется просто увеличением бюджета рассуждений или размера модели.

Далее исследователи проверили, можно ли научить модель минимальному редактированию напрямую на этапе пост-тренировки. Оказалось, что дообучение с учителем (supervised fine-tuning) переобучается под увиденные типы повреждений кода и плохо переносится на новые случаи, тогда как обучение с подкреплением (reinforcement learning) даёт лучший баланс между точностью правок и сохранением исходной производительности модели на задачах вне обучающего распределения. Вывод авторов: верность правки (edit fidelity), отдельная, измеримая и обучаемая ось качества автоматического исправления кода, наравне с самой корректностью исправления.

Ключевые факты

  • Собран оценочный фреймворк из 400 задач BigCodeBench с контролируемыми AST-повреждениями эталонных решений и известным минимальным патчем для каждой задачи
  • Избыточное редактирование широко распространено даже у сильных моделей вроде GPT-5.5: высокая точность Pass@1 сочетается с излишне большими правками
  • Инструкция «сохранять код» снижает избыточное расстояние Левенштейна с 0,195 до 0,131, добавленную когнитивную сложность, на 26,6%, а Pass@1 растёт на 2,3 процентных пункта
  • Этот эффект не объясняется просто увеличением бюджета рассуждений или размера модели
  • На этапе пост-тренировки дообучение с учителем переобучается под знакомые повреждения, а обучение с подкреплением лучше переносит верность правок на новые случаи

Почему это важно

ИИ-модели всё чаще правят чужой код, но правильный результат, не единственное требование: полезное исправление должно быть минимальным, легко проверяемым и не менять то, что не сломано. Работа показывает, что модели систематически этому требованию не следуют, они чинят баг, но заодно переписывают лишнее, добавляя коду сложность, которую потом придётся разбирать ревьюеру.

Кому это важно

Тем, кто пользуется ИИ-инструментами и агентами для автоматического исправления багов в реальных проектах, и тем, кто такие инструменты разрабатывает: команды, которые встраивают LLM в код-ревью и CI/CD, и исследователи, занимающиеся пост-тренировкой моделей для задач кода.

Как это применить

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

Можно ли доверять

Материал, научная публикация с прозрачной методологией: конкретный бенчмарк из 400 задач, контролируемый способ порчи эталонных решений и заранее известный минимальный патч для сравнения, количественные результаты по нескольким метрикам. В доступном тексте не указаны авторы, их организации и дата публикации, а полный список проверенных «передовых моделей» не приведён, назван лишь пример GPT-5.5; также не раскрыто, как именно сформулирована инструкция о сохранении кода.

Риски и подводные камни

Результаты получены на одном бенчмарке (BigCodeBench с искусственно внесёнными повреждениями) и на не до конца названном наборе моделей, насколько эффект и цифры переносятся на другие языки программирования, типы багов и реальные продакшен-репозитории, из текста не следует. Без имён авторов и институтов и без даты публикации независимо оценить контекст и рецензирование работы по одному описанию нельзя.