中文

多样化代码编辑的鲁棒学习

软件工程 2025-05-13 v2 机器学习

摘要

软件工程活动频繁涉及对现有代码的编辑。然而,当代代码语言模型(LMs)缺乏处理多样化代码编辑需求的能力。在本工作中,我们通过(1)一种新颖的合成数据生成流水线以及(2)一种鲁棒的模型适配算法来克服这一不足。从种子代码示例和多样化编辑标准出发,我们的流水线生成高质量样本,包括原始代码和修改后代码,以及不同风格和详略程度的自然语言指令。当前的代码 LMs 具备强大的代码生成和指令遵循能力,这些能力不应因微调而丢失。为此,我们提出了一种新颖的适配算法 SeleKT,该算法(a)利用基于密集梯度的步骤识别对代码编辑最重要的权重,(b)对基础模型进行稀疏投影以避免过拟合。使用我们的方法,我们获得了一系列新模型 NextCoder(基于 QwenCoder-2.5 适配),在五项代码编辑基准测试上取得了强劲结果,超越了同等规模的模型甚至多个更大规模的模型。我们在两个模型家族(DeepSeekCoder 和 QwenCoder)上展示了该方法的通用性,与其他微调方法进行了比较,并通过展示适配后代码生成和通用问题解决能力的保留来证明其鲁棒性。我们在 https://aka.ms/nextcoder 发布了模型、合成数据集和实现代码。

关键词

引用

@article{arxiv.2503.03656,
  title  = {Robust Learning of Diverse Code Edits},
  author = {Tushar Aggarwal and Swayam Singh and Abhijeet Awasthi and Aditya Kanade and Nagarajan Natarajan},
  journal= {arXiv preprint arXiv:2503.03656},
  year   = {2025}
}

备注

To appear in ICML 2025 as 'NextCoder: Robust Adaptation of Code LMs to Diverse Code Edits'