DI-BENCH: Benchmarking Large Language Models on Dependency Inference with Testable Repositories at Scale

📄 arXiv: 2501.13699v1 📥 PDF

作者: Linghao Zhang, Junhao Wang, Shilin He, Chaoyun Zhang, Yu Kang, Bowen Li, Jiaheng Wen, Chengxing Xie, Maoquan Wang, Yufan Huang, Elsie Nallipogu, Qingwei Lin, Yingnong Dang, Saravan Rajmohan, Dongmei Zhang, Qi Zhang

分类: cs.CL, cs.SE

发布日期: 2025-01-23


💡 一句话要点

DI-BENCH:大规模依赖推断基准测试,评估大语言模型在软件仓库上的性能

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 依赖推断 基准测试 软件仓库 代码生成

📋 核心要点

  1. 现有研究表明,LLM生成的代码仓库中,依赖问题导致了超过40%的运行时错误,依赖推断的准确性亟待提高。
  2. DI-BENCH旨在提供一个全面的基准测试,通过包含多种编程语言和测试环境的大规模仓库集合,评估LLM的依赖推断能力。
  3. 实验结果表明,即使是当前表现最佳的LLM,在依赖推断方面的执行通过率也仅为42.9%,表明该领域仍有显著的改进空间。

📝 摘要(中文)

本文提出了DI-BENCH,一个大规模的基准测试和评估框架,专门用于评估大型语言模型(LLM)在依赖推断方面的能力。依赖推断是指识别一个仓库成功运行所需的内部组件和外部包。现有研究表明,与依赖相关的问题导致了生成仓库中超过40%的运行时错误。DI-BENCH包含581个具有测试环境的仓库,涵盖Python、C#、Rust和JavaScript。通过广泛的文本和基于执行的指标实验表明,当前最佳模型的执行通过率仅为42.9%,表明仍有很大的改进空间。DI-BENCH为评估LLM在仓库上的性能建立了一个新的视角,为更强大的端到端软件合成铺平了道路。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)在软件仓库中进行依赖推断时准确率低的问题。现有方法无法准确识别仓库运行所需的内部组件和外部包,导致生成的代码仓库运行时错误率高,严重影响了软件开发的自动化程度。

核心思路:论文的核心思路是构建一个大规模、多语言的基准测试集DI-BENCH,用于系统性地评估LLM在依赖推断方面的能力。通过在真实仓库上进行测试,可以更准确地反映LLM在实际软件开发场景中的表现。

技术框架:DI-BENCH框架主要包含以下几个部分:1) 收集来自不同编程语言(Python, C#, Rust, JavaScript)的开源仓库;2) 为每个仓库构建可测试的运行环境;3) 设计文本和基于执行的评估指标,用于衡量LLM推断的依赖是否正确;4) 使用不同的LLM在DI-BENCH上进行测试,并分析结果。

关键创新:DI-BENCH的关键创新在于其大规模和多语言的特性,以及基于执行的评估指标。与以往的研究相比,DI-BENCH能够更全面、更真实地评估LLM在依赖推断方面的能力。此外,DI-BENCH提供了一个标准化的测试平台,方便研究人员进行比较和改进。

关键设计:DI-BENCH包含了581个仓库,覆盖了Python、C#、Rust和JavaScript四种编程语言。评估指标包括文本相似度和执行通过率。执行通过率是指LLM推断的依赖安装完成后,仓库的测试用例能够成功通过的比例。论文没有详细说明具体的参数设置、损失函数或网络结构,因为DI-BENCH主要是一个基准测试集,而不是一个具体的模型。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,当前最佳的LLM在DI-BENCH上的执行通过率仅为42.9%,远低于实际应用的需求。这一结果突显了现有LLM在依赖推断方面的不足,并表明DI-BENCH为该领域的研究提供了一个有价值的评估平台。DI-BENCH的发布将推动LLM在软件开发领域的进一步发展。

🎯 应用场景

DI-BENCH可用于评估和改进大型语言模型在软件开发中的应用,例如代码生成、代码补全和自动化构建。通过提高依赖推断的准确性,可以减少运行时错误,提高软件开发的效率和质量。该基准测试集还可以促进对LLM在软件工程领域能力更深入的研究。

📄 摘要(原文)

Large Language Models have advanced automated software development, however, it remains a challenge to correctly infer dependencies, namely, identifying the internal components and external packages required for a repository to successfully run. Existing studies highlight that dependency-related issues cause over 40\% of observed runtime errors on the generated repository. To address this, we introduce DI-BENCH, a large-scale benchmark and evaluation framework specifically designed to assess LLMs' capability on dependency inference. The benchmark features 581 repositories with testing environments across Python, C#, Rust, and JavaScript. Extensive experiments with textual and execution-based metrics reveal that the current best-performing model achieves only a 42.9% execution pass rate, indicating significant room for improvement. DI-BENCH establishes a new viewpoint for evaluating LLM performance on repositories, paving the way for more robust end-to-end software synthesis.