Page 358 - 《软件学报》2026年第3期
P. 358

张犬俊 等: 检索增强生成在软件工程中的应用综述                                                        1321


                 Kotlin  和  Ring  虽在整体研究中比例较小, 但在企业应用、智能合约、数据库交互等特定下游任务中展示出独特
                 的应用价值. 此外, 基于     RAG  的研究涵盖了代码完成、代码生成、代码摘要、程序修复、漏洞检测与修复、测试
                 生成、代码查询及文本到         SQL  等多种下游任务, 显示出研究在任务类型上的高度多样性. 这种多样性不仅反映了
                 预训练语言模型在多语言支持和不同应用场景中的强大适应性和扩展潜力, 也表明随着数据集的不断丰富, 未来
                 RAG  技术有望进一步覆盖更多编程语言和复杂的下游任务, 推动软件工程技术的全面发展.
                  3.4   模型分布情况
                    本节统计分析了收集到的文献中所涉及的 46 种主流的                  PLM  和  LLM  在软件工程任务中的使用情况. 为更系
                 统地展现模型的演化趋势, 图         4  展示了按年份分布的模型使用频率情况, 统计了每个模型在 2021–2024 年间的出
                 现频次. 由图   4  可见, GPT-3.5 是被使用最多的模型      (共 38 次), 广泛用于生成器部分, 其使用在 2023       年和  2024 年
                 达到高峰. 同时, Codex (12 次) 和  CodeT5 (12 次) 等模型自提出以来在各类任务中持续被采用, 表现出良好的通用
                 性, 尤其适用于代码生成与修复场景. 值得注意的是, GPT-4 (18 次) 和             GPT-4o (8 次) 的使用数量在 2024 年显著增
                 长, 体现了新一代 LLM 在实际研究中的快速扩展和应用. 与此同时, 一些模型如                      DeepSeek-Coder、CodeGemma
                 和 Qwen2 等自 2023 年后开始被引入, 说明业界对开放源代码大模型的关注度日益上升.


                        40
                           38                                             2021年  2022年  2023年  2024年
                        35
                        30
                        25
                       次数  20  18
                        15   1313
                                1212
                        10          9 8
                                       6 6 6 6  5  5 5 4  4 4 3
                         5                               3  3
                                                            2  2  2  2  2  2  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
                         0                         T5
                          GPT-3.5  GPT-4 CodeLLaMA StarCoder  Codex  CodeT5 CodeGen  GPT-4o DeepSeek-Coder  PLBART LLaMA3 CodeGPT  CodeT5+  Claude-3 UniXcoder  CodeBERT GPT-4o-mini  Llama-2  LLaMA  GPT-3 DeepSeek  Qwen2 CodeGen-2 Gemini-1.5  Gemma  Mistral  PaLM StarCoder2 PolyCoder Magicoder  PaLM2  BART LangChain  InCoder  Claude-2 CodeGeeX CodeGemma CodeQwen1.5  CoditT5 CommitBERT  GPT-2 GPT-Neo  Gemma2 GraphCodeBERT WizardCoder





                                       图 4 基于   RAG  在软件工程领域研究的模型分布情况

                  3.5   研究问题  1  结论
                    本节重点关注      2021–2024  年期间, 基于  RAG  的软件工程应用研究呈现出显著的增长趋势, 发表论文数量从                  2
                 篇迅速增加到     70  篇; 在发表渠道方面, 约     67%  的论文发表于经过同行评审的顶级会议和期刊, 其中                 EMNLP  和
                 ICSE  最为活跃, 其次是   ACL、ASE  和  ISSTA, 而  33%  的论文发布在  arXiv 上, 反映出研究的快速扩展和及时分享;
                 研究领域涵盖软件工程、人工智能和信息安全, 展示出跨学科的特征; 在编程语言分布上, Python、Java 是最常用
                 的语言, 广泛应用于代码完成、代码生成、程序修复和漏洞检测等下游任务, C/C++以及                          JavaScript 和  TypeScript
                 在特定任务中也有重要应用, 其他语言如             Go、Verilog、PHP、Kotlin  和  Ring  虽比例较小, 但在企业应用、智能合
                 约和数据库交互等领域展现出独特价值. 在模型应用方面, PLM                   和  LLM  在  RAG  架构中作为检索器和生成器应
                 用, 高效检索相关代码片段, 并通过          GPT-3.5、GPT-4、CodeT5  和  Codex  等生成器模型生成准确且一致的代码补

                 全或建议, 显著提升了代码生成等下游任务的准确性.
                  4   研究问题  2: RAG  处理代码任务的检索器和生成器具体架构是什么?

                    RAG  框架通过检索器和生成器的紧密协作, 将外部知识与大模型的强大生成能力结合起来, 极大地提高了软
                 件工程领域中代码任务的效果. 一般而言, 检索器从大型代码库、技术文档或项目仓库中筛选出与用户输入最相
   353   354   355   356   357   358   359   360   361   362   363