如何利用大规模强化学习提升模型的数学和代码推理能力
引言
在当今人工智能领域,推理能力一直是衡量模型性能的关键指标。从 OpenAI 提出利用强化学习(RL)训练推理模型开始,这一领域就吸引了大量关注。然而,很多前沿模型的关键技术细节,比如数据收集策略和强化学习训练方法,往往没有被详细披露,这让研究人员在尝试复制这些成功时面临诸多困难。
本文将深入探讨如何通过大规模强化学习提升小到中等规模模型(如 7B 和 14B 模型)的推理能力,并展示其在数学和代码推理任务上超越基于蒸馏的前沿模型的潜力。
背景知识
关于推理模型的研究现状
-
近年来,研究人员尝试通过在预训练和监督微调阶段引入数学和代码数据来提升模型的推理能力,但这些模型在处理数学和代码领域的复杂任务时,推理能力仍有局限性。 -
随着 DeepSeek-R1 等模型的开源,研究人员开始探索利用强化学习提升推理能力,但这些研究大多集中在特定领域,且报告的基准测试范围有限,通常只涵盖 AIME 2024/2025 等少数测试集。
现有研究的不足
-
关键技术细节缺失:前沿模型的报告中往往省略了数据收集策略和具体的强化学习训练方法,这使得研究人员难以复制其成功。 -
模型规模与方法的局限性:对于小到中等规模模型,研究显示蒸馏方法比强化学习更有效,因此现有研究大多推荐只对大型模型(如 671B 或 253B 模型)使用强化学习,而对于小到中等规模模型的强化学习训练方法研究较少。
AceReason-Nemotron 模型的提出与贡献
研究目标与方法
我们的研究目标是证明大规模强化学习可以显著提升小到中等规模模型的推理能力。为此,我们提出了一种分阶段的强化学习训练方法:先对数学提示(prompts)进行强化学习训练,然后再对代码提示进行强化学习训练。这种方法最初是出于提高训练效率的考虑,因为代码的平均验证时间远长于数学。
数据收集与验证
为了支持强化学习训练,我们开发了一套强大的数据收集和验证流程。在数学领域,我们结合了 DeepScaler 和 NuminaMath 数据集,涵盖了代数、组合数学、数论和几何等领域。在收集过程中,我们使用九元语法过滤器(9-gram filtering)避免污染常见的数学基准测试,并通过一系列过滤规则排除不适合的数据,如多子问题、多项选择或判断对错的问题等。此外,我们还使用 DeepSeek-R1 模型对数据进行验证,保留那些通过多数决验证的正确问题解决方案,从而确保数据的高质量。
在代码领域,我们从现代的编程竞赛平台收集数据,确保数据包含清晰的输入输出格式,并覆盖广泛的算法主题。我们过滤掉那些无法通过标准输出比较的问题,以及那些需要特定平台模板的问题,以减少潜在的误报。同时,我们精心设计了测试用例,确保覆盖输入限制下的各种复杂情况,避免误报的出现。
实验设置与评估方法
我们的实验基于 DeepSeek-R1-Distill-Qwen-7B 和 14B 等强大的监督微调(SFT)模型。为了确保评估的一致性和可重复性,我们遵循 DeepSeek-R1 的评估协议,使用温度为 0.6、top-p 为 0.95 的设置,并将最大输出长度设定为 32,768 个 tokens。
在数学评估方面,我们采用了多种数学竞赛基准测试,包括 AIME2024、AIME2025、MATH500 等。对于代码评估,我们在 LiveCodeBench v5 和 v6 等子集上测试模型,这些子集包含了 AtCoder 和 LeetCode 上最近发布的编程问题。此外,我们还报告了模型在 Codeforces ELO 和百分位数上的表现。
研究发现与成果
强化学习对模型推理能力的显著提升
-
数学推理能力的提升:我们的 AceReason-Nemotron-7B 和 14B 模型在数学任务上表现出显著的改进。例如,AceReason-Nemotron-7B 在 AIME2024 上的准确率比初始的 SFT 模型提高了 14.5%,在 AIME2025 上提高了 14.6%。同样,AceReason-Nemotron-14B 在 AIME2024 和 AIME2025 上的准确率分别提高了 8.9% 和 17.2%。 -
代码推理能力的提升:在代码任务上,AceReason-Nemotron-7B 模型在 LiveCodeBench v5 和 v6 上的准确率分别比初始 SFT 模型提高了 14.2% 和 8%。AceReason-Nemotron-14B 模型在 LiveCodeBench v5 和 v6 上的准确率也分别提高了 8% 和 7%。
数学强化学习对代码推理的积极影响
一个令人兴奋的发现是,仅对数学提示进行强化学习训练不仅能显著提升模型在数学基准测试上的表现,还能提升其在代码推理任务上的表现。例如,AceReason-Nemotron-7B 在数学强化学习后,其在 LiveCodeBench v5 上的得分比初始模型提高了 6.8%,而 AceReason-Nemotron-14B 提高了 5.8%。这表明强化学习具有跨领域的泛化能力,这是监督微调所不具备的优势。
对比蒸馏方法的优势
在与基于蒸馏的模型对比中,AceReason-Nemotron-14B 在数学和代码性能上均优于最新的专门蒸馏模型,如 OpenMath-14B/32B 和 OpenCodeReasoning-14B。这表明在 14B 模型规模及以上,强化学习能够使模型达到比蒸馏方法更高的性能上限。
详细的训练策略分析
-
响应长度与性能的关系:我们发现,随着训练过程中响应长度的增加,模型的性能也随之提升。在从 8K 延长到 16K 的训练阶段,模型的平均响应长度和准确率都显著提高。 -
难度提升与模型性能的关系:在训练过程中引入更具挑战性的提示(prompts)可以显著提升模型性能。例如,在 24K 阶段,使用“困难”提示集进行训练比使用完整数据集或“简单”和“中等”提示集能带来更大的性能提升。 -
数学强化学习与代码强化学习的相互作用:我们发现,从数学强化学习检查点开始进行代码强化学习训练可以提供一个更好的起点,并导致在 LiveCodeBench 上的最终准确率显著提高。
方法细节与观点
强化学习框架的选择
我们采用了 GRPO 算法,而不是 PPO,因为它的简单性和不需要单独的价值函数模型的优势。在每个问题-答案对(q, a)中,我们从策略模型 πθold 采样生成一组 G 个 rollouts {o_i}^G_{i=1}。然后,我们为每个响应 o_i 分配一个奖励分数 S_i = S(o_i, a),并计算该组中归一化后的奖励分数的优势。
数学和代码的奖励函数
-
对于数学问题的验证,我们使用基于规则的 Python 验证函数,该函数基于 sympy 构建。我们从 \boxed{} 中提取答案,并根据答案的正确性严格分配奖励(正确得 1,错误得 0)。 -
对于代码问题的验证,我们使用本地沙盒验证器。如果提取的代码在特定时间限制内通过所有测试用例,则授予正奖励 1,否则得 0。
训练过程的优化
-
严格的策略更新:我们严格遵循策略更新方法,在模型生成一组 G 个 rollouts 后仅进行一次梯度更新,以确保强化学习训练的稳定性和防止熵崩溃。 -
逐步延长响应长度:我们采用分阶段的长度延长策略(从 8K 到 16K,再到 24K 和 32K),以提高训练效率。直接从较高的响应长度开始训练会导致次优的结果。 -
引入更具挑战性的提示:在训练的后期阶段,我们引入更具挑战性的提示,以推动模型性能的提升。
实验结果的详细解读
在数学基准测试上的表现
-
AceReason-Nemotron 模型在多个数学竞赛基准测试上表现出色。例如,在 AIME2024 上,7B 模型的准确率达到了 69.0%,而 14B 模型达到了 78.6%。在 AIME2025 上,7B 和 14B 模型的准确率分别为 53.6% 和 67.4%。 -
与基于蒸馏的模型相比,如 OpenMath-Nemotron-14B,其在 AIME2024 和 AIME2025 上的准确率分别为 76.3% 和 63.0%,AceReason-Nemotron-14B 的表现更为优异。
在代码基准测试上的表现
-
AceReason-Nemotron 模型在 LiveCodeBench v5 和 v6 上的代码推理能力也得到了显著提升。例如,7B 模型在 LiveCodeBench v5 上的准确率达到了 44.4%,在 LiveCodeBench v6 上达到了 37.6%。14B 模型的表现更好,在 LiveCodeBench v5 和 v6 上的准确率分别为 58.9% 和 54.9%。 -
与专门的代码生成功能模型相比,如 DeepCoder-14B,其在 LiveCodeBench v5 上的准确率为 57.9%,AceReason-Nemotron-14B 的表现更优。
蒸馏与强化学习的对比
-
在 7B 模型规模上,AceReason-Nemotron-7B 在代码任务上与基于蒸馏的 OpenCodeReasoning-7B 表现相当,但在数学推理上略逊一筹。然而,在 14B 模型规模上,AceReason-Nemotron-14B 在数学和代码性能上均优于最新的专门蒸馏模型,表明强化学习在大规模模型上具有更高的性能潜力。
关键结论
强化学习的优势
强化学习不仅能激发模型在预训练和监督微调(如蒸馏)期间获得的基础推理能力,还能推动模型推理能力的极限,使其能够解决之前无法解决的问题。例如,强化学习在 pass@1 指标上显著提升,同时在 pass@64 等指标上也取得了实质性的进步。
强化学习的泛化能力
强化学习展现了跨领域的泛化能力。数学强化学习不仅提升了数学推理性能,还提高了代码推理任务的性能。此外,后续的代码强化学习训练在进一步提升代码基准测试成绩的同时,对数学推理任务几乎没有负面影响。
数据收集与验证的重要性
我们开发的系统性的数据收集和验证方法为强化学习训练提供了高质量的数学和代码提示,确保了训练数据的可靠性和可测试性。这为模型性能的提升奠定了基础。
训练策略的重要性
我们的研究表明,适当的训练策略,如逐步延长响应长度、引入更具挑战性的提示以及分阶段的数学和代码强化学习,对提升模型推理能力至关重要。这些策略提高了训练效率,稳定了强化学习过程,并最终提高了模型在推理基准测试中的准确率。
未来展望
尽管我们在利用大规模强化学习提升小到中等规模模型的数学和代码推理能力方面取得了显著进展,但仍有诸多挑战和机遇。未来的研究可以进一步优化强化学习算法,探索更有效的数据收集和验证方法,以及开发新的模型架构,以进一步推动人工智能模型的推理能力发展。
我们的研究表明,强化学习是一种强大的工具,能够显著提升模型在多个推理领域的性能。通过分享我们的方法、实验结果和见解,我们希望为人工智能社区提供有价值的参考,促进推理模型的进一步发展和应用。
本文完全基于 NVIDIA 的研究论文《AceReason-Nemotron: Advancing Math and Code Reasoning through Reinforcement Learning》编写,旨在为读者提供清晰、实用且通俗易懂的技术解析。所有技术细节、实验数据和结论均直接引用自该研究论文,未补充任何外部知识。