QiMeng-PRepair: Точное исправление кода с помощью оптимизации вознаграждения с учетом редактирования
QiMeng-PRepair: Precise Code Repair via Edit-Aware Reward Optimization
April 7, 2026
Авторы: Changxin Ke, Rui Zhang, Jiaming Guo, Yuanbo Wen, Li Ding, Shuo Wang, Xuyuan Zhu, Xiong Peng, Di Huang, Zidong Du, Xing Hu, Qi Guo, Yunji Chen
cs.AI
Аннотация
Крупные языковые модели (LLМ) демонстрируют высокую производительность в исправлении программ, но часто страдают от чрезмерного редактирования, при котором избыточные модификации перезаписывают корректный код и затрудняют локализацию ошибок. Мы систематически оцениваем влияние этой проблемы и вводим задачу точного исправления, которая максимизирует повторное использование правильного кода, исправляя только ошибочные части. На основе этого подхода мы предлагаем PRepair — фреймворк, который смягчает проблему чрезмерного редактирования и повышает точность исправлений. PRepair состоит из двух компонентов: Self-Breaking, который генерирует разнообразные ошибочные программы с помощью контролируемого внедрения ошибок и мин-макс сэмплирования, и Self-Repairing, который обучает модели с помощью Edit-Aware Group Relative Policy Optimization (EA-GRPO), используя учитывающее правки вознаграждение для поощрения минимальных, но корректных изменений. Эксперименты показывают, что PRepair улучшает точность исправлений до 31.4% по метрике fix_1@1, которая совместно учитывает корректность и объем исправлений, а также значительно увеличивает пропускную способность декодирования в сочетании со спекулятивным редактированием, демонстрируя свой потенциал для точного и практичного исправления кода.
English
Large Language Models (LLMs) achieve strong program repair performance but often suffer from over-editing, where excessive modifications overwrite correct code and hinder bug localization. We systematically quantify its impact and introduce precise repair task, which maximizes reuse of correct code while fixing only buggy parts. Building on this insight, we propose PRepair, a framework that mitigates over-editing and improves repair accuracy. PRepair has two components: Self-Breaking, which generates diverse buggy programs via controlled bug injection and min-max sampling, and Self-Repairing, which trains models with Edit-Aware Group Relative Policy Optimization (EA-GRPO) using an edit-aware reward to encourage minimal yet correct edits. Experiments show that PRepair improves repair precision by up to 31.4% under fix_1@1, a metric that jointly considers repair correctness and extent, and significantly increases decoding throughput when combined with speculative editing, demonstrating its potential for precise and practical code repair.