代码大语言模型在补全含潜在缺陷代码时表现不佳
机器学习
2023-12-04 v2 人工智能
计算与语言
软件工程
摘要
代码大语言模型(Code-LLMs)最近为代码补全带来了巨大进步,代码补全是编程辅助和代码智能的一项基本功能。然而,大多数现有工作忽略了生成所用代码上下文中可能存在的缺陷,而这在软件开发中不可避免。因此,我们受实时代码建议中代码上下文包含可能成为已完成程序中缺陷的反模式这一现实场景启发,引入并研究了缺陷代码补全问题。为系统研究该任务,我们引入了两个数据集:一个由改变语义的操作符变更衍生的合成缺陷数据集(buggy-HumanEval),以及一个由用户提交给编程问题的真实缺陷数据集(buggy-FixEval)。我们发现潜在缺陷的存在显著降低了高性能 Code-LLMs 的生成性能。例如,给定上下文中单个潜在缺陷时,CODEGEN-2B-MONO 在 buggy-HumanEval 测试用例上的通过率下降超过 50%。最后,我们研究了几种减轻潜在缺陷不利影响的后处理方法,发现缓解后性能仍存在显著差距。
引用
@article{arxiv.2306.03438,
title = {Large Language Models of Code Fail at Completing Code with Potential Bugs},
author = {Tuan Dinh and Jinman Zhao and Samson Tan and Renato Negrinho and Leonard Lausen and Sheng Zha and George Karypis},
journal= {arXiv preprint arXiv:2306.03438},
year = {2023}
}
备注
27 pages, accepted to NeurIPS 2023