EXECREPOBENCH
收藏arXiv2024-12-17 更新2024-12-18 收录
下载链接:
https://execrepobench.github.io/
下载链接
链接失效反馈官方服务:
资源简介:
EXECREPOBENCH是由阿里巴巴集团创建的一个用于代码完成任务的评估基准数据集,包含1.2K个来自50个活跃Python仓库的样本。该数据集通过多级语法树解析,对代码片段进行多层次的掩码处理,以模拟真实编程环境中的复杂依赖关系。数据集的创建过程包括从GitHub收集活跃的Python仓库,并将其转换为可执行格式,同时生成相应的测试用例。EXECREPOBENCH主要用于评估和提升开源大语言模型在实际编程场景中的代码完成能力,旨在解决代码生成和补全中的复杂依赖问题。
EXECREPOBENCH is an evaluation benchmark dataset for code completion tasks, developed by Alibaba Group. It contains 1.2K samples sourced from 50 active Python repositories. This dataset adopts multi-level syntax tree parsing to perform multi-level masking on code snippets, aiming to simulate the complex dependencies in real-world programming environments. The dataset creation process includes collecting active Python repositories from GitHub, converting them into executable formats, and generating corresponding test cases. EXECREPOBENCH is primarily used to evaluate and enhance the code completion capabilities of open-source large language models (LLMs) in real-world programming scenarios, and it aims to address the complex dependency issues in code generation and completion.
提供机构:
阿里巴巴集团
创建时间:
2024-12-17
搜集汇总
数据集介绍

构建方式
EXECREPOBENCH数据集通过从活跃的Python代码仓库中收集1.2K个样本构建而成,这些样本涵盖了多个文件间的复杂依赖关系。数据集的构建过程中,采用了多层次的语法树解析方法,基于抽象语法树(AST)对代码片段进行掩码处理,从而生成不同逻辑单元(如语句、表达式、函数等)的代码补全任务。此外,数据集还包含了针对这些代码片段的单元测试,以验证补全代码的正确性。
特点
EXECREPOBENCH数据集的显著特点在于其多层次的语法树解析方法,能够模拟真实编程场景中的复杂代码补全需求。此外,数据集通过单元测试确保补全代码的可执行性和正确性,避免了传统文本匹配评估方法的局限性。数据集还包含了来自50个活跃Python仓库的多样化样本,涵盖了多种编程任务和场景,为代码补全模型的评估提供了全面的基准。
使用方法
EXECREPOBENCH数据集可用于评估代码补全模型的性能,尤其是针对多文件依赖的复杂场景。使用时,模型需要根据给定的前缀代码和后缀代码,预测中间缺失的代码片段,并通过单元测试验证其正确性。数据集支持多种补全任务,包括随机跨行补全、语法树解析补全等,能够全面评估模型在不同编程场景下的表现。此外,数据集还可用于微调开源大语言模型,以提升其在代码补全任务中的表现。
背景与挑战
背景概述
EXECREPOBENCH是由阿里巴巴集团、中国科学技术大学、中国科学院大学和上海交通大学的研究人员共同开发的一个多层次可执行代码补全评估基准。该数据集创建于2024年,旨在解决现有代码补全评估基准在捕捉真实编程环境动态性方面的不足。EXECREPOBENCH通过从活跃的Python代码仓库中收集1.2K个样本,并结合多层次语法树解析方法,提供了一个全面的代码补全评估框架。该数据集的核心研究问题是如何在复杂的跨文件依赖场景中,提升开源大语言模型(LLMs)的代码补全能力。其影响力在于为代码补全任务提供了一个更具挑战性和实用性的评估标准,推动了代码生成技术的进一步发展。
当前挑战
EXECREPOBENCH在构建过程中面临多项挑战。首先,现有的代码补全评估基准通常依赖于静态方法,难以全面反映真实编程环境中的动态性和复杂性。其次,构建过程中需要处理代码仓库中的多文件依赖关系,确保评估的准确性和全面性。此外,数据集的构建还涉及到代码片段的语法树解析和多层次补全任务的设计,这对模型的语法理解和上下文感知能力提出了更高的要求。最后,如何在保证评估准确性的同时,避免数据泄露和过拟合问题,也是该数据集面临的重要挑战。
常用场景
经典使用场景
EXECREPOBENCH 数据集的经典使用场景主要集中在代码补全任务的评估上。该数据集通过从活跃的 Python 代码仓库中提取 1.2K 个样本,结合多层次的语法树(AST)解析方法,对代码片段进行不同逻辑单元的掩码操作,从而生成多层次的代码补全指令。这种设计使得模型能够在复杂的跨文件依赖场景中进行代码补全,特别是在涉及多个文件的代码仓库中,模型需要根据上下文信息预测缺失的代码片段。
解决学术问题
EXECREPOBENCH 数据集解决了现有代码补全评估基准的多个学术问题。首先,它通过引入多层次的语法树解析方法,解决了传统基准在评估代码补全时仅依赖表面文本匹配的局限性。其次,该数据集通过从真实的代码仓库中提取样本,解决了现有基准在评估时缺乏真实世界复杂依赖的问题。此外,EXECREPOBENCH 还通过执行级别的测试用例验证代码的正确性,从而提供了更准确的评估方式,推动了代码补全技术在实际应用中的发展。
衍生相关工作
基于 EXECREPOBENCH 数据集,许多相关工作得以展开。首先,Qwen2.5-Coder-Instruct-C 模型通过在该数据集上的微调,展示了其在代码补全任务中的卓越表现,特别是在跨文件依赖的场景下。其次,该数据集的引入也促进了多层次语法树解析方法的研究,推动了代码补全技术在语法和逻辑层面的深入探索。此外,EXECREPOBENCH 还为其他代码生成和评估基准(如 MultiPL-E)提供了参考,进一步扩展了其在代码生成领域的应用价值。
以上内容由遇见数据集搜集并总结生成



