|
摘要: C++编译错误的自动修复是一个重要挑战,解决这个问题对于开发者的生产力至关重要。在这个领域的进展受到两个主要因素的限制:缺乏大规模、高保真度的数据集以及传统监督方法的局限性,这些方法通常无法生成语义上正确的补丁。本文通过引入一个包含三个核心贡献的综合框架来解决这些问题。首先,我们提出了CCrepair,这是一个新颖的、大规模的C++编译错误数据集,通过一个复杂的生成和验证流程构建而成。其次,我们提出了一个受混合奖励信号引导的强化学习(RL)范例,将焦点从仅仅可编译性转移到修复的语义质量上。最后,我们建立了一个稳健的、两阶段的评估系统,提供这一信号,以一个LLM作为评判者,其可靠性已经通过一组人类专家的集体判断得到了严格验证。这种综合方法将训练目标与生成既语法上又语义上正确的高质量、非平凡补丁相一致。实验证明了我们方法的有效性。我们RL训练的Qwen2.5-1.5B-Instruct模型的性能与Qwen2.5-14B-Instruct模型相当,验证了我们训练范例的效率。我们的工作为研究社区提供了一个有价值的新数据集和一个更有效的训练和评估稳健编译修复模型的范例,为更实用、更可靠的自动化编程助手铺平了道路。 更新时间: 2025-09-19 07:06:27 领域: cs.AI
|