[导读] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

TL;DR

主要贡献

  1. 开源

    1. 模型权重开源(R1-Zero/R1/6 distilled);

    2. 训练细节开源

  2. 分享并探讨了复刻OpenAI o1这类闭源推理模型的可行性,且在效果上与o1接近(在使用更小算力的前提下);

    1. R1性能与o1接近;利用R1蒸馏的Qwen、Llama等小模型超过o1-mini

Preliminaries

为什么R1的效果突出:

  1. 站在巨人的肩膀上:现代LLM模型在写作的质量跟能力上已经有了质的飞跃,能够生成高质量的数据,让蒸馏这个行为变得可操作;

  2. 推理任务本身的特殊性:能够基于现有工具或模型实现自动验证或标注;

  3. 一条正确的路和从善如流的精神:从MoE,MLA到V3。本文中的大规模RL和回头草SFT。

Insights

  1. RL中奖励模型不使用PRM/ORM,而是直接对结果进行奖励,让模型通过大规模RL自主强化推理能力

  2. 对于小模型(32B以下),蒸馏比大规模RL更有效,可能是因为小模型的参数限制了它从大规模RL里提取范式的能力

    1. 虽然蒸馏策略既经济又有效,但想要突破智能的边界仍然需要更强大的基础模型,和更大规模的强化学习。

从V3到R1

DeepSeek的试错三步走模式:

  • 第一步,通过V3,得到R1-Zero

  • 第二步,通过V3 + R1-Zero的数据,得到X(DeepSeek没有给中间模型起名字)

  • 第三步,通过V3 + V3的数据 + X的数据,得到R1

image\.png

从V3到R1-Zero:面向推理的RL(RORL)

R1-Zero的意义在于,DeepSeek尝试探索不使用任何监督数据(SFT)来增强模型推理能力的方法,证明使用纯RL来提升模型性能是可以实现的。

比较有趣的是,在上帝视角下,DeepSeek探索R1的三步走过程中,R1-Zero仅仅是作为一个R1训练过程中产生数据的模型(X)的数据的模型出现,是引子的二阶导。DeepSeek带着“使用纯RL替代SFT”的思想开始探索,一步步又把自己带回强依赖SFT的模型上,并靠着模型效果出圈,恰恰证明了高质量数据在LLM的Post-training过程中是必不可少的。

强化学习

GRPO

[导读]DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models

[导读]DeepSeek-Prover-V1.5: Harnessing Proof Assistant Feedback for Reinforcement Learning and Monte-Carlo Tree Search

奖励模型

基于规则的奖励系统,包含两种奖励:

  • 准确率奖励:准确率奖励模型评估响应是否正确。例如,在具有确定性结果的数学问题中,模型需要以指定的格式(box)提供最终答案,从而能够通过基于规则的验证来可靠地确认正确性。同样,对于 LeetCode 问题,可以使用编译器根据预定义的测试用例生成反馈。

  • 格式奖励:要求模型将其思考过程放在 \ \</think> 标签之间。

image\.png

Note:训练过程没有使用基于NN的过程奖励模型,因为DeepSeek发现在大规模的RL训练过程中,NN奖励模型容易被“Reward hacking”;而重新训练这个reward model会增加额外的资源,让整个训练过程复杂化。

效果与Aha-moment

先看R1-zero在训练过程中的效果与整体推理数据集上的效果:

image\.png

image\.png

在训练过程中,r1-zero对于训练数据的平均回答长度在不停提升,说明模型在主动尝试通过更多的思考时间来解决更复杂的推理问题 (DeepSeek-R1-Zero naturally acquires the ability to solve increasingly complex reasoning tasks by leveraging extended test-time computation),。

image\.png

在这个过程中,模型出现了“Aha Moment”,即模型学会了使用更多的思考时间来重新审视自己最初提出的方法。

image\.png

短板

r1-zero的推理能力达到了SoTA水平,但是在通用方面存在短板,没有达到开源的水平。

  1. 可阅读性较差;

  2. 语言混淆。

从V3到X:冷启动SFT + RORL + SFT

原文里没有这一部分,单独拎出来是因为这样梳理会让整个探索过程更清晰 - X的作用只是为最后训练出R1提供数据。

DeepSeek-R1-Zero在推理方面的效果几乎达到了o1的水平,但在其他方面存在短板。因为r1-zero是纯RL驱动的,所以自然带来了两个问题:

  1. 在深度方面:如果使用一小部分高质量数据作为冷启动,能不能进一步提升推理方面的性能,或者加速模型的收敛?

  2. 在广度方面:能不能训练出一个更加用户友好的模型,除了在推理任务上有清晰的CoT,同时在其他更通用的领域也有很好的能力?

冷启动:更稳定的起点

冷启动阶段使用少量的高质量CoT数据对基础模型进行微调,目的是为后续的RL过程提供一个相对稳定的起点。

两种收集冷启动数据的方式(论文里没有详细提到用于冷启动SFT的数据中这两者的占比):

  • 使用一些长思维链的回答作为示例,直接提示模型生成包含反思和验证步骤的详细答案;

  • 收集r1-zero的输出,通过人工在可读性和结果方面进行细化。

    • 因为r1-zero的局限性之一是生成的内容不适合阅读:存在语言混淆,或是缺少markdown格式来把结果对用户高亮。所以在人工精细化r1-zero输出的过程中,定义了输出格式为:|SP token|\<推理过程>|SP token|\<总结>。

最终获得用于冷启动的几千条数据,对V3模型进行SFT。

面向推理的强化学习(RORL):强化推理能力与可读性

在冷启动SFT后的模型基础上,在代码和数学领域进行强化学习,来进一步提升模型的推理能力。这一阶段的强化学习和r1-zero基本是一致的,唯一的区别是为了缓解r1-zero存在的语言混乱的问题,在奖励模型中增加了一个语言一致性奖励,计算的方法是目标语言token在CoT中的比例。

通过将推理任务的准确性和语言一致性奖励直接相加,作为综合的奖励函数,对冷启动后的语言模型进行做RL,直到推理任务上达到收敛。消融实验发现这样的奖励模式会导致模型的表现略有下降,但是更加符合人类的阅读偏好,提升了内容可读性。

拒绝采样

通过对第二步模型的ckpt进行拒绝采样,生产推理数据。

  • 生产推理数据600k:目标是蒸馏强化学习模型的专用/通用推理能力。过滤了混合语言、长段落和代码块的思维链。

    • 对于数学、代码等领域,使用基于规则的奖励模型评估采样的结果,保留质量最好的样本;

    • 对于无法用规则奖励进行验证的推理问题,使用DeepSeek-V3作为奖励模型,把标签和模型输出结果一起输入到V3,由V3生成一个得分,并基于这个得分进行拒绝采样。

通过直接使用V3的SFT数据,或是引导V3生成带思维链的数据,生产通用数据。

  • 生产非推理数据200k:目标是让模型适配更加通用的推理任务

    • 复用部分DeepSeek-V3的SFT数据。对于这些非推理的任务,输入prompt要求V3在输出答案之前输出可能的CoT。对于特别简单的任务(如“Hello”)不加入CoT数据。

从V3到R1:SFT + 全场景RL

使用收集的600k推理数据+200k通用数据对DeepSeek-V3进行2个epoch的SFT。

如果是小规模的蒸馏模型(如Qwen/Llama),到这一步就结束了。而R1在这个基础上又做了一次全场景的强化学习。

全场景RL

使用组合的奖励信号和多样化的提示词来训练模型,使模型在保持推理能力的同时,能对齐人类偏好。

  • 对于推理数据,使用X的方法进行强化学习(与r1-zero不同的是,这部分数据已经经过奖励模型筛选,保证了推理能力的同时也对齐了人类的偏好)

  • 对于通用数据,使用两个维度的模型进行偏好对齐。

    • 帮助性奖励模型只接受最终的摘要作为输入,防止对推理过程产生干扰

    • 无害性奖励模型的输入会涉及整个输出(CoT+答案)

效果评估与讨论

Baseline

  • DeepSeek-V3

  • Claude-Sonnet-3.5-1022

  • GPT-4o-0513

  • OpenAI-o1-mini

  • OpenAI-o1-1217(因为在大陆调用API很困难,直接使用了官方报告中的效果)

对于蒸馏模型,增加了对QwQ-32B-Preview的比较。

评估数据集

  • 数学推理:AIME 2024, MATH-500

  • 代码:LiveCodeBench, Codeforces

  • 知识问答:MMLU, GPQA Diamond, SimpleQA

  • 开放式生成场景:AlpacaEval2.0, ArenaHard

  • 格式:IF-Eval

对于蒸馏模型,比较了AIME 2024, MATH-500, LiveCodeBench, Codeforces, GPQA Diamond上的效果。

效果

对于面向教育的知识评测集(MMLU/MMLU-Pro/GPQA),R1效果明显优于V3,说明大规模强化学习能够显著提升STEM相关问题的准确性

image\.png

蒸馏模型的结果:

image\.png

其他讨论

  1. 对于小模型(32B以下),蒸馏比大规模RL更有效,可能是因为小模型的参数限制了它从大规模RL里提取范式的能力。

    1. 虽然蒸馏策略既经济又有效,但想要突破智能的边界仍然需要更强大的基础模型,和更大规模的强化学习。

image\.png

  1. 一些无效的尝试

    1. 基于过程的奖励模型(PRM)效果不佳,推测是因为存在三方面的局限性:

      1. 在推理中定义出细粒度的步骤是非常有挑战性的;

      2. 判断当前中间步骤是否正确是另一项具有挑战性的任务,使用模型标注不一定有令人满意的结果,而人工标注又无法规模化;

      3. 一旦引入基于模型的PRM,不可避免的会导致reward hacking,而重新训练奖励模型又需要花费额外的训练资源,使整个训练流程变得更复杂。

    2. 蒙特卡洛树搜索:搜索空间太大,token生成意味着指数级增加的搜索空间;价值模型直接影响了生成质量。

References