1. 背景介绍
DeepSeek R1在复杂推理任务上可与OpenAI的o1相媲美,其采用了群体相对策略优化(Group Relative Policy Optimization,GRPO)和专注于强化学习的多阶段训练方法。使用纯强化学习进行后训练模型。在这一阶段,DeepSeek-R1-Zero(DeepSeek-R1的首次测试)学会通过重新评估初步方法来为问题分配更多思考时间,而无需任何人工反馈或描述如何操作的数据。
强化学习在推理任务中已展现出显著的有效性,但是这些研究在很大程度上依赖于监督数据,而收集这些数据耗时巨大。DeepSeek挖掘出大模型在无需任何监督数据的情况下发展推理能力的潜力,我们将重点关注其通过纯粹的强化学习过程实现自我进化。
2. 群体相对策略优化(GRPO)
2.1 GRPO概念介绍
为了降低强化学习的训练成本,DeepSeek采用群体相对策略优化(GRPO)。GRPO摒弃了传统强化学习中与策略模型同等规模的critic模型,而是通过群体得分来估计基准(baseline)。关于critic模型(价值模型)的介绍,可以参考《大模型中的强化学习RLHF(PPO)、DPO(Direct Preference Optimization)等概念的理解与解析》。
具体而言,对于每个问题 q,GRPO 从旧策略 中采样一组输出 ,然后优化策略模型 以最大化以下目标函数:
其中, 和 是超参数, 是优势(advantage),计算方式如下:
,
优势 由每个群体中的奖励值 计算得到:
从公式来看, 是通过去均值并归一化到标准差的方式计算的,数学上称之为Z-score标准化(Z-score normalization), 表示 其实是奖励 在该群体中的标准化分数,衡量了它相对于群体均值的偏离程度。
让我们来细看下GRPO的学习目标。从GRPO 的目标函数可以看到:
第一部分:策略更新项
-
这个比值衡量了新策略 相比旧策略 生成某个输出 的概率变化:- 若比值大于 1,则新策略增加了该输出的概率。
- 若比值小于 1,则新策略减少了该输出的概率。
-
(优势值)
- 代表该输出 相对于群体的相对奖励水平,高于均值的 具有正优势,低于均值的 具有负优势。
- 目标是增加高奖励输出的概率,减少低奖励输出的概率。
-
剪裁操作(clipping)
- 限制策略更新的幅度,避免模型发生剧烈变化,保证训练稳定性。
- 这类似于 PPO(Proximal Policy Optimization)中的重要性采样比值裁剪。
第二部分:KL 散度正则项
- 这里的衡量了新策略 与某个参考策略 之间的差异。
- 这一项的作用是防止策略偏离太远,让更新保持平稳。
2.2 GRPO训练步骤
采样(Sampling):
使用当前策略为每个提示生成多个输出。
奖励评分(Reward Scoring):
使用奖励函数对每个生成的输出进行评分,奖励函数可以是基于规则的或基于结果的。
优势计算(Advantage Calculation):
生成输出的平均奖励作为基准。然后,计算每个解在该组中的优势,相对于该基准。奖励在组内进行归一化。
策略优化(Policy Optimization):
策略尝试最大化 GRPO 目标,该目标包括计算出的优势和一个 KL 散度(KL divergence) 项。与 PPO 在奖励中实现 KL 项的方式不同。
2.2 奖励建模
奖励是训练信号的来源,它决定了强化学习的优化方向。在训练 DeepSeek-R1-Zero 时,采用了一种基于规则的奖励系统,主要包括两类奖励:
-
准确性奖励(Accuracy rewards): 该奖励模型用于评估模型回答的正确性。例如,在数学题这种具有确定性结果的场景中,模型需要以指定的格式(如放在一个框内)提供最终答案,以便通过基于规则的方式可靠地验证其正确性。同样地,对于 LeetCode 题目,可以利用编译器基于预定义的测试用例生成反馈,从而判断代码的正确性。
-
格式奖励(Format rewards): 除了准确性奖励模型,还引入了格式奖励模型,要求模型在
<think>
和</think>
标签之间呈现其推理过程,从而规范其输出格式。
在 DeepSeek-R1-Zero 的训练过程中,不使用基于神经网络的结果奖励或过程奖励模型。原因在于,在大规模强化学习过程中,神经奖励模型可能会遭受“奖励欺骗”(reward hacking)问题,而且重新训练奖励模型需要额外的计算资源,增加了整个训练流程的复杂性。
2.3 训练模板
在训练 DeepSeek-R1-Zero 时,首先设计一个简单明了的模板,用于引导基础模型遵循指定的指令。如下所示,该模板要求 DeepSeek-R1-Zero 先生成推理过程,再给出最终答案。
用户与助手的对话:
用户提出问题,助手进行解答。
助手首先思考推理过程,然后提供答案。推理过程和答案分别被<think></think>
和<answer></answer>
标签包围,即:
<think> 推理过程 </think> <answer> 答案 </answer>
。用户:prompt(问题)。
助手:
在训练过程中,prompt
将被具体的推理问题所替代。
DeepSeek将约束限制在这种结构化格式上,而不施加任何特定的内容偏见,例如:
- 不强制模型进行反思性推理(reflective reasoning)。
- 不偏向特定的问题解决策略(problem-solving strategies)。
这样可以确保在强化学习过程中,能够准确观察模型的自然学习进程,而不会因人为设计的偏向影响模型的行为。
以上给出关于GRPO的一些介绍,后续将会给出实战分享。
3. 参考材料
【1】DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
【2】DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models