InstructCoder:面向代码编辑的大语言模型指令微调
计算与语言
2024-02-29 v3 软件工程
摘要
代码编辑涵盖了开发者日常处理的多种实用任务。尽管其相关性与实用价值显著,自动代码编辑在深度学习模型演进中仍属未被充分探索的领域,部分原因在于数据稀缺。本文探索利用大语言模型(LLMs)根据用户指令编辑代码。在一个名为 EditEval 的新型人工编写、基于执行的基准上评估发现,当前模型常难以满足指令要求。有鉴于此,我们贡献了 InstructCoder——首个用于将 LLMs 适配于通用代码编辑的指令微调数据集,包含注释插入、代码优化与代码重构等高多样性代码编辑任务。该数据集由超过 114,000 个指令-输入-输出三元组组成,覆盖多种不同的代码编辑场景。收集过程以来自 GitHub Python 仓库的过滤提交数据作为种子。随后,通过迭代过程系统性扩展数据集,其中种子任务与生成任务均用于提示 ChatGPT 以获取更多数据。我们的结果表明,在 InstructCoder 上微调的开源 LLMs 能显著提升代码编辑的准确性,展现出媲美先进专有 LLMs 的优越代码编辑性能。数据集与源代码已公开于 https://github.com/qishenghu/CodeInstruct。
引用
@article{arxiv.2310.20329,
title = {InstructCoder: Instruction Tuning Large Language Models for Code Editing},
author = {Kaixin Li and Qisheng Hu and Xu Zhao and Hui Chen and Yuxi Xie and Tiedong Liu and Qizhe Xie and Junxian He},
journal= {arXiv preprint arXiv:2310.20329},
year = {2024}
}