SWE-bench-java-verified
收藏arXiv2024-08-26 更新2024-08-28 收录
下载链接:
https://huggingface.co/datasets/Daoguang/Multi-SWE-bench
下载链接
链接失效反馈官方服务:
资源简介:
SWE-bench-java-verified是由中国科学院、北京大学、华为有限公司等机构联合创建的Java版本GitHub问题解决基准数据集。该数据集包含91个高质量问题实例,涵盖6个流行的GitHub Java仓库,旨在评估大型语言模型在Java项目中自动解决问题的能力。数据集的创建过程包括候选仓库收集、问题实例爬取、运行时环境确定、失败到通过测试提取和基于问卷的手动验证。该数据集主要应用于软件工程领域,特别是自动化编程和问题解决。
SWE-bench-java-verified is a Java-version GitHub problem-solving benchmark dataset jointly created by institutions including the Chinese Academy of Sciences, Peking University, Huawei Technologies Co., Ltd., and other organizations. This dataset includes 91 high-quality problem instances spanning 6 popular GitHub Java repositories, and is designed to evaluate the capability of large language models (LLMs) to automatically solve problems in Java-based software projects. Its development process covers candidate repository collection, problem instance crawling, runtime environment determination, extraction of failing-to-passing test cases, and questionnaire-based manual verification. This dataset is primarily applied in the field of software engineering, especially for automated programming and problem-solving.
提供机构:
中国科学院, 北京大学, 华为有限公司, 灵智之光有限公司
创建时间:
2024-08-26
搜集汇总
数据集介绍

构建方式
SWE-bench-java-verified数据集的构建过程遵循了SWE-bench的框架,涵盖了五个关键阶段。首先,从GitHub API和Defects4J数据库中收集了70个候选Java仓库,经过筛选后保留了19个开源Java仓库。其次,通过爬取这些仓库的Pull Request,筛选出与问题相关的实例,并获取详细的实例信息。接着,通过代码阅读和试运行确定了每个问题的运行环境,包括构建工具、JDK版本和编译命令。然后,通过对比测试结果提取了失败到通过的测试用例,进一步筛选出137个问题实例。最后,邀请10名经验丰富的Java开发者进行问卷验证,最终保留了91个高质量问题实例。
特点
SWE-bench-java-verified数据集具有显著的特点。首先,它涵盖了6个广泛使用的Java开源仓库,涉及数据序列化、Web服务、数据格式和容器工具等多个领域,确保了数据集的多样性和代表性。其次,数据集中的问题实例经过严格的手动验证,确保了问题描述的清晰性和测试覆盖的全面性。此外,数据集中的问题复杂度较高,涉及多文件修改、多行代码变更以及多个函数的调整,能够有效评估大语言模型在Java项目中的问题解决能力。
使用方法
SWE-bench-java-verified数据集主要用于评估大语言模型在Java项目中的问题解决能力。用户可以通过提供的Docker环境进行评估,该环境包含了预下载的仓库和依赖项,确保了评估的便捷性和一致性。评估过程中,用户可以使用SWE-agent等经典方法,结合GPT-4o、DeepSeekV2等先进模型进行测试。评估结果通过Resolved Rate(%)进行衡量,即成功解决的问题比例。此外,数据集还提供了详细的统计信息和分布图,帮助用户更好地理解数据集的构成和特点,从而进行更有针对性的模型优化和研究。
背景与挑战
背景概述
SWE-bench-java-verified数据集由中科院、北京大学、华为公司等机构的研究人员共同开发,旨在为Java编程语言提供一个用于评估大型语言模型(LLMs)在GitHub问题解决任务中的基准。该数据集是SWE-bench的多语言扩展,专注于Java领域,旨在填补Python之外其他编程语言在自动化软件工程任务中的评估空白。SWE-bench-java-verified的构建基于19个开源Java库的1,979个问题实例,经过严格的手动验证和筛选,最终形成了包含91个高质量问题实例的数据集。该数据集的发布不仅为Java生态系统中的自动化问题解决提供了评估工具,还为多语言支持的进一步扩展奠定了基础。
当前挑战
SWE-bench-java-verified数据集的构建面临多重挑战。首先,从GitHub上收集和筛选适合的Java库是一个复杂的过程,需要排除非主要语言的库,并确保库的流行性和代表性。其次,问题实例的爬取和筛选涉及大量的手动工作,尤其是对问题描述的清晰度、测试覆盖率以及潜在缺陷的评估,这些都需要经验丰富的Java开发者参与。此外,构建过程中还遇到了诸如基础提交爬取错误、重复下载库和依赖项、以及增量编译导致的编译失败等问题,这些问题需要通过改进脚本和优化编译流程来解决。最后,评估LLMs在Java问题解决任务中的表现时,模型的自然语言理解能力和代码生成质量成为关键挑战,尤其是在处理复杂问题描述时,模型的表现差异显著。
常用场景
经典使用场景
SWE-bench-java-verified 数据集的经典使用场景主要集中在评估大型语言模型(LLMs)在解决 Java 项目中的 GitHub 问题时的能力。该数据集通过提供真实的 Java 项目问题及其对应的修复补丁,帮助研究人员和开发者测试和验证模型在自动化问题解决任务中的表现。通过模拟真实的软件工程环境,SWE-bench-java-verified 为模型提供了一个全面的测试平台,以评估其在处理复杂代码库中的问题时的准确性和效率。
实际应用
SWE-bench-java-verified 数据集在实际应用中具有广泛的前景,特别是在软件开发和维护领域。通过提供真实的 Java 项目问题及其解决方案,该数据集可以帮助开发团队自动化处理 GitHub 上的问题,从而提高开发效率和代码质量。此外,该数据集还可以用于培训和优化自动化代码修复工具,帮助企业在减少人工干预的同时,提升软件维护的效率和准确性。其开放性和可扩展性也为企业和研究机构提供了定制化解决方案的可能性。
衍生相关工作
SWE-bench-java-verified 数据集的发布催生了一系列相关研究工作,特别是在多语言问题解决和自动化编程领域。基于该数据集,研究人员开发了多种评估方法和模型,如 SWE-agent 框架,用于增强 LLMs 在软件工程任务中的表现。此外,该数据集还激发了对多语言支持的进一步研究,推动了诸如 Multilingual-HumanEval 和 HumanEval-X 等跨语言评估基准的发展。这些衍生工作不仅扩展了 SWE-bench-java-verified 的应用范围,还为未来的自动化编程研究提供了新的方向。
以上内容由遇见数据集搜集并总结生成



