分享自:

大语言模型在代码智能领域的基准测试综述

期刊:ACM Trans. Softw. Eng. Methodol.DOI:10.1145/3800957

本文是一篇发表于ACM Transactions on Software Engineering and Methodology期刊的学术综述论文,题为“Surveying the Benchmarking Landscape of Large Language Models in Code Intelligence”。作者团队来自加拿大约克大学,成员包括Mohammad Abdollahi, Ruixin Zhang, Nima Shiri Harzevili, Jiho Shin, Song Wang, 以及 Hadi Hemmati。该研究旨在对2020年1月至2025年6月期间发表的、用于评估大型语言模型在代码智能领域性能的基准数据集进行全面、系统的调查。

随着以GPT-2和GPT-3为代表的早期大型语言模型的发布,其在代码智能领域的应用迅速扩展,自动化了代码生成、程序修复、调试、软件测试等一系列任务。然而,LLM在这些任务上的能力评估缺乏标准化和系统性。现有基准在任务覆盖、数据质量、构建方法、评估标准以及与真实世界场景的契合度上差异显著。这种不统一使得难以对模型性能得出普适性结论,也引发了对当前评估实践可靠性和代表性的质疑。因此,本文旨在通过系统性地审查和分析现有基准数据集,描绘其发展现状,评估其优势与局限,并为未来更稳健、更具代表性的基准创建提供指导,以推动代码智能领域LLM评估的进步。

本文的核心内容围绕五个研究问题展开,对142篇相关论文中涉及的156个独特基准和32种不同编码任务进行了深入分析。

RQ1:基准数据集的当前格局是怎样的? 分析表明,自2023年起,相关基准数据集的研究和发布呈现显著上升趋势,2024年及2025年上半年达到高峰,反映出该领域日益增长的研究热度。从任务分布来看,代码生成是绝对主导的任务,占据了所有任务的约52.8%,其次是代码翻译、代码补全和测试用例生成。基准的复杂性也在演变:早期基准多关注单一函数级别的孤立任务,而近期趋势则转向更复杂、更贴近现实的类级别、多文件乃至仓库级别的上下文评估,以及需要多轮交互的智能体式评估。在应用领域上,通用算法任务占主导(50%),其次是复合及小众领域、数据科学、Web开发和安全领域。编程语言方面,Python是最主流的语言,出现在77%的数据集中,其次是Java和C++。同时,多语言基准正在增加,以评估模型的跨语言能力。数据集规模差异巨大,从14个样本到1.89亿个样本不等,呈长尾分布。在评估模型方面,OpenAI的GPT系列模型(尤其是GPT-3.5和GPT-4)是使用最广泛的基线模型,其次是Meta的Llama家族和各类代码专用LLM。论文发表阵地主要集中在顶级机器学习会议(如NeurIPS, ICLR, ICML)和预印本平台arXiv,软件工程顶级会议(如ICSE, ASE)相对较少。此外,基准的社区影响力呈现“幂律分布”,少数早期、基础性的基准(如HumanEval, MBPP)被广泛引用,而大量新兴的、特定领域的基准则处于引用长尾。

RQ2:基准数据集的特征和质量如何? 基准数据集的构建来源多样,主要可分为四类:开源仓库与GitHub(占46%),这是最主要的数据源,能提供真实世界的复杂项目环境;人工精心构建(占26%),以确保任务的清晰度和评估环境的可控性;在线编程平台(如LeetCode, Codeforces,占24.6%),提供结构化的编程问题;以及对现有基准的扩展或改编(占22.5%),以创建更全面或特定领域的评估集。数据质量控制和真实性是重要考量。研究分析了数据集的结构、组织方式(数据格式、标注方案、元数据)以及构建过程中的质量控制机制(如人工验证、过滤、自动化检查)。研究还评估了这些基准在相关性、真实性和任务代表性方面反映现实世界场景的程度。一个关键趋势是,越来越多基于GitHub等真实仓库的基准被创建,旨在模拟实际的软件开发工作流,这标志着评估重点从孤立算法任务向实践应用场景的转变。

RQ3:评估指标和技术是怎样的? 本文探讨了用于衡量LLM在编码基准上性能的常用评估标准。分析涵盖了所使用的指标类型,例如准确率、BLEU分数、代码执行成功率或功能正确性,并考察这些指标是否与特定任务目标(如代码生成、缺陷修复或测试生成)保持一致。研究发现,评估指标和协议存在显著差异。功能正确性(通过单元测试验证)是代码生成和修复任务的主流指标,但不同基准在测试的严格性、覆盖率和执行环境上有所不同。对于理解或翻译任务,则可能采用基于匹配(如BLEU, ROUGE)或基于检索的指标。研究进一步调查了跨数据集是否存在标准化的评估协议或方法论,以及它们应用的一致性,从而突出了当前基准实践中的差距或不一致之处。缺乏统一的评估框架是跨基准比较和模型能力泛化评估的主要障碍。

RQ4:现有基准面临哪些挑战与局限? 为了深入探究现有基准的局限性,研究者选取了14个具有代表性的基准数据集,并系统分析了引用和使用这些基准的文献中报告的问题。通过综合这些经验研究中的反馈,识别出几类普遍存在的挑战:数据集偏差:许多基准在编程语言(过度偏向Python)、任务类型(过度集中于代码生成)、问题复杂度(多为简单、独立函数)和源代码(集中于热门GitHub项目)上存在偏差,限制了其代表性和泛化能力。缺乏标准化评估协议:如前所述,评估指标、通过标准(如测试通过率阈值)、执行环境和计算资源的不统一,导致结果难以直接比较和复现。对现实世界挑战覆盖不足:许多基准未能充分体现真实软件开发中的复杂性,例如处理大型代码库、理解模糊的需求、进行多轮交互调试、整合外部工具和API,以及处理安全和合规性约束。数据污染问题:由于LLM在包含基准测试数据的语料库上进行训练,可能导致评估分数虚高,无法反映模型在未见问题上的真实能力。尽管已有研究关注此问题并提出了缓解策略(如使用训练截止日期后的数据),但它仍然是一个普遍存在的有效性威胁。

RQ5:未来的方向与改进建议是什么? 基于对现有局限性的分析,本文为下一代LLM基准的创建提出了愿景和建议。主要方向包括:创建更稳健、适应性更强的基准:鼓励开发能够随着LLM能力进化而保持挑战性的动态基准,以及能够评估模型在多样化、复杂场景下表现的基准。提升与真实代码智能需求的契合度:基准应更好地模拟实际开发环境,例如纳入多模态上下文(代码、文档、问题追踪)、支持交互式任务(允许模型与环境交互并接收反馈)、以及评估智能体在完整软件工程工作流中的表现。确保可靠性和实用性:需要建立标准化的评估协议、严格的防数据污染措施,并提高数据集的透明度(如详细的构建文档、元数据)。覆盖更广泛的领域和语言:未来基准应更多地涵盖安全关键系统、嵌入式软件、低资源编程语言等 underrepresented 领域,以全面评估LLM的能力。促进社区协作与资源共享:鼓励建立开放的基准平台,便于数据集共享、评估结果比较和最佳实践交流。

本文的贡献在于:对2020年至2025年间用于评估代码智能LLM的156个基准数据集进行了首次大规模系统性综述;提供了关于其特征、结构、评估指标和任务覆盖率的详细分类与比较分析;评估了现有基准的质量控制实践和现实世界相关性;基于文献分析,识别了当前基准实践中的关键局限性;为下一代基准的设计提出了一套可操作的建议,以更好地反映LLM的进化能力和开发者的实际需求;同时,作者公开了所调查的论文列表和分析脚本,以促进研究的可复现性。

这篇综述对于研究者和实践者都具有重要价值。它为研究者提供了当前基准格局的结构化理解,揭示了现有评估中的差距和不一致性,并为设计、选择和应用基准数据集来评估LLM能力提供了实用指导。对于实践者而言,它有助于理解不同基准的侧重点和局限性,从而在工具开发和模型选型中做出更明智的决策。这项工作为代码智能研究社区推动更具意义、可复现和代表性的LLM评估奠定了坚实基础。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com