AdaptEval: A Benchmark for Evaluating Large Language Models on Code Snippet Adaptation
作者: Tanghaoran Zhang, Xinjun Mao, Shangwen Wang, Yuxin Zhao, Yao Lu, Jin Zhang, Zhang Zhang, Kang Yang, Yue Yu
分类: cs.SE, cs.AI
发布日期: 2026-01-08
备注: 13 pages, 7 figures, Accepted by ASE 2025
💡 一句话要点
AdaptEval:用于评估大型语言模型在代码片段适配能力上的基准测试。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码片段适配 大型语言模型 基准测试 软件工程 代码重用 指令调优 多粒度标注
📋 核心要点
- 现有代码生成基准缺乏对LLM在代码片段适配能力上的评估,无法有效衡量其在实际代码重用场景中的表现。
- AdaptEval基准通过引入实际上下文、多粒度标注和细粒度评估,全面评估LLM在代码片段适配任务中的性能。
- 实验结果揭示了现有LLM在代码片段适配方面的局限性,尤其是在遵循明确指令方面存在不足,为未来研究提供了方向。
📝 摘要(中文)
大型语言模型(LLMs)的最新进展已经实现了各种软件工程任务的自动化,并涌现出评估其能力的基准。然而,对于代码重用过程中的关键活动——适配,目前还没有基准来评估LLMs的性能,这使得它们在该领域的实际效用尚不清楚。为了填补这一空白,我们提出了AdaptEval,这是一个旨在评估LLMs在代码片段适配方面的基准。与现有基准不同,AdaptEval包含以下三个独特特征:首先,实际上下文。AdaptEval中的任务源于开发人员的实践,保留了来自Stack Overflow和GitHub社区的丰富上下文信息。其次,多粒度标注。每个任务都标注了任务级别和适配级别的需求,支持评估LLMs在各种适配场景中的表现。第三,细粒度评估。AdaptEval包含一个双层测试框架,结合了适配级别和函数级别的测试,从而能够评估LLMs在各种个体适配方面的性能。基于AdaptEval,我们进行了首次实证研究,以评估六个指令调优的LLMs,特别是三个推理LLMs在代码片段适配方面的表现。实验结果表明,AdaptEval能够从多个角度评估LLMs的适配能力。它还提供了对其当前局限性的重要见解,特别是它们难以遵循明确的指令。我们希望AdaptEval能够促进对LLMs在代码片段适配方面的能力进行进一步的研究和增强,从而支持它们在现实世界中的应用。
🔬 方法详解
问题定义:论文旨在解决现有大型语言模型(LLMs)在代码片段适配任务中缺乏有效评估基准的问题。现有基准测试通常侧重于代码生成或理解,而忽略了代码重用过程中至关重要的适配环节,导致无法准确评估LLMs在实际软件开发场景中的应用能力。现有方法的痛点在于无法模拟真实开发环境中的复杂上下文和多样的适配需求。
核心思路:论文的核心思路是构建一个更贴近实际开发场景的基准测试,即AdaptEval。该基准测试通过引入来自Stack Overflow和GitHub的真实代码片段和上下文信息,模拟开发人员在代码重用过程中遇到的各种适配需求。通过多粒度标注和细粒度评估,全面评估LLMs在不同适配场景下的性能。
技术框架:AdaptEval基准测试包含以下主要组成部分:1) 从Stack Overflow和GitHub收集代码片段和上下文信息;2) 对每个代码片段进行任务级别和适配级别的需求标注;3) 构建一个双层测试框架,包括适配级别和函数级别的测试;4) 设计评估指标,用于衡量LLMs在不同适配场景下的性能。整体流程是从真实开发场景中提取数据,进行标注,然后利用这些数据评估LLMs的适配能力。
关键创新:AdaptEval的关键创新在于其三个独特特征:1) 实际上下文:任务源于开发人员的实践,保留了丰富的上下文信息;2) 多粒度标注:每个任务都标注了任务级别和适配级别的需求;3) 细粒度评估:包含一个双层测试框架,结合了适配级别和函数级别的测试。这些特征使得AdaptEval能够更全面、更准确地评估LLMs在代码片段适配方面的能力,与现有方法相比,更贴近实际应用场景。
关键设计:AdaptEval的关键设计包括:1) 如何从Stack Overflow和GitHub中提取有用的代码片段和上下文信息;2) 如何设计任务级别和适配级别的需求标注,以覆盖各种适配场景;3) 如何构建一个有效的双层测试框架,以评估LLMs在不同粒度上的性能;4) 如何设计合适的评估指标,以衡量LLMs的适配能力。
📊 实验亮点
实验结果表明,基于AdaptEval,可以有效评估LLMs在代码片段适配方面的能力。研究发现,现有LLMs在遵循明确指令方面存在不足,尤其是在处理复杂的上下文信息和多样的适配需求时。例如,某些LLMs在适配级别测试中的准确率低于预期,表明其难以理解和执行细粒度的适配指令。AdaptEval为进一步研究和改进LLMs的代码适配能力提供了重要的实验平台和数据支持。
🎯 应用场景
AdaptEval的研究成果可应用于自动化代码重用、智能代码补全、代码迁移和代码修复等领域。通过更准确地评估LLMs在代码适配方面的能力,可以推动LLMs在软件开发领域的更广泛应用,提高开发效率,降低开发成本,并提升软件质量。未来,该基准测试可以进一步扩展到其他编程语言和更复杂的软件开发场景。
📄 摘要(原文)
Recent advancements in large language models (LLMs) have automated various software engineering tasks, with benchmarks emerging to evaluate their capabilities. However, for adaptation, a critical activity during code reuse, there is no benchmark to assess LLMs' performance, leaving their practical utility in this area unclear. To fill this gap, we propose AdaptEval, a benchmark designed to evaluate LLMs on code snippet adaptation. Unlike existing benchmarks, AdaptEval incorporates the following three distinctive features: First, Practical Context. Tasks in AdaptEval are derived from developers' practices, preserving rich contextual information from Stack Overflow and GitHub communities. Second, Multi-granularity Annotation. Each task is annotated with requirements at both task and adaptation levels, supporting the evaluation of LLMs across diverse adaptation scenarios. Third, Fine-grained Evaluation. AdaptEval includes a two-tier testing framework combining adaptation-level and function-level tests, which enables evaluating LLMs' performance across various individual adaptations. Based on AdaptEval, we conduct the first empirical study to evaluate six instruction-tuned LLMs and especially three reasoning LLMs on code snippet adaptation. Experimental results demonstrate that AdaptEval enables the assessment of LLMs' adaptation capabilities from various perspectives. It also provides critical insights into their current limitations, particularly their struggle to follow explicit instructions. We hope AdaptEval can facilitate further investigation and enhancement of LLMs' capabilities in code snippet adaptation, supporting their real-world applications.