ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

SWE-bench:3 步跑出编码模型“真实修 Bug 能力“评分——GitHub Issue 修复基准完整上手指南

SWE-bench:3 步跑出编码模型“真实修 Bug 能力“评分——GitHub Issue 修复基准完整上手指南 SWE-bench3 步跑出编码模型真实修 Bug 能力评分——GitHub Issue 修复基准完整上手指南【免费下载链接】SWE-benchSWE-bench: Can Language Models Resolve Real-world Github Issues?项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench如果你对比过几款编码模型大概率碰过这种尴尬补全基准分很高拿到真实项目里却连一个 issue 都修不动。SWE-bench 就是为这个落差而建的评测框架它取真实的 GitHub issue 和对应时间点的代码库让语言模型生成修复补丁再在隔离的 Docker 环境里应用补丁、跑仓库自带的测试用测试通过与否给出判定。它适合需要客观比较大模型软件工程能力的开发者与研究者。项目初览SWE-bench 做什么给谁用SWE-bench 是普林斯顿团队论文 Can Language Models Resolve Real-World Github Issues?ICLR 2024 Oral的官方代码与数据集。任务设定只有一句话给定一个 issue 和对应代码库模型需要产出能解决问题的代码补丁patch。它和多数代码补全基准的差别在于验证方式补全题只看答案对不对而 SWE-bench 是端到端验证——补丁必须真实应用到仓库、在容器里跑通该仓库自己的测试套件结果是可复现的解决/未解决而不是人工判分的相似度。关键基础信息主要语言Python要求 3.10PyPI 包名swebench当前版本 5.0.2协议MIT安装方式克隆仓库后pip install -e .运行环境本地评测依赖 Docker官方建议 x86_64 机器120GB 空闲磁盘、16GB 内存、8 核 CPU数据集完整集 2294 个实例Lite 534 个Verified 500 个工程师确认可解Multimodal 100 dev 500 testMultilingual 300 个9 种语言、42 个仓库详见 docs/guides/datasets.md快速上手三步跑起来第一步安装 Docker 并确认守护进程在运行本地评测的每一步都依赖它。第二步克隆仓库并从源码安装装完后swebench命令即可用git clone https://gitcode.com/GitHub_Trending/sw/SWE-bench cd SWE-bench pip install -e .第三步用官方参考补丁gold patch验证环境正确性只跑一个实例耗时短swebench eval verified --gold -i sympy__sympy-20590 --run-id validate-gold跑完预期看到当前目录生成logs/build_images镜像构建日志和logs/run_evaluation评测日志最终报告写入evaluation_results目录关键字段是 Instances resolved 和 Resolution rate。gold 验证这条实例应当显示已解决——这说明镜像、补丁应用、测试运行整条链路都正常。一点说明v5 CLI 默认从镜像仓库拉取预构建镜像M 系列 Mac 等 ARM 系统需要额外用--task-repo指定本地任务仓库通过 Docker Buildx 在本地构建镜像README 中有对应示例。核心能力拆解Docker 化评测引擎补丁必须真的修好才算数它做什么为每个任务实例安装仓库到指定的 base_commit应用测试补丁与模型补丁运行测试脚本从日志解析每个测试的通过状态并评分——全链路成功且所有目标测试通过才记 1 分任何一步失败记 0 分。解决什么问题不同机器上的 Python 版本、依赖差异会让评测结果互相不可比容器化把环境固定住任何人复现都得到同样的结论。怎么实现swebench/harness/ 负责镜像构建、容器生命周期管理和并行调度-j参数控制并行数官方建议不超过min(0.75 * cpu_count, 24)。# 提交模型预测preds.jsonl 为模型生成的补丁8 个实例并行评测 swebench eval verified -p preds.jsonl --run-id my-run -j 8多变体数据集与双重验证先保证数据本身干净它做什么提供 5 个数据集变体从快速迭代Lite到高质量对比Verified再到跨语言Multilingual按需选择评测规模。解决什么问题完整集跑一轮成本高而且不是每个 issue 都保证可解——如果数据本身带噪声比如参考补丁都跑不过测试评测结果就不公平。怎么实现每个实例入库前走一遍双重验证——先应用 test_patch 确认目标测试确实处于失败状态FAIL_TO_PASS再应用 gold patch 确认测试转为通过PASS_TO_PASS两步都成功该实例才可用于评测。from datasets import load_dataset # 加载专家验证集500 个经工程师确认可解的 issue带难度分级字段 sbv load_dataset(SWE-bench/SWE-bench_Verified, splittest)推理生成与报告重算生成和评分解耦它做什么推理阶段把 repo issue 交给模型生成补丁swebench infer内置 mini-SWE-agent 可直接调用 API 模型批量生成预测swebench report则不启动任何容器只从已保存的日志重新计分。解决什么问题模型跑一次推理成本很高但如果你想调整评分口径或修复某个解析 bug不必把容器评测整轮重跑一遍。预测文件是 JSONL每行一个实例核心就三个字段{instance_id: sympy__sympy-20590, model_name_or_path: gpt-5, model_patch: diff --git a/...}边界说明它擅长什么不擅长什么擅长不擅长 / 限制端到端、可复现地比较模型的修 bug 能力判定标准是仓库自己的测试无人工判分资源消耗大官方建议 x86_64 机器、120GB 空闲磁盘、16GB 内存、8 核arm64 支持仍标注为实验性数据集变体多Lite/Verified 适合快速迭代和日常对比结果缓存容易踩坑缓存键只有run_idinstance_id换个补丁复用同一 run_id 会直接返回上次的结果支持 Modal 云端评测结果可发布到 Hugging Face bucket便于学术场景横向对比覆盖范围有偏主集以 Python 仓库为主跨语言能力只由 300 实例的 Multilingual 子集衡量Multimodal 的 test 集需在官方渠道计分本地拿不到 gold 补丁进阶用法与常见坑两个最常用的进阶配置只评测指定实例swebench eval verified -p preds.jsonl -i astropy__astropy-14539 -i sympy__sympy-20590-i可重复调试时不必整轮跑。不启容器重新计分swebench report run_id -d verified只读取已保存的日志重算报告镜像缓存级别可用--cache_levelnone/base/env/instance 四档调节env档配合清理可省磁盘但每轮更慢细节见 docs/faq.md。三个高频问题⚠️ 改了补丁却得到旧结果几乎总是 run_id 复用了缓存命中上次评测。重新评测请换一个--run-id。磁盘被 Docker 占满先docker system prune清理无用镜像和容器Docker Desktop 用户记得把虚拟磁盘扩到约 120GB 空闲。镜像拉不下来或 ARM 上构建失败本地加--task-repo指向任务仓库用 Buildx 构建构建失败会被如实报告只有存在已发布镜像时才会回退使用。完整参数以swebench eval --help为准评测细节可查 docs/guides/evaluation.md。SWE-bench 把这个编码模型到底行不行变成一组可复现的数字同样的容器、同样的测试、同样的判分口径换台机器也能对上。如果你正在选型编码模型或准备一份模型对比报告建议从 Verified 或 Lite 开始试。下一步动作克隆仓库、pip install -e .然后跑swebench eval verified --gold -i sympy__sympy-20590 --run-id validate-gold先确认整条评测链路在你的机器上是通的。【免费下载链接】SWE-benchSWE-bench: Can Language Models Resolve Real-world Github Issues?项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表