[论文解读] A Survey on Large Language Models for Software Engineering
一份系统性综述,总结了软件工程领域大模型(LLMs)的最新进展,详述62个代码类LLM、15个预训练目标、16个下游软件工程任务,以及跨越五个工作流阶段的947项软件工程研究,并附有一个持续更新的公开仓库。
Software Engineering (SE) is the systematic design, development, maintenance, and management of software applications underpinning the digital infrastructure of our modern world. Very recently, the SE community has seen a rapidly increasing number of techniques employing Large Language Models (LLMs) to automate a broad range of SE tasks. Nevertheless, existing information of the applications, effects, and possible limitations of LLMs within SE is still not well-studied. In this paper, we provide a systematic survey to summarize the current state-of-the-art research in the LLM-based SE community. We summarize 62 representative LLMs of Code across three model architectures, 15 pre-training objectives across four categories, and 16 downstream tasks across five categories. We then present a detailed summarization of the recent SE studies for which LLMs are commonly utilized, including 947 studies for 112 specific code-related tasks across five crucial phases within the SE workflow. We also discuss several critical aspects during the integration of LLMs into SE, such as empirical evaluation, benchmarking, security and reliability, domain tuning, compressing and distillation. Finally, we highlight several challenges and potential opportunities on applying LLMs for future SE studies, such as exploring domain LLMs and constructing clean evaluation datasets. Overall, our work can help researchers gain a comprehensive understanding about the achievements of the existing LLM-based SE studies and promote the practical application of these techniques. Our artifacts are publicly available and will be continuously updated at the living repository: https://github.com/iSEngLab/AwesomeLLM4SE.
研究动机与目标
- 总结基于LLM的软件工程(LLM4SE)的当前最前沿状态。
- 按体系结构、预训练目标和下游任务对具有代表性的代码LLM进行编目。
- 绘制LLMs在整个软件工程生命周期中促进的SE任务与阶段。
- 讨论集成、评估、基准、安全性以及领域微调方面的挑战。
- 提供开放科学产物与基于LLM的SE研究的未来方向。
提出的方法
- 使用与SE和LLM相关的关键词,在Google Scholar、ACM Digital Library和IEEE Explorer上进行自动检索。
- 通过雪球法和人工筛选来增强自动化结果。
- 将论文分类为代码LLMs、由LLMs驱动的SE研究,以及集成方面。
- 对1009篇相关论文进行定量汇总(59篇代码LLM论文和912篇基于LLM的SE论文)并进行定性综合。
- 用于工件与进展跟踪的公开动态仓库:AwesomeLLM4SE。
实验结果
研究问题
- RQ1RQ1 (LLM Perspective): 为支持SE发布了哪些LLMs,它们的预训练任务、下游任务,以及开放科学状态?
- RQ2RQ2 (SE Perspective): LLMs在需求/设计、开发、测试、维护和管理等方面促进了哪些SE任务?
- RQ3RQ3 (Integration Perspective): 在将LLMs集成到SE时,评估、基准、安全性/可靠性、领域微调以及压缩/蒸馏的关键因素是什么。
主要发现
- 该综述分析了62个具有代表性的代码LLM,涵盖编码器-仅、编码器-解码器和解码器-仅架构。
- 它识别出15个预训练目标,分为四组(代码序列建模、双向代码-NLP理解、代码结构、跨模态学习)。
- 有16个下游任务,跨越五个SE阶段,显示出LLMs在SE中的广泛适用性。
- 共947项SE研究覆盖五个SE阶段的112个代码相关任务,显示出该领域的快速增长。
- 文献合集包括2020–2024年的1009篇相关论文,顶级刊物包括ICSE、FSE、ACL、ASE和ISSTA。
- 作者提供一个持续更新的公开仓库(AwesomeLLM4SE)以跟踪进展并支持开放科学。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。