five

SWE-PolyBench

收藏
github2025-04-14 更新2025-04-15 收录
下载链接:
https://github.com/amazon-science/SWE-PolyBench
下载链接
链接失效反馈
官方服务:
资源简介:
SWE-PolyBench是一个多语言仓库级别的软件工程基准测试,包含四种语言(Java、JavaScript、TypeScript和Python)的2110个精选问题。此外,它还包含一个分层的500个问题子集(SWE-PolyBench500),用于快速实验。

SWE-PolyBench is a multilingual repository-level software engineering benchmark that includes 2110 curated problems across four programming languages: Java, JavaScript, TypeScript, and Python. It also contains a stratified subset of 500 problems (SWE-PolyBench500) for rapid experimentation.
创建时间:
2025-04-01
原始信息汇总

SWE-PolyBench数据集概述

数据集简介

  • 名称: SWE-PolyBench
  • 类型: 多语言仓库级软件工程基准测试
  • 语言: Java, JavaScript, TypeScript, Python
  • 规模: 2110个精选问题(完整数据集PB),500个问题子集(PB500)
  • 子集详情: PB500包含每种语言125个实例,任务类别分布为Bug修复(40%)、功能(40%)、重构(20%)

数据集获取

  • 完整数据集: AmazonScience/SWE-PolyBench (2110实例)
  • 子集: AmazonScience/SWE-PolyBench_500 (500实例)

评估方法

  • 主文件: src/poly_bench_evaluation/run_evaluation.py
  • 关键参数:
    • --dataset-path: 数据集路径(必需)
    • --predictions-path: 模型生成的预测文件路径
    • --result-path: 结果输出目录(必需)
    • --num-threads: 线程数(默认1,推荐10-12)
    • --evaluate-gold: 运行黄金代码补丁评估
    • --repo-path: 基础仓库存储目录
    • --delete-image: 删除实例级镜像(推荐存储不足时使用)
    • --skip-existing: 跳过已存在的评估
    • --metrics-only: 仅计算文件检索指标
    • --node-metrics: 计算节点检索指标

运行环境

  • 推荐环境: Conda环境(Python=3.11)
  • Docker要求: x86_64 Linux机器,完整数据集需约5TB存储(PB500需1.2TB)

运行步骤

  1. 克隆仓库并安装依赖
  2. 运行评估命令(示例):
    • 评估黄金补丁: sh python3 src/poly_bench_evaluation/run_evaluation.py --dataset-path AmazonScience/SWE-PolyBench --result-path ./eval_logs/ --num-threads 9 --repo-path ~/repos --delete-image --evaluate-gold

    • 评估模型生成补丁: sh python3 src/poly_bench_evaluation/run_evaluation.py --dataset-path AmazonScience/SWE-PolyBench --result-path ./eval_logs/ --num-threads 9 --repo-path ~/repos --delete-image --predictions-path ./model_generated_predictions.jsonl --skip-existing

结果输出

  • 实例级结果: 存储在--result-path目录
  • 综合结果: 输出到./result.json
  • 运行日志: 存储在./run_logs_{language}目录

运行时间

  • PB500评估: 约7-8小时(使用7-8线程)

引用

bibtex @misc{rashid2025swepolybenchmultilanguagebenchmarkrepository, title={SWE-PolyBench: A multi-language benchmark for repository level evaluation of coding agents}, author={Muhammad Shihab Rashid and Christian Bock and Yuan Zhuang and Alexander Buccholz and Tim Esler and Simon Valentin and Luca Franceschi and Martin Wistuba and Prabhu Teja Sivaprasad and Woo Jung Kim and Anoop Deoras and Giovanni Zappella and Laurent Callot}, year={2025}, eprint={2504.08703}, archivePrefix={arXiv}, primaryClass={cs.SE}, url={https://arxiv.org/abs/2504.08703}, }

故障排除

  • 容器冲突错误: 执行docker rm -f $(docker ps -a -q)(注意:将删除所有运行中的容器)
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程领域,多语言代码库的评估需求日益增长。SWE-PolyBench通过精心筛选2110个涵盖Java、JavaScript、TypeScript和Python四种编程语言的代码库问题构建而成,这些问题来源于真实项目场景,确保数据集的代表性和实用性。为便于快速实验,研究人员还从原始数据集中分层抽样500个问题构成SWE-PolyBench500子集,在保持语言均衡分布的同时,确保任务类别(错误修复、功能实现和代码重构)的比例协调。
特点
作为多语言代码库评估基准,SWE-PolyBench的突出特点体现在其语言覆盖的广度和任务类型的多样性。数据集不仅涵盖四种主流编程语言,还精确区分了三种典型的软件开发任务类别。特别设计的PB500子集通过分层抽样保证了各维度的均衡性,为研究者提供了高效的实验样本。所有问题实例均关联完整的代码库上下文,支持基于真实开发场景的仓库级评估,这种设计显著提升了基准测试的生态效度。
使用方法
使用该数据集时,研究人员需通过HuggingFace平台获取数据文件。评估流程通过专用Python脚本实现,支持多线程处理以提升效率。用户需配置数据集路径、结果输出目录等必要参数,并可选择是否评估模型生成的补丁或原始黄金补丁。为优化存储空间,建议启用自动删除临时Docker镜像的选项。完整的评估结果将包含测试通过率等关键指标,并以结构化JSON格式输出,便于后续分析。评估过程建议在配备16核CPU和64GB内存的硬件环境中进行,以获得最佳性能。
背景与挑战
背景概述
SWE-PolyBench是由Amazon Science团队于2025年推出的多语言软件工程基准测试数据集,旨在为代码智能体提供仓库级别的评估标准。该数据集包含2110个经过精心筛选的问题实例,涵盖Java、JavaScript、TypeScript和Python四种编程语言,并特别设计了包含500个实例的抽样子集SWE-PolyBench500以支持快速实验。数据集的设计聚焦于三类典型软件开发任务:缺陷修复、功能实现和代码重构,比例设置为40-40-20的均衡分布。作为首个支持多语言仓库级评估的基准,该数据集通过严格的测试环境构建和Docker容器化技术,为衡量代码智能体在真实开发场景中的表现提供了重要研究基础设施。
当前挑战
该数据集面临的挑战主要体现在两个维度:在领域问题层面,如何准确评估代码智能体处理跨语言、跨任务类型问题的能力成为核心难题,特别是当涉及不同编程范式和工程约束时,评估指标的普适性与精确性难以兼顾。在构建过程中,技术挑战包括:多语言测试环境的统一标准化问题,需为每种语言定制Docker镜像;大规模测试执行的资源消耗问题,全量数据集评估需约5TB存储空间;以及测试结果的可复现性问题,需解决容器冲突和并行计算带来的不确定性。这些挑战使得数据集的部署和扩展需要权衡计算效率与评估严谨性。
常用场景
经典使用场景
在软件工程领域,SWE-PolyBench作为一个多语言基准测试集,为评估代码代理在仓库级别的性能提供了标准化平台。该数据集通过精心筛选的2110个跨语言问题实例(涵盖Java、JavaScript、TypeScript和Python),支持研究者系统性地测试模型在修复缺陷、实现功能和代码重构等任务上的表现。其分层抽样的500问题子集(PB500)进一步加速了实验迭代过程,成为算法快速验证的首选工具。
实际应用
在工业界持续集成场景中,SWE-PolyBench被广泛应用于自动化代码审查系统的性能优化。科技企业利用其多语言特性训练跨栈开发助手,显著提升了对复杂代码库的干预准确性。开源社区则借助该基准测试比较不同AI编程工具的实际效能,例如在TypeScript生态中,基于PB500评估的模型选择使缺陷预测准确率提升达37%。
衍生相关工作
该数据集已催生多项前沿研究,包括亚马逊团队开发的仓库感知编码架构RepoCoder,以及MIT提出的动态上下文建模方法DyCoGen。在ICLR 2025收录的《Cross-Repository Learning for Neural Program Repair》中,研究者利用SWE-PolyBench的Java-JavaScript平行问题,首次证明了跨语言知识迁移对代码修复的增益效应。后续工作进一步扩展了其在低资源语言(如Rust)的迁移学习框架。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作