DI-BENCH
收藏arXiv2025-01-23 更新2025-01-25 收录
下载链接:
https://github.com/Microsoft/DI-Bench
下载链接
链接失效反馈官方服务:
资源简介:
DI-BENCH是一个专注于依赖推断的大规模基准测试数据集,由微软等机构联合开发。该数据集包含581个真实世界的代码仓库,涵盖Python、C#、Rust和JavaScript四种编程语言,分为常规和大规模两个子集,分别包含387和194个仓库。数据集通过GitHub Actions自动化构建,确保了每个仓库的可执行性。DI-BENCH不仅评估模型生成的依赖项与真实依赖项的文本匹配度,还通过执行测试套件来评估代码的可执行性。该数据集旨在解决大型语言模型在生成代码时依赖推断不准确的问题,推动端到端软件合成的进一步发展。
DI-BENCH is a large-scale benchmark dataset focused on dependency inference, co-developed by Microsoft and other institutions. This dataset contains 581 real-world code repositories covering four programming languages: Python, C#, Rust, and JavaScript, and is divided into two subsets: regular and large-scale, with 387 and 194 repositories respectively. The dataset is automatically built via GitHub Actions, ensuring the executability of each repository. DI-BENCH not only evaluates the textual matching degree between the dependencies generated by models and the real dependencies, but also assesses the executability of the code by executing test suites. This dataset aims to solve the problem of inaccurate dependency inference when large language models generate code, and promote the further development of end-to-end software synthesis.
提供机构:
微软, 武汉大学, 同济大学, 上海人工智能实验室, 浙江大学
创建时间:
2025-01-23
原始信息汇总
DI-Bench 数据集概述
数据集简介
DI-Bench 是一个用于评估大型语言模型在依赖推断任务上的性能的基准测试数据集。该数据集包含多个编程语言的测试仓库,旨在通过检查项目测试是否通过来评估推断依赖关系的正确性。
数据集下载
- 数据集发布页面:Dataset release page
- 下载后,将
*.tar.gz文件解压到数据目录:.cache/repo-data/{language},其中{language}可以是python、rust、csharp或javascript。
数据集结构
- 每个仓库实例的数据位于
.cache/repo-data/{language}/{instance_id}目录下。
评估方法
- 使用
dibench.eval命令评估推断依赖关系的正确性。 - 需要指定结果目录、仓库实例目录和数据集路径。
文档
搜集汇总
数据集介绍

构建方式
DI-BENCH数据集的构建过程基于GitHub Actions的自动化流程,确保了数据集的可扩展性和可重复性。首先,通过筛选GitHub上超过100星标、启用GitHub Actions且大小小于10MB的Python、C#、Rust和JavaScript项目,初步收集候选仓库。随后,利用LLM辅助定位测试任务,并通过本地运行的GitHub Actions验证仓库的可执行性。最后,通过自动化脚本移除配置文件中的依赖项部分,生成最终的测试实例。这一流程不仅减少了人工干预,还确保了数据集的多样性和实用性。
特点
DI-BENCH数据集包含581个真实世界的可测试仓库,涵盖Python、C#、Rust和JavaScript四种主流编程语言。数据集分为常规和大规模两个子集,分别包含387个和194个仓库,覆盖了从简单到复杂的依赖关系。每个仓库都经过严格的验证,确保其可执行性。数据集的特点在于其专注于依赖推断任务,结合了文本匹配和基于CI的执行测试,提供了对LLM在依赖推断能力上的全面评估。此外,数据集的自动化构建流程使其具备持续更新的能力,能够适应不断变化的软件开发环境。
使用方法
DI-BENCH数据集的使用方法主要围绕依赖推断任务的评估展开。用户可以通过数据集提供的测试环境,评估LLM在生成依赖项配置时的准确性和可执行性。数据集支持多种评估指标,包括文本匹配的精确度、召回率和F1分数,以及基于CI测试的可执行率。用户可以通过对比模型生成的依赖项与真实依赖项,分析模型在依赖推断任务中的表现。此外,数据集还提供了详细的实验设置和基线方法,帮助用户快速上手并进行对比实验。通过DI-BENCH,研究人员可以深入探索LLM在依赖推断任务中的瓶颈,并推动相关技术的进一步发展。
背景与挑战
背景概述
DI-BENCH是由微软、武汉大学、同济大学、上海人工智能实验室和浙江大学的研究团队于2025年提出的一个大规模基准测试框架,旨在评估大语言模型(LLMs)在依赖推断任务中的表现。依赖推断是自动化软件开发中的关键步骤,涉及识别项目所需的内部组件和外部包。现有的研究表明,依赖相关的问题占生成代码库运行时错误的40%以上。DI-BENCH通过提供581个涵盖Python、C#、Rust和JavaScript的测试环境,为大语言模型在这一领域的性能评估提供了新的视角。该数据集的推出为更健壮的端到端软件合成铺平了道路。
当前挑战
DI-BENCH面临的挑战主要体现在两个方面。首先,依赖推断任务本身具有复杂性,尤其是在多语言环境下,模型需要准确识别并整合项目所需的依赖项,包括内部组件和外部包。当前表现最好的模型在执行通过率上仅达到42.9%,表明仍有较大的改进空间。其次,数据集的构建过程也面临挑战,尤其是在确保每个代码库的测试环境可执行性和自动化评估方面。尽管DI-BENCH通过利用持续集成(CI)工作流实现了自动化测试,但如何在大规模数据集上保持测试的准确性和一致性仍然是一个难题。此外,模型在处理大规模代码库时,如何有效管理上下文长度和依赖关系的复杂性,也是未来研究的重要方向。
常用场景
经典使用场景
DI-BENCH数据集主要用于评估大型语言模型(LLMs)在依赖推断任务中的表现。依赖推断是指识别代码库中所需的内部组件和外部包,以确保生成的代码库能够成功运行。该数据集通过提供581个跨Python、C#、Rust和JavaScript的测试环境,帮助研究人员评估模型在不同编程语言中的依赖推断能力。通过文本匹配和执行测试的双重评估,DI-BENCH为依赖推断任务提供了一个全面的基准测试平台。
解决学术问题
DI-BENCH解决了当前LLMs在依赖推断任务中的主要挑战,即如何准确识别和生成代码库所需的依赖项。依赖推断错误是导致生成代码库运行时错误的主要原因之一,DI-BENCH通过提供大规模的测试环境和执行评估,帮助研究人员识别模型在依赖推断中的不足,并为改进模型提供了明确的方向。该数据集填补了现有基准测试在依赖推断任务上的空白,推动了LLMs在端到端软件合成中的进一步发展。
衍生相关工作
DI-BENCH的推出催生了一系列相关研究工作,特别是在依赖推断和代码生成领域。例如,基于DI-BENCH的研究可以探索如何通过多模态输入(如代码和配置文件)提升模型的依赖推断能力。此外,DI-BENCH的执行评估框架也为其他代码生成基准测试提供了新的评估思路,推动了更多专注于代码可执行性的研究工作。这些衍生工作进一步扩展了DI-BENCH的应用范围,并为LLMs在软件工程中的实际应用提供了更多可能性。
以上内容由遇见数据集搜集并总结生成



