摘要:一项由Meta、UIUC和CMU的研究团队合作完成的研究,提出了一种名为Self-play SWE-RL(SSR)的新方法。该方法借鉴AlphaZero的“自博弈”思想,让同一个大型语言模型在代码库中扮演相互对抗的“破坏者”与“修复者”角色,以此自我生成训练数据,从而摆脱对稀缺、有噪声的人类编程数据的依赖。实验结果显示,基于Code World Model 32B模型训练的SSR,在SWE-bench Verified和SWE-Bench Pro两个基准测试上,性能分别比使用传统人类数据训练的基准模型提升了10.4%和7.8%。这为AI编程智能的自我进化提供了一条新路径。
线索:
* 投资机会:SSR为代表的自训练范式若能成功推广,将显著降低AI在专业领域(如编程、设计、科研)对昂贵、稀缺的人类专家数据的依赖,开启AI“从数据中自学”的新阶段。这预示着:
* 软件工程自动化:更强大、能处理复杂代码库维护和重构的AI助手可能出现,提升开发效率并降低人力成本。
* 复杂系统探索:该方法可被借鉴用于其他需要深度逻辑推理的领域(如芯片设计、数学证明、金融模型),让AI自主探索解决方案空间。
* 代码安全与测试:能自主生成并修复复杂缺陷的AI,可用于自动化安全审计和生成更全面的测试用例。
* 潜在风险:
* 技术成熟度:目前该方法仍严重依赖单元测试作为验证手段,尚无法处理缺乏明确测试的大型、模糊任务,离实际工业级应用尚有距离。
* 成本与可扩展性:训练过程需要大量计算资源(如512个H100 GPU),成本高昂,其扩展到更大模型和更复杂任务时的效率与效益有待验证。
* 对现有生态的冲击:高度自主的AI编程工具可能改变软件开发流程和工程师的角色,引发关于就业、代码质量控制和知识产权的新问题。
* 未知行为风险:在脱离人类直接监督的自我博弈中,AI可能演化出难以预测或理解的问题解决策略,带来可控性方面的挑战。
正文:
一项新的研究提出了一种让大型语言模型通过自我博弈来提升编程能力的方法,名为Self-play SWE-RL(SSR)。该研究由Meta、伊利诺伊大学厄巴纳-香槟分校(UIUC)和卡内基梅隆大学(CMU)的研究人员共同完成。
当前,基于学习人类代码和问题修复记录来训练AI编程助手的方法存在瓶颈:高质量的训练数据稀缺、人类提供的数据(如问题描述和测试用例)往往包含噪声,并且AI的能力天花板受限于它所模仿的人类水平。
SSR方法的核心是让同一个AI模型在代码环境中进行“自博弈”,分别扮演两个角色:
1. 破坏者:其任务是向一个正常的开源代码库中注入缺陷(Bug)。它需要生成一套完整的“工件”,包括实际修改代码的补丁、用于验证缺陷存在的测试脚本、相关的测试文件列表、测试结果解析器,以及一个用于弱化现有测试用例以掩盖缺陷的补丁。
2. 修复者:其任务是在破坏者工作后的代码库中,定位并修复被注入的缺陷,生成修复补丁。修复者看不到缺陷是如何被注入的,必须通过分析代码和测试输出来完成任务。
为确保生成缺陷的质量和训练有效性,SSR设计了一套严格的一致性验证流程,包括存在性检查、解析器检查、脚本有效性检查、缺陷范围控制,以及关键的缺陷有效性和掩盖有效性检查。此外,还引入了“逆向变异测试”概念,通过将涉及缺陷的文件逐个恢复原状,来验证每个改动对于引发缺陷是否是必要的。
研究探索了多种缺陷注入策略以提高训练效果,包括简单的直接注入、迫使AI重构代码的暴力删除策略、以及回滚代码到历史版本以引入真实缺陷的历史回滚策略。实验表明,混合使用删除策略和历史回滚策略效果最佳。系统还会将修复者失败的修复尝试作为更复杂的缺陷重新投入训练,形成多层级的训练数据。
在奖励机制上,修复者成功修复缺陷获得正奖励,失败则获得负奖励。破坏者的奖励则基于其生成缺陷的解决率(s)进行计算,旨在鼓励其生成难度适中、处于修复者能力边界上的缺陷,从而驱动双方共同进化。
研究团队使用Code World Model(CWM)的320亿参数模型作为基础,在512个H100 GPU上对SSR进行了训练。评估在SWE-bench Verified(经人工验证的真实GitHub问题集)和SWE-Bench Pro(更复杂的问题集)上进行。对比基线是使用相同模型和基础环境,但采用传统人类数据进行训练的模型。
实验结果表明:
* 在整个训练过程中,SSR的性能始终优于依赖人类数据的基线模型。
* 在SWE-bench Verified上,SSR的性能相对提升了10.4%;在SWE-Bench Pro上提升了7.8%。
* SSR在训练过程中从未接触过用自然语言描述的问题,但在测试中却能有效处理这类任务,显示出其掌握了更通用的代码理解和修复能力,而非特定的“解题”模式。
* 随着训练进行,SSR的能力持续提升,未出现过拟合或性能崩溃,证明自博弈产生的训练课程是持续有效的。
这项研究展示了一种不依赖人类标注数据、仅通过代码库本身即可训练AI编程智能的路径。研究人员指出,当前方法仍主要依赖于单元测试进行验证,未来需要探索如何处理更大型、更复杂的软件工程任务。该方向为开发能够自我进化的AI软件系统提供了新的思路。
附录:研究相关人员信息
* Yuxiang Wei:伊利诺伊大学厄巴纳-香槟分校(UIUC)计算机科学系博士生,同时在Meta FAIR担任兼职研究员。
* Zhiqing Sun:Meta超级智能实验室(MSL)的AI研究科学家,此前曾任OpenAI研究科学家,拥有卡内基梅隆大学博士学位。
* David Zhang:Meta基础AI研究(FAIR)巴黎实验室的研究科学家,拥有阿姆斯特丹大学机器学习博士学位。
* Lingming Zhang:伊利诺伊大学厄巴纳-香槟分校(UIUC)计算机科学系副教授。
* Sida Wang:Meta基础AI研究(FAIR)西雅图实验室的研究科学家,拥有斯坦福大学计算机科学博士学位。
发布时间:2025-12-29 10:43



评论 ( 0 )