QiMeng-PRepair: Reparación Precisa de Código mediante Optimización de Recompensas Sensible a Ediciones
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
Resumen
Los Modelos de Lenguaje a Gran Escala (LLM) logran un sólido rendimiento en la reparación de programas, pero a menudo sufren de sobre-edición, donde modificaciones excesivas sobrescriben código correcto y dificultan la localización de errores. Cuantificamos sistemáticamente su impacto e introducimos la tarea de reparación precisa, que maximiza la reutilización del código correcto mientras repara únicamente las partes defectuosas. Basándonos en esta idea, proponemos PRepair, un marco de trabajo que mitiga la sobre-edición y mejora la precisión de la reparación. PRepair tiene dos componentes: Auto-Rotura, que genera programas defectuosos diversos mediante inyección controlada de errores y muestreo min-max, y Auto-Reparación, que entrena modelos con Optimización de Política Relativa Grupal Consciente de la Edición (EA-GRPO) utilizando una recompensa consciente de la edición para fomentar modificaciones mínimas pero correctas. Los experimentos muestran que PRepair mejora la precisión de la reparación hasta en un 31.4% bajo fix_1@1, una métrica que considera conjuntamente la corrección y el alcance de la reparación, y aumenta significativamente el rendimiento de decodificación cuando se combina con edición especulativa, demostrando su potencial para una reparación de código precisa y práctica.
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.