☰
SWE-bench 快速上手指南:用真实 GitHub Issue 评测大模型的编程能力
2026/9/26 2:01:55 网站建设 项目流程

SWE-bench 快速上手指南:用真实 GitHub Issue 评测大模型的编程能力

【免费下载链接】SWE-benchSWE-bench: Can Language Models Resolve Real-world Github Issues?项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench

SWE-bench 是用真实 GitHub Issue 考察大模型软件工程能力的评测基准:给它一个仓库和一个 issue,模型需要产出能修好它的补丁,评测器再在容器里跑测试,给出可复现的客观分数。

演示很聪明,上线就翻车?

你让新接入的编码助手修一个真实 bug:demo 里写得很漂亮,合进主干后既有测试却挂了三个。没有客观数据,"谁更强"只能靠感觉和宣传。这正是 SWE-bench 要回答的问题——模型在真实代码库上,到底能不能修好真实的 issue,且不误伤别的测试?

它解决什么,不解决什么

SWE-bench 解决一件事:给 LLM 的"读题—改码—过测试"能力打分,题库来自 GitHub 上的真实 issue 与 PR。它不解决另外几件事:不是代码补全或算法题评测,不替代你项目里的 CI 测试体系,也不会替你修 bug——它只负责"考",模型负责"答"。

SWE-bench 评测机制:容器化三步走

每个任务实例都带齐五样东西:仓库与base_commit、issue 描述、参考补丁(gold patch)、测试补丁,以及FAIL_TO_PASS/PASS_TO_PASS两组测试名。这是判断"修好了"的依据:前者必须从失败变通过,后者必须保持通过。

第一步:为实例构建专属 Docker 镜像

镜像构建逻辑在 swebench/image_builder/,把仓库固定在出 bug 的那个 commit 上,保证每次评测都在同一环境里进行,消除机器差异。

第二步:应用补丁并运行测试

容器里先应用测试补丁,再打上模型生成的model_patch,随后运行测试脚本并解析输出(各语言的解析器位于swebench/harness/log_parsers/)。两组测试都满足才算 resolved,结果按run_id和instance_id缓存。

SWE-bench 快速上手:跑通你的第一次评测

先装好 Docker,再安装项目并做环境自检:

git clone https://gitcode.com/GitHub_Trending/sw/SWE-bench cd SWE-bench pip install -e . # 用官方参考补丁(gold)验证环境,只跑 1 个实例 python -m swebench.harness.run_evaluation \ --max_workers 1 \ --instance_ids sympy__sympy-20590 \ --predictions_path gold \ --run_id validate-gold

跑通后你会看到logs/下出现镜像构建与评测日志,evaluation_results/里是最终结果,sympy 这个实例应显示为 resolved。这条 gold 验证是后续一切自定义评测的前置检查:环境不对,先别怪模型。

适用人群与使用边界

适合:需要在多个编码模型或助手之间做客观对比、验证微调效果、或把评测接入流水线的团队。不适合:机器不满足官方建议(至少 120GB 磁盘、16GB 内存、8 核 CPU 的 x86_64 环境),只关心代码补全质量的场景,或者不想碰 Docker 的人——整个评测流程都跑在容器里,--max_workers建议取min(0.75 * cpu_count, 24)。

数据集可按需求挑:full 全量 2,294 实例、lite 534 实例(快速迭代)、verified 500 个经工程师确认可解的实例,另有含截图的多模态版与覆盖 9 种语言、300 实例的多语言版,对照见 docs/guides/datasets.md。

进阶玩法:生成预测与离线复判

有了预测文件(每行含instance_id、model_patch的 JSONL)即可正式评测;也可以直接用内置 agent 生成预测,或基于已存日志重新打分,不用重起容器:

swebench infer verified -m gpt-5 -o preds -w 8 # 用 mini-SWE-agent 生成预测 swebench report <run_id> # 基于已存日志重新判定

想把结果提交到排行榜,走swebench submit package / publish / register三步即可;想给自己的仓库造新任务,swebench/collect/ 开源了完整的数据收集管线,见 docs/guides/collection.md。

回到开头的问题:助手修完 bug 后既有测试挂了,现在你有一条可量化的路。先用 gold 验证确认环境正确,再用同一套命令评自己的模型。分数背后是真实 issue 和真实测试,选型不用再凭感觉。

【免费下载链接】SWE-benchSWE-bench: Can Language Models Resolve Real-world Github Issues?项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询