ARTICLE DETAIL

资讯详情

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

SWE-bench 完整指南:用真实 GitHub Issue 评测你的 AI 编程助手

SWE-bench 完整指南:用真实 GitHub Issue 评测你的 AI 编程助手 SWE-bench 完整指南用真实 GitHub Issue 评测你的 AI 编程助手【免费下载链接】SWE-benchSWE-bench: Can Language Models Resolve Real-world Github Issues?项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-benchAI 编程助手在很多团队已经成了日常工具但各家发布的评测数字很难直接对比数据集不一样测法不一样环境也不一样。SWE-bench 就是为了解决这个空白它把开源项目里真实的 GitHub Issue 当考题只给语言模型问题描述和代码库让它产出一个修复补丁再把这个补丁放进隔离的 Docker 容器里跑项目真实的测试套件通过才计分。项目速览一句话看懂 SWE-bench 评测框架它回答的问题是语言模型能不能解决真实世界的 GitHub IssueICLR 2024 Oral。每个实例包含五样东西仓库、base commit问题出现时的代码快照、问题描述、测试补丁新加的、用来验证修复的测试和 gold patch被验证过能通过的参考补丁。官方数据集有 5 个变体变体规模适合场景SWE-bench 全集2,294 个实例综合能力评估Lite534 个实例快速迭代、跑通流程Verified500 个实例人工确认可解模型排名对比Multimodaldev 100 / test 500涉及 UI 截图的任务Multilingual300 个实例9 种语言、42 个仓库跨语言能力核心能力有四条容器化评测每个实例在独立 Docker 镜像里评测结果可复现双重校验任务实例先过测试补丁 gold 补丁两道检查才入正集多语言解析内置 Python、JS、Rust、Java 等 8 种语言的测试输出解析器完整工具链数据收集、推理、评测、出报告一套 CLI 搞定为什么该把评测换到 SWE-bench三组对照就能看出差异题目来源以前是自造算法题或手写小项目容易被针对性刷分现在题目来自真实项目里修完并合并的 Issue问题描述带噪音代码库体量大。运行环境以前本地跑测试套件在我机器上是好的很常见现在每个实例在独立镜像里检出到 base commit环境被钉死。判定标准以前看模型说修好了没有现在看测试日志——FAIL_TO_PASS修复前必挂、修复后必过的用例全过PASS_TO_PASS原来就过的用例不许挂全满足得 1 分否则 0 分。拆解 SWE-bench 三层架构数据层、执行层、判定层数据层是质量守门员。每个任务实例都要过双重校验先按 base commit 装好仓库、打上测试补丁跑一遍测试再叠加 gold 补丁跑第二遍。两关都过才算有效实例任何一步失败直接丢弃。执行层是标准化工位。评测引擎为每个实例构建专用镜像把代码检出到 base commit应用预测补丁和测试补丁然后执行测试脚本。中间任何一步没跑完这个实例就判未解决。判定层最抠细节。不同语言的测试输出格式不同项目按语言内置了解析器见 log_parsers 目录grading.py里还有防御性逻辑比如检查测试运行器是否真的启动过防止测试套件静默没跑却被判全过蒙混得分。5 分钟上手新手、研究者、工程团队三条路径新手先别急着解题先验证流程。装好环境、确认 Docker 在跑然后用 gold 补丁做自检git clone https://gitcode.com/GitHub_Trending/sw/SWE-bench cd SWE-bench pip install -e . swebench eval verified --gold -i sympy__sympy-20590 --run-id validate-gold这条自检报出 resolved说明你的环境没问题接下来就能换上自己模型的预测结果。研究者按目标选数据集——Lite 做冒烟Verified 做模型对比带 difficulty 字段方便分档分析论文用全集。实例的完整字段结构见数据集指南。工程团队关心的是可复现和成本。用swebench images build提前构建镜像-j控制并行建议小于 min(0.75 × 核数, 24)日志已经跑过就swebench report直接重打分不用再起容器。落地与扩展两个最有用的接入点换成自己的预测把模型产出的补丁整理成 predictions 文件一条swebench eval verified -p 预测文件 --run-id run id -j 8就能出分。新增语言支持log_parsers 下每种语言一个独立解析模块注册仓库到解析器的映射后汇入统一注册表新增一种语言的测试输出格式成本就是写一个解析模块。避坑指南跑 SWE-bench 的 5 个常见误区 ⚠️别复用同一个 run_id引擎按run_id instance_id缓存结果换了新预测但不改 run_id拿到的是旧缓存。磁盘别省官方建议 x86_64、120GB 空闲磁盘、16GB 内存、8 核起步Docker Desktop 用户还要调大虚拟磁盘。ARM 机器属于实验性支持Apple Silicon 需要用--task-repo本地构建镜像。gold patch 别偷看数据集里就有这个字段解题时看了等于作弊评估结果作废。区分没解决和环境挂了超时、环境损坏会被判定层归为基础设施失败分析结果时别算到模型头上。收尾现在就能做的 3 件事SWE-bench 的价值是把感觉它变聪明了换成测试通过了。今天就可以做三件事跑通上面那组 gold 补丁自检命令。挑一个符合目标的数据集变体翻几个实例的问题描述。给自己的模型生成 10 个实例的预测把 eval report 全流程走一遍。【免费下载链接】SWE-benchSWE-bench: Can Language Models Resolve Real-world Github Issues?项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表