论文

HELO-APR:通过跨语言知识转移加强低资源程序修复

HELO-APR: Enhancing Low-Resource Program Repair through Cross-Lingual Knowledge Transfer

模型训练合成数据

摘要

大语言模型 (LLM) 在高资源编程语言 (HRPL) 的自动程序修复 (APR) 方面表现良好,但在低资源编程语言 (LRPL) 中,由于缺乏足够的经过验证的错误修复对进行 APR 训练,其有效性急剧下降。为了应对这一挑战,我们提出了 HELO-APR(高资源启用低资源 APR),这是一个两阶段的 APR 框架,可以实现从 HRPL 到 LRPL 的修复知识的跨语言迁移。 HELO-APR(1)通过合成HRPL对应的LRPL错误修复对来构建高质量的LRPL训练数据,在确保合成代码惯用的同时保持缺陷类型一致性,然后(2)采用课程学习策略,逐步进行HRPL修复学习、跨语言修复对齐和LRPL修复适应,提高LRPL的修复效率。使用 C++ 作为源 HRPL,Ruby 和 Rust 作为目标 LRPL,xCodeEval 上的实验表明,HELO-APR 始终优于强基线,在 DeepSeek-Coder-6.7B 上将 Pass@1 从 31.17% 提高到 48.65%,在 CodeLlama-7B 上从 1.67% 提高到 11.97%,同时通过提高 CodeLlama 上的平均目标编译率来提高语法有效性从 49.77% 到 91.98%。在 Defects4Ruby 上,HELO-APR 将 CodeLlama-7B 上的 BLEU-4 从 61.20 提高到 66.79,将 ROUGE-1 从 76.76 提高到 83.59,这表明与实际设置中的开发人员补丁具有更高的相似性。最后,我们进行消融研究来评估每个核心组件的必要性。这些结果表明,经过验证的跨语言监督为改进低资源语言中基于 LLM 的修复提供了一种可重用的方法。