LLM场景下的强化学习【GRPO】
关于PPO可以参考:LLM场景下的强化学习【PPO】-CSDN博客
一、RLHF-PPO的缺陷与GRPO的改进
1. 奖励欺骗问题
在RLHF-PPO中,人类偏好数据是非常重要的,它能帮助模型按照我们的期望去有针对性的更新策略,生成更符合我们需求的答案。但是,这样可能会导致模型学习“刷分”行为,也就是堆砌Reward Model偏好的关键词但破坏逻辑连贯性,出现每一步奖励都高,但过程和结果都错的情况。
GRPO选择抛弃SFT环节(并不是完全抛弃,还是需要SFT解决cold-start问题),不引入人类偏好数据,仅对最终的答案评估一次奖励,让模型自己去摸索中间的思考过程,这种方式更能激发模型的推理能力。
总的来讲,就是PPO方法太专注于让模型学习人类的思维模式了,而GRPO成功让模型学习出更适合AI的一套思维方式。
将策略模型当做学生,将奖励模型当做老师。
RLHF-PPO相当于单人辅导,只有一位老师(Value Model)和一位学生(Actor Model),这位学生为了能在模拟考中取得高分(一次模拟考代表一次奖励过程),会把每次模拟考的题目以及解法都背下来(更新策略),并且也会学习思考,即使题目有一些变化,它也能成功解决。但是,这样的学生无法超越老师,比如一道数学题有四种解法,但是老师也只会三种,那么学生大概率只能学会这三种解法,只有较低概率能泛化学习到第四种解法,并且即使学习到新的解法,还是会倾向使用老师教的方法。这样的学生在高考中表现可能就会下降,因为高考有新的题型,更加考验推理能力。
(需要解释下,PPO实际是在完整轨迹结束后才更新策略,而不是每次状态转移都更新,上述的例子在这个概念上存在歧义)
GRPO采取了另一条路线,它不再需要老师(Value Model),只会招来一群学生(多个策略)。GRPO会告诉这群学生,你们的目标就是在高考中取得高分,但是没有老师教你们,只会给你们一堆撕掉了答案的模拟考试卷(无监督数据),你们自己去琢磨这些题目怎么做。当高考出分的那一刻,这些学生才知道自己一直以来学习到的策略是否正确。但是没有老师教的学生第一年大概率考不好,所以会让其中考得比平均分高的学生复读(迭代),其余学生直接退学,并且重新招收一批新学生。在新的一年,学生们会根据自己上一年高考分数调整学习的策略(策略更新),以求取得更高的分数。直至某一年,有个学生成功考上清北,证明诞生了非常优秀的策略,所有学生终于能从高中毕业啦!
此外,如果我们直接让幼儿园学生来自学然后高考,可能需要花太长时间(迭代次数过多),所以会先让老师将学生培养到初中生水准(SFT训练,解决Cold start问题),再让学生们去高中自学。
2. 资源开销问题
PPO需要维护四个模型,其中两个模型需要更新,并且每个模型的参数量都不小,对资源的要求比较高。
GRPO直接去掉了Value Model,只需要更新Policy Model,然后奖励的计算也从每一次状态迁移都计算,变成了仅在最后计算一次奖励。值得注意的是,GRPO依赖多个并行策略,每个策略只计算一次奖励,最后奖励计算次数等于策略数目,不过这个过程可以通过并行计算减少开销。
二、GRPO算法细节
1、原理上的变化
从上述学生与老师的例子中,已经展现了GRPO相对于PPO的几个重要改进点。
-
删去Value Model(不需要老师):注意Reward Model还是需要的,相当于要有个高考的评卷人。
-
多策略并行(招收多个学生):GRPO并没有采取PPO一样的基于梯度的优化策略,而是采取了“优胜劣汰”的优化策略。换句话说,就是PPO努力让一个学生越来越优秀,而GRPO则是直接从一群学生中选择最好的。
-
无监督训练(撕掉了答案的模拟卷):GRPO并非全程都是无监督,它还是需要先用一批监督数据,训练出Reward Model,以及使用带有长思维链标注的数据来训练初始的Policy Model,解决cold-start问题。在后续的训练过程中,则是使用大规模无监督数据进行训练,训练好的Reward Model用于给模型答案进行打分。
-
不计算中间奖励,仅计算最终奖励(模拟考不评分,高考才评分):PPO会对每个动作(生成新的token)都计算一次动作价值与状态价值,并进一步计算优势。而GRPO仅计算每个策略的最终奖励,也就是在一次迭代中,每个策略只会在生成完整答案后计算一次奖励。
2、目标函数的变化
先来看PPO的目标函数,包含三部分,第一部分是策略模型的目标函数,第二部分是价值模型的目标函数,第三部分是用于鼓励策略模型探索新策略而引入的熵奖励项。
多数文章中可能只有前两项,不过既然上面的例子中提到了PPO存在“难以学习新的解法”的问题,所以这里也简单提及一下,引入熵奖励项算是一种缓解问题的方案。
策略模型与价值模型这两项如何解读,可以看置顶参考文章。

再来看GRPO的目标函数,第一项是计算某个策略相比其他策略的优势,此处优势的计算策略很简单,首先会计算每一个策略的最终奖励 ,并计算一个群体平均奖励
,策略的优势就是最终奖励与平均奖励的差值,再经过一个
函数。
第二项是KL正则,就是传统的KL惩罚项,作用是强制新策略在基础能力上不退化(例如语言生成能力),保证在高中自学过程中不忘记初中知识。

后续待更新ing