MetaFAIR &MetaTBD Lab&卡内基等:朝着“超级智能软件工程 Agent”迈出了第一步。
SSR(Self-play SWE-RL)首次让大模型在“零人类标注”的情况下,仅靠自生成 Bug + 自修复的左右互搏,就能在 SWE-bench 系列 benchmark 上稳定碾压人类数据基线
为什么这件事重要?
Figure 1 展示了 SSR 的核心循环:
左:Bug-Injection Agent 生成含测试补丁的“Bug 制品”;右:Bug-Solving Agent 仅通过“测试补丁的逆”作为规格说明进行修复;二者共享同一套 LLM 权重,用 RL 同时更新。
| 旧范式(SFT/RLHF) | 新范式(SSR Self-Play) |
|---|---|
| 依赖 GitHub Issue/PR、人类写好的自然语言描述与测试用例 | 只需要一份能跑起来的 Docker 镜像(源码+依赖) |
| 学的是“人类怎么修 Bug” | 学的是“自己如何制造并解决更难 Bug” |
| 数据标着天花板 | 数据随训练无限增殖 |
方法精要
3.1 最小假设——“裸仓库”即可
- 输入:一个打好依赖的 Docker 镜像
- 不需要现成测试命令、Issue 描述、测试解析器、甚至语言类型标签
- 所有测试发现/解析/运行命令,都由 Injection Agent现场探索出来
3.2 Bug 制品(Artifact)长什么样?
| 文件名 | 作用 |
|---|---|
bug_inject.diff | 在业务代码里植入 Bug |
test_weaken.diff | 把会暴露 Bug 的断言删掉或弱化,制造“测试盲区” |
test_script.sh | 可执行脚本,跑测试并输出文本日志 |
test_parser.py | 把文本日志转换成{test_id: pass/fail}的 JSON,供 RL 奖励计算 |
test_files.txt | 记录哪些测试文件参与验证,防止 Agent 靠改测试“作弊” |
Figure 2 给出一个test_weaken.diff及其逆补丁——这就是Solver 端唯一收到的“规格说明书”:
3.3 自博弈训练流程
- Injection 角色
- 策略:代码整体删除orgit history 反 revert
- 奖励:
rinject= ⎩⎨⎧ −1.0 −α 1−(1+α)s 一致性失败 Bug 不可解(s=0)或太简单(s=1) 理想难度(0<s<1) - 目标:把 solve-rate s 拉到 ~0.2(理论最优见论文 §B)
- Solver 角色
- 只看到“逆测试补丁”+ 报错仓库
- 奖励:二进制,全部测试通过 +1,否则 -1
- 失败尝试 → 直接当成高阶 Bug喂给下一轮自己,形成“错题本”
- 参数共享 + 同时 RL 更新
两个角色梯度一起回传,让模型同时学会“造难”和“解难”。
实验结果
4.1 主结果
Figure 8 显示在整个 150-step 训练轨迹上,SSR稳定自我提升,并全程压制人类数据基线:
| Benchmark | CWM-sft 起点 | 人类数据 RL | SSR(Self-Play) | Δ |
|---|---|---|---|---|
| SWE-bench Verified | 22.1 % | 25.3 % | 35.7 % | +10.4 |
| SWE-Bench Pro | 21.1 % | 24.4 % | 32.2 % | +7.8 |
注:人类数据 RL = 同款镜像 + 自然语言 Issue + 人工测试脚本;SSR 完全没有这些。
4.2 消融实验
Figure 9 给出三把 ablation 小刀:
- Injection-Only或Repair-Only都会掉分 → 必须双角色一起练
- Bug 植入策略:
- 直接瞎改 → collapse 到一行 trivial 改值
- Removal+History融合 git 反 revert → 最逼真、分最高
- Solver 反馈给 Injection 奖励带来的提升微弱;真正关键的是在线共同进化的分布,而不是单点噪声信号。
理论洞察: challenger 的“最优解”
论文在 Appendix B 用博弈论证明:
- 只要 challenger 的动作空间足够大(例如可以改测试),就能构造伪随机 fail的 dominant strategy,让 solver 永远只能达到目标 solve-rate p*≈0.2,无法真正学到修复能力。
- 缓解方案:把 challenger 锚定在真实、多样的代码库上,并限制其策略空间不偏离“自然 Bug”——SSR 正是这样做的。
如何学习AI大模型?
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段:从大模型系统设计入手,讲解大模型的主要方法;
第二阶段:在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段:大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段:大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段:大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段:以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段:以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓