中文

CoEdPilot:基于学习先验编辑相关性、项目级感知与交互性的代码编辑推荐

软件工程 2024-08-06 v1

摘要

近年来,基于大语言模型(LLM)的代码生成得到了发展。与在软件项目中生成代码相比,增量代码编辑在经验上被观察到更为频繁。新兴的代码编辑方法通常将问题表述为基于已知相关先验编辑和上下文生成编辑。然而,实际的代码编辑可能更为复杂。首先,一次编辑会话可以包含多个(相关或不相关)的代码编辑。其次,后续编辑的推理并非平凡,因为其涟漪效应的范围可能是整个项目。在本工作中,我们提出了CoEdPilot,一个由LLM驱动的解决方案,通过判别相关编辑、探索其交互特性以及估计其在项目中的涟漪效应来推荐代码编辑。具体而言,CoEdPilot协调多个神经Transformer来识别项目中编辑什么以及如何编辑,涉及编辑位置和编辑内容两方面。当用户完成一次编辑并可选择性地提供编辑描述时,后续编辑分析首先报告项目中最相关的文件,以及其代码的每一行可能发生何种类型的编辑(如保留、插入和替换)。接下来,编辑内容生成器根据编辑依赖分析器报告的先验相关变更为代码行生成具体的编辑选项。最后,后续编辑分析和编辑内容生成器均捕获相关先验编辑作为反馈以调整其推荐。我们通过收集来自5种编程语言、471个开源项目的超过18万次提交来训练模型。大量实验表明,CoEdPilot能够很好地预测编辑(即编辑位置预测准确率为70.8%-85.3%,编辑内容精确匹配率为41.8%,BLEU4得分为60.7)...

关键词

引用

@article{arxiv.2408.01733,
  title  = {CoEdPilot: Recommending Code Edits with Learned Prior Edit Relevance, Project-wise Awareness, and Interactive Nature},
  author = {Chenyan Liu and Yufan Cai and Yun Lin and Yuhuan Huang and Yunrui Pei and Bo Jiang and Ping Yang and Jin Song Dong and Hong Mei},
  journal= {arXiv preprint arXiv:2408.01733},
  year   = {2024}
}

备注

13 pages, 7 figures