five

ExecRepoBench

收藏
Hugging Face2024-12-23 更新2024-12-24 收录
下载链接:
https://huggingface.co/datasets/CSJianYang/ExecRepoBench
下载链接
链接失效反馈
官方服务:
资源简介:
ExecRepoBench是一个用于增强软件开发中代码完成功能的新型框架。该数据集通过创建一个仓库级别的基准测试和指令语料库Repo-Instruct,旨在提高开源大型语言模型(LLMs)在涉及复杂跨文件依赖关系的实际编码场景中的功能。ExecRepoBench包含1.2K个来自活跃Python仓库的样本,并采用基于抽象语法树的多层次语法完成方法来屏蔽代码片段。
创建时间:
2024-12-19
原始信息汇总

ExecRepoBench 数据集概述

基本信息

  • 许可证: MIT
  • 任务类别: 文本生成
  • 语言: 英语
  • 标签: 代码
  • 数据集名称: ExecRepoBench
  • 数据集大小: 1K<n<10K

配置

  • 配置名称: default
    • 数据文件:
      • split: test
      • path: "exec_repo_bench.jsonl"

数据集简介

ExecRepoBench 是一个用于增强软件开发中代码补全的新框架,旨在通过创建一个仓库级别的基准测试 ExecRepoBench 和指令语料库 Repo-Instruct,来提升开源大型语言模型(LLMs)在涉及多个文件复杂相互依赖的真实编码场景中的功能。该数据集包含来自活跃 Python 仓库的 1.2K 样本,并提出了一种基于抽象语法树的多层次语法补全方法,以在不同逻辑单元(如语句、表达式和函数)中屏蔽代码片段。

数据示例

验证数据的一个示例如下: json { "repo_name": "", "file_name": "", "prefix_code": "", "suffix_code": "", "middle_code": "", "context_code": ["file_name1", "file_content1", ...], "fill_type": "" }

引用

如果您使用该数据集,请引用原始论文: bibtex @article{yang2024execrepobench, title={ExecRepoBench: Multi-level Executable Code Completion Evaluation}, author={Yang, Jian and Zhang, Jiajun and Yang, Jiaxi and Jin, Ke and Zhang, Lei and Peng, Qiyao and Deng, Ken and Miao, Yibo and Liu, Tianyu and Cui, Zeyu and others}, journal={arXiv preprint arXiv:2412.11990}, year={2024} }

搜集汇总
数据集介绍
main_image_url
构建方式
ExecRepoBench数据集的构建旨在提升代码补全技术在软件开发中的应用,特别是在处理复杂的多文件依赖关系时。该数据集从活跃的Python代码仓库中精心挑选了1.2K个样本,并采用基于抽象语法树的多层次语法补全方法,对代码片段进行逻辑单元的遮蔽,如语句、表达式和函数等。这种构建方式确保了数据集在模拟真实编程场景中的复杂性和多样性。
特点
ExecRepoBench数据集的显著特点在于其多层次的语法补全方法和丰富的上下文信息。每个样本不仅包含前后代码片段,还提供了相关的上下文代码文件,使得模型能够更好地理解代码间的依赖关系。此外,数据集的样本来源于实际的开源项目,确保了其与真实世界编程环境的紧密关联。
使用方法
ExecRepoBench数据集主要用于文本生成任务,特别是代码补全和代码生成模型的评估。用户可以通过加载数据集中的JSONL文件,提取代码片段及其上下文信息,进行模型的训练和测试。数据集的结构设计使得用户能够轻松地进行多层次的代码补全实验,从而评估模型在处理复杂代码依赖关系时的表现。
背景与挑战
背景概述
在软件开发领域,代码补全技术一直是提升开发效率和代码质量的关键。随着开源大型语言模型(LLMs)的兴起,如何在复杂的现实场景中有效利用这些模型进行代码补全,成为了一个亟待解决的问题。ExecRepoBench数据集由Yang等人于2024年创建,旨在通过构建一个仓库级别的基准测试,提升LLMs在处理多文件间复杂依赖关系时的代码补全能力。该数据集包含了1.2K个来自活跃Python仓库的样本,并引入了一种基于抽象语法树的多层次语法补全方法,以应对代码片段在不同逻辑单元中的补全需求。这一研究不仅推动了代码补全技术的发展,也为LLMs在实际编程环境中的应用提供了新的评估标准。
当前挑战
ExecRepoBench数据集面临的挑战主要集中在两个方面。首先,如何在复杂的代码仓库环境中准确捕捉和处理多文件间的依赖关系,是一个技术难点。其次,构建过程中需要对代码进行精细的语法分析和抽象语法树的构建,以确保补全的准确性和逻辑一致性。此外,数据集的规模和多样性也对其在实际应用中的泛化能力提出了挑战,如何在有限的样本中有效覆盖各种编程场景,是该数据集需要进一步解决的问题。
常用场景
经典使用场景
ExecRepoBench数据集在代码生成领域中具有显著的应用价值,尤其是在软件开发中的代码补全任务。该数据集通过引入多层次的语法补全方法,基于抽象语法树(AST)对代码片段进行掩码处理,从而模拟真实编程场景中的复杂依赖关系。这种设计使得模型能够在处理跨文件的代码依赖时表现更为精准,尤其适用于大型语言模型(LLMs)在开源项目中的应用。
解决学术问题
ExecRepoBench数据集有效解决了代码生成领域中复杂依赖关系处理的学术难题。传统的代码补全方法往往局限于单文件内的代码片段,而该数据集通过多层次的语法补全方法,成功模拟了跨文件的复杂依赖关系,提升了模型的泛化能力和实用性。这一创新不仅推动了代码生成技术的发展,也为相关领域的研究提供了新的基准和方法论。
衍生相关工作
基于ExecRepoBench数据集,研究者们开发了多种衍生工作,包括改进的代码生成模型、跨文件依赖分析工具以及基于AST的代码补全算法。这些工作不仅在学术界引起了广泛关注,还在工业界得到了实际应用。例如,一些开源项目和商业代码编辑器已开始集成这些衍生技术,以提升其代码补全和错误检测能力,展示了该数据集在推动技术进步方面的深远影响。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作