SWE-RL基准评测指南:如何在SWE-bench Verified的500个问题上跑分 📅 2026/8/21 14:15:07 SWE-RL基准评测指南如何在SWE-bench Verified的500个问题上跑分【免费下载链接】swe-rl[NeurIPS25] Official codebase for SWE-RL: Advancing LLM Reasoning via Reinforcement Learning on Open Software Evolution项目地址: https://gitcode.com/gh_mirrors/sw/swe-rl想要评估大模型LLM解决真实软件工程问题的能力SWE-bench Verified 是业界公认的黄金标准评测集而 SWE-RL 正是围绕这 500 个真实 GitHub Issue 设计的开源基准评测与训练框架。本文是一份完整的 SWE-RL 基准评测指南手把手教你用 Agentless Mini 流水线在 SWE-bench Verified 的 500 个问题上完成跑分从环境搭建到结果生成一条龙讲清新手也能快速上手。为什么选择 SWE-RL 做 SWE-bench 评测SWE-RLNeurIPS25 官方代码库是首个将强化学习扩展到真实软件工程场景的开源项目其核心思想是让模型在开源软件演化数据上通过规则奖励信号学会推理与代码修复。它对普通用户最大的价值在于内置了一套开箱即用的Agentless Mini评测流水线——不需要复杂的 Agent 环境只要一个 OpenAI 兼容的推理后端就能在 SWE-bench Verified 上跑出自己的分数。核心组件提示词模板见 prompts.py基于序列相似度的奖励函数见 reward.py评测用的 Agentless Mini 代码全部位于 agentless_mini 目录。跑分前的准备工作3 个必做步骤第 1 步克隆仓库并安装依赖首先获取 SWE-RL 代码并安装 Agentless 相关依赖git clone https://gitcode.com/gh_mirrors/sw/swe-rl cd swe-rl pip install -e .[agentless]如需运行测试可改用pip install -e .[dev]。项目要求 Python 3.10。第 2 步启动模型推理服务Agentless Mini 支持任何 OpenAI 兼容接口。如果你用自己的模型推荐用 vLLM 部署pip install vllm vllm serve meta-llama/Llama-3.3-70B-Instruct --tensor-parallel-size 4 --port 8000第 3 步配置关键环境变量这是最容易踩坑的一步请逐项核对详细逻辑见 envs.pyexport OPENAI_API_KEYEmpty export OPENAI_BASE_URLhttp://localhost:8000/v1 export THINKINGno # 模型输出是否带 think 思考块 export PLAYGROUND_DIRtmp_agentless export PROJECT_FILE_LOC/path/to/swebench/repo_structures export TOKENIZER_MODELmeta-llama/Llama-3.3-70B-Instruct其中PROJECT_FILE_LOC指向 SWE-bench 仓库结构预解析文件TOKENIZER_MODEL用于统计上下文 token 数。最快速跑分方法基于 oracle 文件的修复评测如果你想先验证全链路是否通畅、快速拿到端到端结果的代理指标官方推荐用oracle 文件修复模式。它把 SWE-bench Verified 的 500 个问题按分片并行处理python -m swerl.agentless_mini.repair \ --loc_file resources/sweb_verified_gt_loc.jsonl \ --output_folder demo_gt_repair \ --shard 0 --num_shards 125 \ --num_samples 1 --temperature 0.0 \ --model meta-llama/Llama-3.3-70B-Instruct运行完毕后用重排脚本汇总出最终预测文件python -m swerl.agentless_mini.rerank \ --patch_folder demo_gt_repair \ --num_samples 1 \ --output_file demo_gt_repair/all_preds.jsonl \ --deduplicate分片说明500 个问题除以 125 个分片每个分片约 4 个实例。如果你有计算集群可以把不同分片分给不同节点并行跑速度大幅提升。完整评测流水线Localization Repair Rerank第一步文件级定位Localization不依赖 oracle 的完整跑分先从定位开始。该阶段让模型根据 Issue 描述从仓库结构里找出可疑文件NUM_SAMPLES1 COMMON_ARGS(--shard 0 --num_shards 125 --num_samples ${NUM_SAMPLES} \ --temperature 0.0 --model meta-llama/Llama-3.3-70B-Instruct) python -m swerl.agentless_mini.localize \ --output_file demo_agentless/loc.jsonl \ ${COMMON_ARGS[]}定位实现的核心逻辑在 localize.py它会过滤非 Python 文件与测试文件pytest 相关实例除外并支持num_samples 1时随机化采样。可选用定位性能检查脚本快速评估定位质量python -m swerl.agentless_mini.tools.check_loc_perf --locfile demo_agentless/loc.jsonl该脚本会统计文件级定位的覆盖率指标实现见 check_loc_perf.py。第二步生成修复补丁Repair修复阶段把定位到的文件内容整体喂给模型要求输出 SEARCH/REPLACE 格式的编辑块python -m swerl.agentless_mini.repair \ --loc_file demo_agentless/loc.jsonl \ --output_folder demo_agentless/repair \ ${COMMON_ARGS[]}修复逻辑见 repair.py它会自动校验输出语法、去除仅空行差异的无效补丁并把合法补丁转换为标准 git diff 格式。提示如果最终all_preds.jsonl全是空输出说明模型没有按 SEARCH/REPLACE 格式生成编辑建议更换基座模型或增加采样次数。第三步重排与投票Rerank对多个采样结果通过归一化补丁去重、多数投票选出每个问题的最佳补丁python -m swerl.agentless_mini.rerank \ --patch_folder demo_agentless/repair \ --num_samples ${NUM_SAMPLES} \ --output_file demo_agentless/all_preds.jsonl \ --deduplicate重排逻辑见 rerank.py支持配合回归测试、复现测试结果做更精细的排序相关模块正在逐步完善中。跑分参数怎么调推荐配置一览参数推荐值说明--num_shards125分片总数500 题均分--num_samples1贪心/ 5采样每个实例的采样次数越多越稳但越贵--temperature0.0贪心/ 0.8采样采样多样性控制--max_concurrent_requests64并发请求数按后端吞吐调整--max_tokens4096单次生成上限推理参数定义见 args.py数据集默认加载princeton-nlp/SWE-bench_Verified的 test 集通过shard/num_shards完成切分。常见问题与排错锦囊报错PROJECT_FILE_LOC must be set说明环境变量没配好检查第 3 步的每一项。输出全是空补丁模型没学会 SEARCH/REPLACE 格式换模型或加大num_samples。想并行加速把--shard分配给不同节点合并时用 rerank 统一汇总。如何理解奖励函数奖励基于预测补丁与 oracle 补丁的序列相似度计算可直接用swerl.core.reward.calculate_search_replace_reward在任意项目里复用见 reward.py。结语通过本文的 SWE-RL 基准评测指南你可以在 SWE-bench Verified 的 500 个问题上完成从定位、修复到重排的完整跑分闭环。无论是快速验证推理链路还是在自有模型上系统评测Agentless Mini 都提供了足够简单、可并行、可复现的解决方案。跑通之后不妨进一步研究 SWE-RL 的强化学习奖励设计让模型在你的数据上越训越强。【免费下载链接】swe-rl[NeurIPS25] Official codebase for SWE-RL: Advancing LLM Reasoning via Reinforcement Learning on Open Software Evolution项目地址: https://gitcode.com/gh_mirrors/sw/swe-rl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考