了解 GRPO 算法:一种强化学习中的高效优化方法

embedded/2025/1/24 6:01:46/

了解 GRPO 算法:一种高效的强化学习优化方法

强化学习(Reinforcement Learning,RL)作为一种模仿人类行为的学习方式,在很多复杂任务中得到了广泛应用。然而,如何在大规模任务中高效地优化策略,始终是一个值得探讨的问题。传统的强化学习方法通常依赖于一个额外的评论模型,该模型与策略模型一样大,负责评估当前策略的“好坏”程度。然而,评论模型的存在不仅增加了计算的开销,也导致了训练效率的低下。为了解决这一问题,**群体相对策略优化(GRPO)**应运而生。GRPO通过摒弃评论模型,利用更高效的群体样本来优化策略,从而显著提升了强化学习的效率。

本文将详细解读 GRPO 算法的核心思想,并探讨它与 PPO(Proximal Policy Optimization)算法的关系,帮助读者理解该算法在强化学习中的应用和优势。

评论模型可参考本账号文章《大模型后训练之强化学习PPO算法》,其中的价值函数即为PPO算法评论模型。)

1. 什么是 GRPO?

群体相对策略优化(Group Relative Policy Optimization, GRPO) 是一种旨在提升强化学习效率的优化方法。与传统的强化学习方法不同,GRPO不依赖于评论模型,而是通过群体样本来估算奖励,并根据这些样本来优化策略。GRPO 的关键创新在于,利用从旧策略生成的输出样本来进行奖励估算,并通过这些样本对策略进行优化,避免了评论模型带来的计算开销。

GRPO 的优化目标

GRPO的目标是通过最大化一组候选输出的优势(Advantage),来优化当前的策略模型 π θ \pi_\theta πθ。具体来说,优化目标通过以下公式来表示:

J G R P O ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ old ( O [ q ] ) ] \mathcal{J}_{\mathrm{GRPO}}(\theta) = \mathbb{E}[q \sim P(Q), \left\{o_i\right\}_{i=1}^{G} \sim \pi_{\theta_{\text{old}}}(O[q])] JGRPO(θ)=E[qP(Q),{oi}i=1Gπθold(O[q])]

在这个公式中, q q q 代表问题样本, π θ old \pi_{\theta_{\text{old}}} πθold 是旧策略, { o 1 , o 2 , … , o G } \{o_1, o_2, \dots, o_G\} {o1,o2,,oG} 是从旧策略中生成的一组候选输出。然后,GRPO 根据这些输出的优势来优化当前策略 π θ \pi_\theta πθ

优化目标的具体形式为:

1 G ∑ i = 1 G ( min ⁡ ( π θ ( o i ∣ q ) π θ old ( o i ∣ q ) A i , clip ⁡ ( π θ ( o i ∣ q ) π θ old ( o i ∣ q ) , 1 − ε , 1 + ε ) A i ) − β D K L ( π θ ∥ π r e f ) ) \frac{1}{G} \sum_{i=1}^{G} \left( \min \left( \frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{\text{old}}}(o_i|q)} A_i, \operatorname{clip}\left( \frac{\pi_{\theta}(o_i|q)}{\pi_{\theta_{\text{old}}}(o_i|q)}, 1-\varepsilon, 1+\varepsilon \right) A_i \right) - \beta \mathbb{D}_{KL}(\pi_{\theta} \| \pi_{ref}) \right) G1i=1G(min(πθold(oiq)πθ(oiq)Ai,clip(πθold(oiq)πθ(oiq),1ε,1+ε)Ai)βDKL(πθπref))

  • A i A_i Ai:表示每个输出的优势,衡量了输出相对于其他输出的相对优劣。
  • ε \varepsilon ε:用于控制策略更新的幅度,防止更新过大。
  • β \beta β:用于平衡 KL 散度项的影响。
  • D K L ( π θ ∥ π r e f ) \mathbb{D}_{KL}(\pi_{\theta} \| \pi_{ref}) DKL(πθπref):计算当前策略与参考策略之间的KL散度,起到正则化的作用。

优势 A i A_i Ai 的计算方式为:

A i = r i − mean ⁡ ( { r 1 , r 2 , … , r G } ) std ⁡ ( { r 1 , r 2 , … , r G } ) A_i = \frac{r_i - \operatorname{mean}\left(\left\{r_1, r_2, \dots, r_G\right\}\right)}{\operatorname{std}\left(\left\{r_1, r_2, \dots, r_G\right\}\right)} Ai=std({r1,r2,,rG})rimean({r1,r2,,rG})

其中, r i r_i ri 是与候选输出 o i o_i oi 对应的奖励值, mean ⁡ \operatorname{mean} mean std ⁡ \operatorname{std} std 分别表示所有候选输出的奖励的均值和标准差。

2. GRPO 与 PPO 的关系

GRPO 算法PPO(Proximal Policy Optimization)算法有着密切的关系。PPO 是强化学习中非常流行的一种策略优化方法,它的核心思想是通过限制策略更新的幅度来避免过度的策略变化,从而保持训练的稳定性。PPO 使用了一个叫做**剪切目标(clipped objective)**的技术,通过限制策略更新的范围,防止策略出现过度优化的情况。

PPO 的优化目标

PPO 的优化目标可以表示为:

J P P O ( θ ) = E [ min ⁡ ( π θ ( o ∣ q ) π θ old ( o ∣ q ) A , clip ⁡ ( π θ ( o ∣ q ) π θ old ( o ∣ q ) , 1 − ε , 1 + ε ) A ) ] \mathcal{J}_{\mathrm{PPO}}(\theta) = \mathbb{E}\left[\min\left(\frac{\pi_\theta(o|q)}{\pi_{\theta_{\text{old}}}(o|q)} A, \operatorname{clip}\left(\frac{\pi_\theta(o|q)}{\pi_{\theta_{\text{old}}}(o|q)}, 1-\varepsilon, 1+\varepsilon\right) A\right)\right] JPPO(θ)=E[min(πθold(oq)πθ(oq)A,clip(πθold(oq)πθ(oq),1ε,1+ε)A)]

与 GRPO 类似,PPO 也采用了优势(Advantage) A A A 来衡量策略的优劣,并通过剪切目标来避免过大的更新。然而,PPO 依然需要一个评论模型来评估策略的好坏,而 GRPO 则完全依赖于群体样本来进行优化,没有评论模型的参与。

主要区别
  • 评论模型:PPO 依赖评论模型来计算优势 A A A,而 GRPO 则通过群体样本的方式估算奖励。
  • 训练效率:由于 GRPO 避免了评论模型,减少了计算开销,因此在大规模任务中,GRPO 更加高效。
  • 正则化项:GRPO 引入了 KL 散度项 D K L ( π θ ∥ π r e f ) \mathbb{D}_{KL}(\pi_{\theta} \| \pi_{ref}) DKL(πθπref) 作为正则化项,以进一步控制策略的更新,而 PPO 则通过剪切目标来进行策略限制。

3. 为什么 GRPO 有效?

GRPO 的有效性源于以下几个方面:

  1. 减少计算开销:传统的强化学习方法通常依赖于评论模型来评估策略,而 GRPO 则通过群体样本来估算奖励,避免了额外的计算开销。
  2. 高效的策略优化:通过群体样本的优势评估,GRPO 能够更快速地对策略进行优化,尤其在面对复杂的长期决策问题时,能够有效提高效率。
  3. 稳健的正则化:KL 散度项的引入使得 GRPO 更加稳健,能够在复杂任务中避免过拟合,保持良好的泛化能力。

4. 总结

GRPO 作为一种新的强化学习优化方法,通过摒弃传统的评论模型并利用群体样本来进行奖励估算,实现了更加高效的策略优化。与 PPO 相比,GRPO 在计算开销和训练效率上具有明显优势,尤其在大规模任务中展现出了卓越的性能。随着强化学习应用场景的不断扩展,GRPO 可能会成为解决复杂决策任务中的一种重要工具。



附件:

《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via
Reinforcement Learning》第5页

  • 其他:DeepSeek-R1 也在多个任务中表现出色,包括创意写作、一般问题回答、编辑、总结等。它在 AlpacaEval 2.0 上达到了令人印象深刻的长度控制胜率 87.6%,在 ArenaHard 上的胜率为 92.3%,展示了其强大的能力,能够智能地处理非考试类的查询。此外,DeepSeek-R1 在需要长时上下文理解的任务中表现出色,远超 DeepSeek-V3 在长时上下文基准上的表现。

2. 方法

2.1. 概述

以往的研究通常依赖大量的监督数据来提升模型性能。在本研究中,我们展示了即使不使用监督微调(SFT)作为冷启动,通过大规模强化学习(RL)也可以显著提高推理能力。此外,性能可以通过加入少量的冷启动数据进一步提升。接下来的部分将介绍:(1)DeepSeek-R1-Zero,它直接对基础模型应用 RL,且没有任何 SFT 数据;(2)DeepSeek-R1,它从一个使用数千个长链式思维(CoT)示例微调的检查点开始应用 RL;(3)将 DeepSeek-R1 的推理能力蒸馏到小型稠密模型中。

2.2. DeepSeek-R1-Zero:在基础模型上进行强化学习

强化学习在推理任务中已经证明了其显著的有效性,如我们之前的工作所展示(Shao et al., 2024; Wang et al., 2023)。然而,这些工作在很大程度上依赖于监督数据,而收集这些数据是非常耗时的。在本节中,我们探索了 LLM(大语言模型)在\textbf{没有任何监督数据}的情况下,通过纯强化学习过程自我进化的潜力。我们将首先简要概述我们的强化学习算法,然后展示一些令人兴奋的结果,希望能为学术界提供有价值的见解。

2.2.1. 强化学习算法

群体相对策略优化GRPO 为了节省 RL 训练的成本,我们采用了群体相对策略优化(GRPO)(Shao et al., 2024),它省去了通常与策略模型大小相同的评论模型,而是从群体评分中估算基准。具体而言,对于每个问题 q q q,GRPO 从旧策略 π θ old \pi_{\theta_{\text{old}}} πθold 中采样一组输出 { o 1 , o 2 , ⋯ , o G } \{o_1, o_2, \cdots, o_G\} {o1,o2,,oG},然后通过最大化以下目标来优化策略模型 π θ \pi_\theta πθ
J G R P O ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ old ( O [ q ] ) ] \mathcal{J}_{\mathrm{GRPO}}(\theta)=\mathbb{E}[q \sim P(Q),\left\{o_i\right\}_{i=1}^{G} \sim \pi_{\theta_{\text{old}}}(O[q])] JGRPO(θ)=E[qP(Q),{oi}i=1Gπθold(O[q])]
1 G ∑ i = 1 G ( min ⁡ ( π θ ( o i ∣ q ) π θ old ( o i ∣ q ) A i , clip ⁡ ( π θ ( o i ∣ q ) π θ old ( o i ∣ q ) , 1 − ε , 1 + ε ) A i ) − β D K L ( π θ ∥ π r e f ) ) , \frac{1}{G} \sum_{i=1}^{G}\left(\min \left(\frac{\pi_{\theta}\left(o_i|q\right)}{\pi_{\theta_{\text{old}}}\left(o_i|q\right)} A_i, \operatorname{clip}\left(\frac{\pi_{\theta}\left(o_i|q\right)}{\pi_{\theta_{\text{old}}}\left(o_i|q\right)}, 1-\varepsilon, 1+\varepsilon\right) A_i\right)-\beta \mathbb{D}_{K L}\left(\pi_{\theta} \| \pi_{r e f}\right)\right), G1i=1G(min(πθold(oiq)πθ(oiq)Ai,clip(πθold(oiq)πθ(oiq),1ε,1+ε)Ai)βDKL(πθπref)),
D K L ( π θ ∥ π r e f ) = π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − log ⁡ π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − 1 , \mathbb{D}_{K L}\left(\pi_{\theta} \| \pi_{r e f}\right)=\frac{\pi_{r e f}\left(o_i|q\right)}{\pi_{\theta}\left(o_i|q\right)}-\log \frac{\pi_{r e f}\left(o_i|q\right)}{\pi_{\theta}\left(o_i|q\right)}-1, DKL(πθπref)=πθ(oiq)πref(oiq)logπθ(oiq)πref(oiq)1,
其中 ε \varepsilon ε β \beta β 是超参数, A i A_i Ai 是优势,使用与每组输出相对应的奖励 { r 1 , r 2 , … , r G } \{r_1, r_2, \ldots, r_G\} {r1,r2,,rG} 来计算:
A i = r i − mean ⁡ ( { r 1 , r 2 , ⋯ , r G } ) std ⁡ ( { r 1 , r 2 , ⋯ , r G } ) . A_i=\frac{r_i-\operatorname{mean}\left(\left\{r_1, r_2, \cdots, r_G\right\}\right)}{\operatorname{std}\left(\left\{r_1, r_2, \cdots, r_G\right\}\right)}. Ai=std({r1,r2,,rG})rimean({r1,r2,,rG}).


http://www.ppmy.cn/embedded/156489.html

相关文章

09 以太坊技术介绍

以太坊技术架构 架构概述 以太坊属于公链,所有节点都具有相同的功能。 以太坊技术架构自上而下依次为应用层、合约层、通信层、共识层、网络层、数据层、存储层。 应用层 应用层主要对应Dapp应用模块,其中包含多种区块链应用场景典型案例。 合约层 …

2025年黑客技术之网络安全简介(入门篇)

目录 前言 一、什么是网络安全? 二、网络安全的重要性 1、保护数据安全和隐私 2、防止服务中断和数据丢失 3、防止经济损失和法律责任 4、维护公共安全和国家安全 5、提升技术发展和创新 三、网络安全等级保护 1、第一级(自主保护级&#xff…

【测试】UI自动化测试

长期更新,建议关注收藏点赞! 目录 概论WEB环境搭建Selenium APPAppium 概论 使用工具和代码执行用例。 什么样的项目需要自动化? 需要回归测试、自动化的功能模块需求变更不频繁、项目周期长(功能测试时长:UI自动化测…

【数据结构】二分查找

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

Flutter 改完安卓 applicationId 后App 闪退问题。

一、问题 当我们项目创建完,想 build.gradle 改 applicationId 的时候,再次执行的时候可能会出现 app 闪退问题, 控制台不显示任何错误提示 也不出现 Exit 停止运行的情况。(像下方这样, 而 app 只是在模拟器中一闪而…

计算机毕业设计Python+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Jetpack Compose 和 Compose Multiplatform 还有 KMP 的关系

今天刚好看到官方发布了一篇文章,用于讨论 Compose Multiplatform 和 Jetpack Compose 之间的区别,突然想起之前评论区经常看到说 “Flutter 和 CMP 对于 Google 来说项目重叠的问题”,刚好可以放一起聊一聊。 最近写的几篇内容写的太干&…

【Elasticsearch】inference ingest pipeline

Elasticsearch 的 Ingest Pipeline 功能允许你在数据索引之前对其进行预处理。通过使用 Ingest Pipeline,你可以执行各种数据转换和富化操作,包括使用机器学习模型进行推理(inference)。这在处理词嵌入、情感分析、图像识别等场景…