
强化学习与软件工程:开源软件奖励演化的强化学习
SWE-RL: Advancing LLM Reasoning via Reinforcement Learning on Open Software Evolution
2025-02-25|Meta FAIR, UIUC, Meta GenAI, CMU|🔺37
http://arxiv.org/abs/2502.18449v1
https://huggingface.co/papers/2502.18449
https://github.com/facebookresearch/swe-rl
研究背景与意义
近年来,大型语言模型(LLMs)在软件工程(SE)任务中的应用引起了广泛关注。研究者们探索了LLMs在自动化复杂SE任务中的潜力,例如库级和复杂代码生成、真实世界错误/问题解决以及软件测试。然而,现有的技术大多依赖于强大的专有LLMs,如GPT-4o或Claude-3.5-Sonnet,这些模型的进步更多依赖于增强的提示策略,而非底层LLM的改进。随着DeepSeek-R1的发布,基于规则的强化学习(RL)成为增强LLMs推理能力的关键技术,但其在SE任务中的有效性仍然有限。本文提出的SWE-RL方法首次将RL应用于真实世界的软件工程任务,通过利用软件演化数据(如PRs)和基于规则的奖励,显著提升了LLMs在SE任务中的表现。
研究方法与创新
SWE-RL方法的核心在于利用软件演化数据和基于规则的奖励来增强LLMs的推理能力。具体而言,SWE-RL通过从GitHub PR数据中创建种子RL数据集,包括问题描述、代码上下文和Oracle补丁。在RL过程中,策略LLM通过推理生成代码更改,并根据预测补丁与Oracle补丁的匹配程度计算奖励。SWE-RL的创新点在于其轻量级的基于规则奖励机制,使得LLMs能够从广泛的软件演化数据中自主学习开发者的推理过程和解决方案。此外,SWE-RL在Llama 3的基础上训练,生成的推理模型Llama3-SWE-RL-70B在SWE-bench Verified上达到了41.0%的解决率,这是迄今为止中等规模LLMs(<100B)中表现最好的,甚至可与GPT-4o等领先的专有LLMs相媲美。
实验设计与结果分析
实验部分,SWE-RL在SWE-bench Verified上进行了评估,这是一个包含500个经过人工验证的真实世界GitHub问题的子集。实验结果显示,Llama3-SWE-RL-70B在SWE-bench Verified上的解决率为41.0%,显著优于其他开源模型。此外,尽管SWE-RL仅在软件演化数据上进行RL训练,但Llama3-SWE-RL-70B还表现出在多个领域外的任务(如函数编码、库使用、代码推理、数学和一般语言理解)上的推理能力提升。这表明,SWE-RL不仅提升了LLMs在SE任务中的表现,还增强了其通用推理能力。
结论与展望
本文提出的SWE-RL方法首次将RL应用于真实世界的软件工程任务,通过利用软件演化数据和基于规则的奖励,显著提升了LLMs在SE任务中的表现。Llama3-SWE-RL-70B在SWE-bench Verified上的表现达到了中等规模LLMs中的最佳水平,甚至可与GPT-4o等专有模型相媲美。此外,SWE-RL还增强了LLMs的通用推理能力,使其在多个领域外的任务上表现出色。未来的工作将集中在改进奖励机制、增强模型的局部化能力以及提高样本效率上,以进一步提升SWE-RL的实用性和性能。
通过本文的研究,我们为LLMs在软件工程任务中的应用开辟了新的方向,展示了RL在提升LLMs推理能力方面的巨大潜力。
