今天我们来回顾一下**群体相对策略优化 (GRPO)**背后的数学原理,这是 DeepSeek 强大推理能力的核心强化学习算法。我将一一分析 GRPO 的工作原理、关键组成部分,以及它为何能颠覆大型语言模型(LLM)训练的方式。
GRPO 的基础
什么是 GRPO?
**群体相对策略优化(GRPO)**是一种强化学习算法,专门用来提升大语言模型的推理能力。与传统方法不同,GRPO 不是依赖外部的“评论者”来评价每个回答,而是通过对一组回答进行相互比较来优化模型。这种方式使得训练过程更加高效,特别适合解决那些需要复杂推理和长链思维的任务。
为什么选择 GRPO?
传统的强化学习方法,比如近端策略优化(PPO) ,在面对推理任务时会遇到一些问题:
-
依赖外部评论者:
- PPO 通常需要一个单独的模型来评价每个回答的质量,这样会大大增加计算和存储的负担。
- 评论者模型的训练也非常复杂,尤其是在任务的评价标准较为主观时,容易出错。
-
高计算成本:
- 强化学习的训练过程通常需要大量的计算资源,反复评估和优化回答。
- 当应用到大型语言模型时,计算资源的需求更加庞大。
-
可扩展性差:
- 绝对奖励评估在多种不同任务中难以适应,导致在不同推理任务间的迁移效果不好。
GRPO 如何解决这些问题?
- 无需外部评论者:GRPO 通过对一组回答进行比较,省去了外部评论者模型的需求,降低了计算开销。
- 相对评价:不依赖外部的评分系统,GRPO 通过在同一组内对不同回答进行比较,来评估每个回答的表现。
- 高效训练:GRPO 的训练聚焦于组内的相对优势,简化了奖励估算的过程,使得训练更快速、扩展性更强,尤其适合大规模模型。
关键思想
GRPO 的核心理念是相对评价:
- 对于每个输入,模型会生成多个潜在的回答。
- 这些回答并不是单独评价,而是与同组其他回答进行比较。
- 每个回答的优势指的是它相对于组内其他回答的表现,是好还是差。
这种方法避免了使用评论者模型,使得 GRPO 更加高效和稳定。通过在组内引发竞争,GRPO 能促使模型不断改进推理能力。正是这种创新,使得 DeepSeek 在推理任务中表现卓越。
GRPO 的目标函数
GRPO 的目标函数是用来指导模型如何调整策略,从而生成更高质量的回答。通过组内的比较,GRPO 使得模型可以在不断的优化中逐步提升推理和回答的能力。
用简单术语理解 GRPO 目标函数
GRPO(群体相对策略优化)的目标函数,就像是一个“训练计划”,它帮助模型通过比较自己的回答,逐渐改进,最终变得更擅长生成高质量的回答。接下来,我们会一步步解析它,让每个部分都变得通俗易懂。
目标是什么?
假设你在教一群学生做数学题。你不直接告诉他们哪个答案对哪个错,而是先把所有学生的答案拿出来,看看谁做得最好(并分析为什么)。然后,你奖励做得好的学生,并帮助其他学生改进,最终让每个学生都进步。这就是 GRPO 的工作方式——它帮助 AI 模型改进自己的表现,而不是学生。
一步步解析
步骤 1:选择一个查询
首先,从训练数据中选择一个问题。
例子:比如问题是“8 + 5 等于多少?”
步骤 2:生成一组回答
模型根据问题生成多个答案。
例子:模型可能生成以下几种回答:
- o1:“答案是 13。”
- o2:“十三。”
- o3:“是 12。”
- o4:“和是 13。”
步骤 3:为每个回答计算奖励
奖励是什么?
奖励是用来指导模型学习的,它衡量每个回答的质量。
GRPO 中的奖励类型:
- 准确性奖励:回答是否正确(例如数学题的答案是否正确)。
- 格式奖励:回答是否符合规定的格式(比如推理过程是否清晰)。
- 语言一致性奖励:回答是否语言流畅、格式一致。
为每个回答分配一个奖励分数(ri),例如:
- r1=1.0(正确且格式规范)
- r2=0.9(正确,但不够正式)
- r3=0.0(错误)
- r4=1.0(正确且格式规范)
步骤 4:比较回答(组内优势)
接下来,模型会计算每个回答相对于其他回答的优势(Ai) :
-
比较每个回答和组内其他回答的平均水平:
- 如果某个回答表现比平均水平好,它就会得到正分;
- 如果某个回答表现比平均水平差,它就会得到负分。
这种方法鼓励模型在组内竞争,不断提升表现。通过与其他回答的比较,模型能学到哪些回答更好,从而不断改进自己的推理能力。
更简单的理解方式:
- 我们先比较每个回答和组内其他回答的平均水平:如果某个回答比平均水平好,它就会得到正分;如果差于平均水平,它就得到负分。
- 这种方法就像是让回答之间进行“竞争”,从而推动模型生成越来越好的答案。
步骤 5:使用剪切更新策略
- 举个例子:假如新策略开始过分偏向某个回答,比如 o1,剪切策略会确保它不会因为过度偏向这个回答而影响整体结果。
- 这样,即使在推理这类复杂任务中,也能确保策略优化稳定、可靠。
步骤 6:使用 KL 散度惩罚偏差
综合起来
GRPO 目标的工作原理可以这样理解:
- 生成一组回答:首先,模型会为一个问题生成多个可能的回答。
- 计算每个回答的奖励:根据一些标准,比如回答的准确性和格式,给每个回答打分。
- 比较回答之间的优劣:接下来,模型会把这些回答相互比较,算出每个回答的“相对优势”。
- 更新策略:模型会根据“优势”来调整自己的策略,更多支持那些表现更好的回答,并确保这种调整是稳定的。
- 避免过度偏离:最后,通过一些规范性的更新,确保模型不会偏离最初的学习方向,保持稳定的进步。
为什么 GRPO 有效?
- 无需评审员:GRPO 通过群体比较来代替单独的评估者,这样就能节省计算资源,降低成本。
- 稳定的学习过程:剪切更新策略和 KL 散度正则化确保模型在训练时不会出现过大的波动,保持稳定的进步。
- 高效的训练:因为它专注于相对表现,所以特别适合像推理这种很难用绝对评分来评判的任务。
现实生活中的类比
可以想象一群学生在做一个问题。老师不再单独给每个学生评分,而是让学生们自己比较答案。做得好的学生会得到鼓励,而做得不好的学生会从错误中学习。随着时间的推移,整个班级会不断进步,答案变得越来越准确、一致。GRPO 就是把这个道理应用到 AI 模型的训练中,帮助它们更有效、更高效地学习。
GRPO 与 PPO 的比较
GRPO 的实际应用:DeepSeek 的成功
GRPO 通过实现高效且可扩展的推理任务训练,推动了 DeepSeek 的出色表现。下面是它如何转化为成功的几个关键点:
- 增强推理能力:GRPO 让DeepSeek-R1-Zero在 AIME 2024 比赛中取得了 71.0% 的 Pass@1 分数,并通过集体投票的方式,将分数提升到了86.7% 。在解决数学和逻辑问题时,它的表现已经可以与 OpenAI 等顶尖专有模型相媲美。
- 新兴能力:通过 GRPO,DeepSeek 模型展现了更高级的推理能力,比如自我验证、反思和长链思维,这些能力对于解决复杂任务至关重要。
- 可扩展性:GRPO 的群体优化方式不再依赖单独的评论模型,减少了计算成本,使得大规模训练成为可能。
- 提炼成功:通过从 GRPO 训练得到的检查点提炼出的小型模型,DeepSeek 能保持较高的推理能力,同时更加易于部署和具有成本效益。
通过关注回答间的相对表现,GRPO 让 DeepSeek 在推理任务、长时间上下文理解以及一般 AI 任务中设定了新的标杆,同时确保了训练的效率和可扩展性。