EnvBench: A Benchmark for Automated Environment Setup
作者: Aleksandra Eliseeva, Alexander Kovrigin, Ilia Kholkin, Egor Bogomolov, Yaroslav Zharov
分类: cs.LG, cs.SE
发布日期: 2025-03-18
备注: Accepted at the DL4Code workshop at ICLR'25
🔗 代码/项目: GITHUB
💡 一句话要点
EnvBench:用于自动化环境配置的综合基准测试,涵盖Python和JVM项目。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 环境配置 自动化 基准测试 大型语言模型 软件工程 Python JVM
📋 核心要点
- 现有环境配置方法在小型数据集上评估,无法充分捕捉实际配置挑战。
- EnvBench提供包含Python和JVM项目的综合基准,专注于真实配置难题。
- 通过静态分析和编译检查实现自动评估指标,并评估了多种LLM方法。
📝 摘要(中文)
大型语言模型(LLMs)的最新进展使研究人员能够专注于软件工程领域中实际的仓库级别任务。本文考虑了自动化软件仓库工作的基石任务——环境配置,即在系统上配置特定于仓库的开发环境的任务。现有的环境配置研究引入了创新的代理策略,但它们的评估通常基于小型数据集,这些数据集可能无法捕捉到实践中遇到的所有配置挑战。为了解决这个差距,我们引入了一个全面的环境配置基准EnvBench。它包含329个Python和665个基于JVM(Java、Kotlin)的仓库,重点关注那些存在真正配置挑战的仓库,排除那些可以通过简单的确定性脚本完全配置的项目。为了进一步扩展基准测试并用于模型调优,我们实现了两个自动指标:Python中缺失导入的静态分析检查和JVM语言的编译检查。我们通过评估三种环境配置方法(包括一个简单的零样本基线和两种代理工作流程)来证明基准测试的适用性,我们使用两个强大的LLM骨干GPT-4o和GPT-4o-mini对其进行测试。最好的方法成功配置了6.69%的Python仓库和29.47%的JVM仓库,这表明EnvBench对于当前的方法仍然具有挑战性。我们的基准测试套件可在https://github.com/JetBrains-Research/EnvBench公开获得。数据集和实验轨迹可在https://jb.gg/envbench获得。
🔬 方法详解
问题定义:论文旨在解决自动化软件仓库环境配置的问题。现有方法依赖小型数据集,无法充分代表实际软件仓库配置的复杂性和多样性。简单的确定性脚本无法解决所有配置问题,需要更智能的自动化方法。
核心思路:论文的核心思路是构建一个更全面、更具挑战性的基准测试集EnvBench,用于评估和改进自动化环境配置方法。通过包含大量真实世界的Python和JVM项目,并排除易于配置的项目,来确保基准测试的难度和代表性。
技术框架:EnvBench包含以下主要组成部分:1) 一个包含329个Python和665个JVM项目的仓库集合;2) 自动评估指标,包括Python的缺失导入静态分析和JVM的编译检查;3) 用于评估不同环境配置方法的实验框架,包括零样本基线和基于LLM的代理工作流程。
关键创新:EnvBench的关键创新在于其数据集的规模和难度,以及自动评估指标的引入。与现有的小型数据集相比,EnvBench更能代表实际软件仓库配置的挑战。自动评估指标使得可以大规模地评估和比较不同的环境配置方法。
关键设计:论文的关键设计包括:1) 选择具有挑战性的仓库,排除易于配置的项目;2) 实现自动评估指标,用于评估配置的正确性;3) 使用GPT-4o和GPT-4o-mini等强大的LLM作为代理的骨干,探索基于LLM的自动化配置方法。
🖼️ 关键图片
📊 实验亮点
实验结果表明,即使使用GPT-4o等强大的LLM,最佳方法也仅能成功配置6.69%的Python仓库和29.47%的JVM仓库,表明EnvBench对现有方法仍然具有挑战性。这突显了自动化环境配置领域仍有很大的改进空间。
🎯 应用场景
EnvBench可用于评估和改进自动化环境配置工具,提高软件开发效率。它可以帮助开发者快速搭建开发环境,减少手动配置的时间和精力。此外,该基准测试还可以促进LLM在软件工程领域的应用,推动自动化软件开发技术的发展。
📄 摘要(原文)
Recent advances in Large Language Models (LLMs) have enabled researchers to focus on practical repository-level tasks in software engineering domain. In this work, we consider a cornerstone task for automating work with software repositories-environment setup, i.e., a task of configuring a repository-specific development environment on a system. Existing studies on environment setup introduce innovative agentic strategies, but their evaluation is often based on small datasets that may not capture the full range of configuration challenges encountered in practice. To address this gap, we introduce a comprehensive environment setup benchmark EnvBench. It encompasses 329 Python and 665 JVM-based (Java, Kotlin) repositories, with a focus on repositories that present genuine configuration challenges, excluding projects that can be fully configured by simple deterministic scripts. To enable further benchmark extension and usage for model tuning, we implement two automatic metrics: a static analysis check for missing imports in Python and a compilation check for JVM languages. We demonstrate the applicability of our benchmark by evaluating three environment setup approaches, including a simple zero-shot baseline and two agentic workflows, that we test with two powerful LLM backbones, GPT-4o and GPT-4o-mini. The best approach manages to successfully configure 6.69% repositories for Python and 29.47% repositories for JVM, suggesting that EnvBench remains challenging for current approaches. Our benchmark suite is publicly available at https://github.com/JetBrains-Research/EnvBench. The dataset and experiment trajectories are available at https://jb.gg/envbench.