大语言模型与简单愚蠢错误
软件工程
2023-03-22 v1 计算与语言
机器学习
摘要
随着强大的神经语言模型的出现,辅助开发者进行编码任务的基于人工智能的系统正变得广泛可用;Copilot 就是这样一个系统。Copilot 使用 Codex(一个大语言模型(LLM))来基于前面的“提示”补全代码。然而,Codex 是在公共 GitHub 仓库上训练的,即可能包含错误和漏洞的代码。先前的研究 [1]、[2] 表明 Codex 会复现训练集中出现的漏洞。在本研究中,我们考察 Codex 生成一类有趣错误的倾向:单语句错误,在 MSR 社区中通常称为简单愚蠢错误(simple, stupid bugs,SStuBs)。我们发现 Codex 及类似的 LLM 确实有助于避免某些 SStuBs,但生成已知的、逐字的 SStuBs 的可能性高达生成已知的、逐字的正确代码的 2 倍。我们探讨了 Codex 生成的 SStuBs 的后果,并提出了避免策略,表明有可能减少已知的、逐字的 SStuBs 的产生,并增加生成已知的、逐字修复代码的可能性。
引用
@article{arxiv.2303.11455,
title = {Large Language Models and Simple, Stupid Bugs},
author = {Kevin Jesse and Toufique Ahmed and Premkumar T. Devanbu and Emily Morgan},
journal= {arXiv preprint arXiv:2303.11455},
year = {2023}
}
备注
Accepted at International Conference on Mining Software Repositories (MSR-2023)