ChatPaper.aiChatPaper

QiMeng-PRepair: Reparo Preciso de Código via Otimização de Recompensa Sensível a Edições

QiMeng-PRepair: Precise Code Repair via Edit-Aware Reward Optimization

April 7, 2026
Autores: 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

Resumo

Os Grandes Modelos de Linguagem (LLMs) alcançam um forte desempenho na correção de programas, mas frequentemente sofrem com edição excessiva (*over-editing*), onde modificações excessivas sobrescrevem código correto e dificultam a localização de bugs. Nós quantificamos sistematicamente seu impacto e introduzimos a tarefa de reparo preciso, que maximiza a reutilização de código correto enquanto corrige apenas as partes com defeito. Com base nessa percepção, propomos o PRepair, uma estrutura que mitiga a edição excessiva e melhora a precisão do reparo. O PRepair tem dois componentes: *Self-Breaking*, que gera programas com bugs diversos por meio de injeção controlada de bugs e amostragem *min-max*, e *Self-Repairing*, que treina modelos com Otimização de Política Relativa de Grupo Consciente da Edição (EA-GRPO) usando uma recompensa consciente da edição para incentivar edições mínimas, porém corretas. Experimentos mostram que o PRepair melhora a precisão do reparo em até 31,4% sob a métrica *fix_1@1*, que considera conjuntamente a correção e a extensão do reparo, e aumenta significativamente a taxa de transferência na decodificação quando combinado com edição especulativa, demonstrando seu potencial para correção de código precisa e prática.
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.
PDF31April 9, 2026