GRPO 的效率可以提高 10 倍吗?快手 AI 的 SRPO 建议 SRPO 是
快速阅读: 据《同步》最新报道,快手Kwaipilot团队提出两阶段历史重采样策略优化(SRPO),解决了大规模语言模型强化学习中的跨领域冲突等问题,使Qwen-32B在数学和代码领域达到DeepSeek-R1-Zero水平,且训练效率大幅提升。相关模型和论文已开源。
OpenAI的o1系列模型和DeepSeek-R1的显著成功无疑证明了大规模强化学习(RL)在引发复杂推理行为和显著提升大型语言模型(LLMs)能力方面的强大作用。然而,这些开创性推理模型背后的核心训练方法往往未在技术报告中明确披露。近期社区研究主要集中在数学推理上,而跨领域泛化这一挑战仍未被充分探索。此外,基于偏好优化的强化学习(GRPO)训练经常受到诸如性能瓶颈、样本利用效率低下以及在处理混合领域数据集时难以培养专门推理技能等问题的困扰。这些问题使强化学习方法在大语言模型中的有效扩展变得复杂。
为了解决这些局限性,快手Kwaipilot团队的研究人员引入了一种新的强化学习框架:两阶段历史重采样策略优化(SRPO)。该创新方法旨在从多个维度系统解决上述训练挑战。该团队公开发布了一份详细描述其训练方法的技术报告,并开源了SRPO-Qwen-32B模型。
值得注意的是,这项工作标志着首次在同一模型中同时在数学和代码领域达到DeepSeek-R1-Zero级别的性能。通过利用与DeepSeek相同的基线模型(Qwen2.5-32B),并采用纯强化学习训练方法,SRPO在AIME24(50)和LiveCodeBench(41.6)基准测试中取得了令人印象深刻的结果,超过了DeepSeek-R1-Zero-32B的表现。更为引人注目的是,SRPO仅需R1-Zero所需训练步数的十分之一就能达到这一水平。
关于Vanilla GRPO的挑战
在最初的探索中,Kwaipilot团队尝试了标准的GRPO算法。然而,他们很快遇到了阻碍模型达到预期R1-Zero性能水平的瓶颈。这些问题包括:
**跨领域优化冲突(数学 vs. 代码):**
数学问题倾向于引发更长且更详细的推理轨迹,而代码数据在这方面表现较弱。直接混合这两种数据类型导致了冲突,从而在两个领域都表现出次优性能。
**由于相似组奖励导致的训练效率降低:**
GRPO算法依赖于采样组内非零奖励的变化来计算优势。当一组内的回滚结果几乎相同且奖励值相近时,计算出的优势接近于零。如果训练批次中有很大一部分出现这种现象,有效的梯度贡献就会变得微不足道,极大地降低了训练效率。
**早期性能饱和:**
GRPO训练在基准评估中遇到了早期性能平台期和奖励饱和的问题。部分原因是数据质量不足。当训练数据缺乏足够的复杂性和多样性,尤其是存在大量简单问题时,模型倾向于保守地维持其在简单任务上的表现,阻碍了其发展应对复杂问题所需的复杂深入推理能力。
分阶段训练
为了解决数学和代码领域之间固有的响应长度冲突,Kwaipilot团队实施了一个两阶段训练范式:
**第一阶段:激发推理能力:**
这个初始训练阶段专注于具有挑战性的数学数据。主要目标是充分激励模型的测试时间扩展能力,培养如反思暂停、回溯和逐步分解等能力。
**第二阶段:技能整合:**
在这个阶段,代码数据被引入到训练过程中。基于第一阶段建立的推理基础,此阶段旨在进一步增强编码能力,同时逐步加强程序思维、递归和工具调用能力。
不同训练策略的对比分析
对不同训练数据策略对响应长度的影响进行了分析,揭示了以下见解:
**混合训练:**
在数学和代码数据混合训练的模型显示出有限的响应长度增长和较差的基准表现。虽然数学问题引发了某些推理模式,但代码问题通常导致简短、直接的响应,重点放在即时代码输出上,初步分析或规划较少。
**仅数学训练:**
仅在数学数据上训练导致响应长度稳定增加,并在数学基准测试中表现出色。关键的是,它培养了强大且可推广的推理能力;面对编程任务时,模型试图进行详细的逐步推理,包括在数学问题求解中仔细检查和回顾步骤。
**仅代码训练:**
虽然在代码基准测试中表现出改进,但显式推理行为的发展有限,实现显著的响应长度增加较为困难。无论是代码还是数学问题,响应都明显较短,代码解决方案通常是直接生成的,没有大量的逐步推理或初步分析。
**分阶段训练:**
Kwaipilot团队提出的两阶段训练方法在数学和编程领域均取得了卓越成果。该模型在处理数学问题时始终生成详尽的逐步推理,在处理编程任务时形成结构化的推理模式。值得注意的是,还出现了复杂行为,例如模型自发运用代码辅助数学推理。
历史重采样
Kwaipilot团队观察到,在训练的中后期,大约50%的批次中的采样组产生了相同的奖励。这种情况通常发生在模型在较简单的问题上持续成功时,导致奖励方差较小且梯度更新无效。
为了解决这一低效问题并提高梯度信号质量,他们引入了历史重采样。在训练过程中,他们记录了每个时期内所有rollout的奖励结果。在一个时期结束时,他们根据以下标准重构了下一时期的训练数据集:
– **剔除过于简单的样本:** 所有rollout都得到正确答案的样本被排除,因为它们对策略改进没有提供任何信息价值。
– **保留具有信息价值的样本:** 具有多样化结果(包括正确和错误)或全部错误结果的样本被保留。这些样本产生了正向的奖励方差,确保了非零的优势和有效的梯度信号。此外,当前时期所有rollout都错误的困难样本也被保留。理由是这些最初具有挑战性的问题可能对更新后的策略变得相对容易,从而在后续训练中产生有效的梯度。这一策略符合课程学习的原则,逐渐让模型平均接触到越来越具挑战性的样本,以提高训练效率。
与DAPO提出的动态采样方法相比,历史重采样显著提高了计算效率,并实现了更稳定的响应长度增长。
数据
Kwaipilot团队对公开可用的Code&Math数据集进行了细致的数据清洗和筛选。他们应用启发式规则来过滤无关的URL、格式噪声,并确保原始数据中核心字段(问题和答案真实值)的完整性。遵循PRIME对数学数据的数据清洗方法,他们去除了多部分问题、纯基于证明的问题以及需要图像或表格理解的问题。对于代码数据,他们排除了依赖特定环境、文件I/O或网络交互的问题,专注于算法逻辑。
在数据摄入之前,他们对数学和代码问题进行了正确性验证,以确保答案的准确性和可解性,丢弃那些有错误或模糊解决方案的问题。随后,他们评估了每个问题的难度,根据通过率(Pass@k)将其分类为易、中、难三个级别。
实验结果
本节详细介绍了使用SRPO方法获得的实验结果。Kwaipilot团队重点关注训练过程中奖励和响应长度等指标的变化。
**训练过程:**
上述图表展示了SRPO训练期间完整的奖励曲线和响应长度曲线。在初始奖励增长开始趋于平稳后,训练进入了第二阶段。在第二阶段开始时,由于模型缺乏代码方面的先前训练,整体奖励下降,但在随后的训练中奖励稳步增加。集成代码数据并未显著增加响应长度,这符合他们的预期。
同时,基准测试结果显示模型在数学和编码能力方面持续稳定地提升,证明了新方法的有效性。
具体来说,历史重采样确保了在每个训练步骤中梯度更新的有效性,直接增加了信息性梯度的比例。这种增强的采样效率导致奖励稳定增长,清楚地展示了重采样策略带来的训练效率提升。
**推理行为:**
Kwaipilot团队辨识出三种典型的反思行为模式:重新检查、犹豫和探索。他们对包含这些行为模式的响应进行了统计分析,并记录了每种模式的平均响应长度。在RL训练过程中,他们观察到模型自我反思、修正和回溯的频率逐渐增加,表明“自我验证”能力的显现。他们认为,模型在RL过程中出现的“反思”,类似于人类的认知过程,是一种适应性行为,源于策略优化的过程。
如上图所示,在训练初期,模型几乎不会主动检查和反思之前的推理步骤。然而,随着训练的进行,模型表现出显著的反思和回溯行为,形成了诸如逐步推理、数值替换、逐步验证及自我优化等响应模式。
Kwaipilot团队辨识出三种典型的反思行为模式:重新检查、犹豫和探索。他们对包含这些行为模式的响应进行了统计分析,并记录了每种模式的平均响应长度。在RL训练过程中,他们观察到模型自我反思、修正和回溯的频率逐渐增加,表明“自我验证”能力的显现。他们认为,模型在RL过程中出现的“反思”,类似于人类的认知过程,是一种适应性行为,源于策略优化的过程。
有趣的是,他们还发现模型学会在解答数学问题时自发运用程序代码进行验证。它会首先通过数学推理提供解决方案过程,然后主动编写程序代码来验证解决方案的正确性。这些示例展现了模型运用过程思维进行自我修正和反复尝试的能力,进一步表明在训练后期阶段,模型具备广泛的思维能力,并能综合应用各种基于代码的推理方法解决问题。
论文《SRPO:LLM大规模强化学习的跨域实现》已发布于arXiv
在HuggingFace上尝试SRPO-Qwen-32B模型
分享此内容:
点击以分享到推特(在新窗口中打开)
推特
点击以分享到推特(在新窗口中打开)
点击以分享到脸书(在新窗口中打开)
点击以分享到推特(在新窗口中打开)
脸书
点个赞:
喜欢
点个赞:
正在载入…
(以上内容均由Ai生成)