SoRFT: Issue Resolving with Subtask-oriented Reinforced Fine-Tuning

📄 arXiv: 2502.20127v1 📥 PDF

作者: Zexiong Ma, Chao Peng, Pengfei Gao, Xiangxin Meng, Yanzhen Zou, Bing Xie

分类: cs.SE, cs.AI, cs.CL

发布日期: 2025-02-27


💡 一句话要点

提出SoRFT,通过子任务强化微调提升LLM的问题解决能力

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 问题解决 大型语言模型 强化学习 监督微调 代码修复 子任务学习 开源模型

📋 核心要点

  1. 现有问题解决框架依赖昂贵的商业模型,存在隐私风险,且开源模型的性能有待提升。
  2. SoRFT将问题解决分解为文件、函数、行定位和代码编辑等子任务,并分阶段进行训练。
  3. 实验表明,SoRFT在SWE-Bench等基准测试中取得了SOTA性能,显著提升了开源模型的问题解决能力。

📝 摘要(中文)

主流问题解决框架依赖商业模型,成本高且存在隐私问题。现有问题解决训练方法泛化性差,未能充分利用开源资源。本文提出子任务导向的强化微调(SoRFT),一种提升LLM问题解决能力的新训练方法。SoRFT将问题解决分解为结构化子任务:文件定位、函数定位、行定位和代码编辑生成。SoRFT包含两个训练阶段:(1)拒绝采样监督微调,使用ground-truth过滤CoT数据后微调LLM;(2)基于规则的强化学习,利用PPO和基于ground-truth的奖励。在SWE-Bench Verified和SWE-Bench Lite上的评估表明,SoRFT训练的模型在开源模型中实现了最先进的性能(例如,SoRFT-Qwen-7B在SWE-Bench Verified上解决了21.4%的问题)。实验结果表明,SoRFT显著提升了问题解决性能,提高了模型泛化能力,并为商业模型提供了一种经济高效的替代方案。

🔬 方法详解

问题定义:论文旨在提升大型语言模型(LLM)在软件问题解决方面的能力。现有方法依赖于商业模型,成本高昂且存在隐私泄露风险。同时,现有开源模型的训练方法泛化能力不足,无法有效利用开源开发资源。

核心思路:论文的核心思路是将复杂的问题解决任务分解为一系列结构化的子任务,包括文件定位、函数定位、行定位和代码编辑生成。通过针对每个子任务进行优化,从而提升整体的问题解决能力。这种分解的思路借鉴了人类解决问题的习惯,更易于模型学习和泛化。

技术框架:SoRFT包含两个主要的训练阶段:1) 拒绝采样监督微调(Rejection-Sampled Supervised Fine-Tuning):首先利用ground-truth信息对Chain of Thought (CoT) 数据进行过滤,只保留高质量的CoT数据,然后使用这些数据对LLM进行监督微调。2) 基于规则的强化学习(Rule-Based Reinforcement Learning):使用近端策略优化(PPO)算法,并设计基于ground-truth的奖励函数,引导模型学习更有效的解决问题的策略。

关键创新:SoRFT的关键创新在于其子任务导向的训练方式和两阶段训练策略。将问题分解为子任务,使得模型能够更专注于学习每个子任务的特定技能。两阶段训练策略结合了监督学习和强化学习的优点,首先通过监督学习快速提升模型性能,然后通过强化学习进一步优化模型的策略。

关键设计:在拒绝采样监督微调阶段,关键在于如何设计有效的过滤策略,以选择高质量的CoT数据。在强化学习阶段,关键在于如何设计合适的奖励函数,以引导模型学习正确的行为。论文使用基于ground-truth的奖励函数,例如,如果模型定位到了正确的文件或行,则给予正向奖励,否则给予负向奖励。具体参数设置未知。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

SoRFT在SWE-Bench Verified和SWE-Bench Lite基准测试中取得了显著的性能提升。例如,使用SoRFT训练的Qwen-7B模型在SWE-Bench Verified上解决了21.4%的问题,达到了开源模型中的SOTA水平。相较于其他开源模型,SoRFT在问题解决的准确性和泛化性方面均有明显优势。

🎯 应用场景

SoRFT具有广泛的应用前景,可用于自动化代码修复、智能代码助手、软件缺陷预测等领域。通过提升开源LLM的问题解决能力,可以降低软件开发的成本,提高开发效率,并促进开源软件生态的繁荣。未来,SoRFT可以应用于更复杂的软件工程任务,例如代码重构、代码审查等。

📄 摘要(原文)

Mainstream issue-resolving frameworks predominantly rely on commercial models, leading to high costs and privacy concerns. Existing training approaches for issue resolving struggle with poor generalization and fail to fully leverage open-source development resources. We propose Subtask-oriented Reinforced Fine-Tuning (SoRFT), a novel training approach to enhance the issue resolving capability of LLMs. We decomposes issue resolving into structured subtasks: file localization, function localization, line localization, and code edit generation. SoRFT consists of two training stages: (1) rejection-sampled supervised fine-tuning, Chain of Thought (CoT) data is filtered using ground-truth before fine-tuning the LLM, and (2) rule-based reinforcement learning, which leverages PPO with ground-truth based rewards. We evaluate the SoRFT-trained model on SWE-Bench Verified and SWE-Bench Lite, achieving state-of-the-art (SOTA) performance among open-source models (e.g., resolve 21.4% issues on SWE-Bench Verified with SoRFT-Qwen-7B). The experimental results demonstrate that SoRFT significantly enhances issue-resolving performance, improves model generalization, and provides a cost-efficient alternative to commercial models.