多年来,漏洞修复和代码生成一直是软件开发中的核心研究主题。最近,大语言模型(LLMs)的爆炸式增长彻底改变了这一领域,为两者提供了强大的工具。本综述审查了27篇近期论文,并将其分为两组:一组专注于自动程序修复(APR)与LLM的集成,另一组聚焦于利用LLM进行代码生成。 第一组涉及针对漏洞检测与修复的新方法,包括定位语义错误、安全漏洞和运行时失败错误。APR中的工作强调了LLM在减少手动调试工作量方面的作用,通过上下文感知的修复方法推动准确性和效率提升,为自动调试带来了创新。 第二组研究代码生成,概述了为编程微调的通用LLM和任务特定模型,并提出了提升代码生成的方法,如识别符感知训练、指令级微调和语义代码结构的融合。本综述对APR与代码生成中的方法进行了对比,识别了诸如利用LLM、通过反馈循环实现迭代代码改进以及开源模型的趋势。 此外,还讨论了实现功能正确性与安全性的挑战,并为基于LLM的软件开发研究指明了未来的方向。 1 引言

近年来,大语言模型(LLMs)在自动化软件工程领域中逐渐受到关注,尤其是在漏洞修复 [18][23][19][25][12] 和代码生成 [15][21][6] 等领域。在过去十年中,自动程序修复(APR)和代码生成的使用显著增加 [8][10],从而推动了这一领域的大量研究。许多工具已被开发出来,这些工具结合了APR和自然语言处理,用于代码生成 [15][21][6],并采用多种技术,包括抽象语法树(AST)的实现、使用不同的启发式方法对可能的修复补丁进行排序、模式匹配和上下文匹配等。 在与代码相关的任务中使用LLMs显著提升了编程自动化和漏洞发现的质量与速度。这些任务包括总结代码、根据自然语言请求生成代码、修复现有代码中的漏洞,以及理解相对较大和复杂的代码库。然而,本文将重点探讨在代码生成与漏洞修复领域的研究与实践。为便于理解,我们将所涵盖的工具和论文划分为这两个类别。由于LLMs在极大规模的数据集和数十亿参数上进行训练,它们在这些工具中得到了广泛应用。相比从零开始训练模型,使用大语言模型可以更轻松地完成与编程相关的特定任务,从而带来卓越的性能和显著的优势 [18][19][25]。 与此同时,将LLMs用于APR和代码生成任务极其复杂,涵盖了多个研究领域,如基准测试、修复场景(语法错误、语义错误等)、修复技术(重新编译、二进制重写等)、修复测试(补丁生成、输入测试、共演化)等。因此,理解这一领域已经完成的工作可能十分复杂且耗时。 本文旨在总结这一快速发展的领域中已经完成的研究和工作,以帮助其他研究人员更好地理解这些工具的工作原理、在实际场景中的性能、应用领域及其局限性。我们收集了27篇论文,并总结了与这些研究相关的各种因素,包括使用的LLMs、支持的编程语言,以及由此衍生的构建语言无关的APR工具的难点、漏洞修复和代码生成的方法,以及该领域仍在研究中的挑战。 综上,本文的目标包括: 1. 收集关于使用LLMs进行APR和代码生成的研究,概述已取得的成果。 1. 阐明这些工具可用于的修复场景以及支持的编程语言。 1. 解析LLMs在修复和生成代码工作流中的集成方式及面临的挑战。 1. 讨论LLMs在与代码相关的任务中的局限性及仍在研究中的问题。

成为VIP会员查看完整内容
23

相关内容

人工智能(Artificial Intelligence, AI )是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支。
脑启发的人工智能:全面综述
专知会员服务
39+阅读 · 8月30日
视觉语言导航:大模型时代的综述
专知会员服务
45+阅读 · 7月10日
文本生成:任务、评估和挑战的系统综述
专知会员服务
24+阅读 · 5月27日
大型语言模型自动程序修复的系统文献综述
专知会员服务
40+阅读 · 5月5日
大型语言模型在预测和异常检测中的应用综述
专知会员服务
66+阅读 · 2月19日
《大型语言模型自然语言生成评估》综述
专知会员服务
68+阅读 · 1月20日
【干货书】机器学习导论第四版,903页pdf
专知
26+阅读 · 2022年11月26日
【综述】多智能体强化学习算法理论研究
深度强化学习实验室
10+阅读 · 2020年9月9日
深度学习目标检测概览
AI研习社
46+阅读 · 2017年10月13日
从浅层模型到深度模型:概览机器学习优化算法
机器之心
26+阅读 · 2017年7月9日
国家自然科学基金
7+阅读 · 2017年12月31日
国家自然科学基金
5+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
7+阅读 · 2015年12月31日
国家自然科学基金
12+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
11+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2014年12月31日
Arxiv
158+阅读 · 2023年4月20日
A Survey of Large Language Models
Arxiv
408+阅读 · 2023年3月31日
Arxiv
68+阅读 · 2023年3月26日
Arxiv
21+阅读 · 2023年3月17日
VIP会员
相关VIP内容
相关资讯
【干货书】机器学习导论第四版,903页pdf
专知
26+阅读 · 2022年11月26日
【综述】多智能体强化学习算法理论研究
深度强化学习实验室
10+阅读 · 2020年9月9日
深度学习目标检测概览
AI研习社
46+阅读 · 2017年10月13日
从浅层模型到深度模型:概览机器学习优化算法
机器之心
26+阅读 · 2017年7月9日
相关基金
国家自然科学基金
7+阅读 · 2017年12月31日
国家自然科学基金
5+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
7+阅读 · 2015年12月31日
国家自然科学基金
12+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
11+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2014年12月31日
微信扫码咨询专知VIP会员