GRPO 是 Group Policy Optimization 的缩写。它是一种用于直接对齐大语言模型与人类偏好的强化学习技术。
要理解GRPO,我们首先需要了解它的背景和它要解决的问题。
人们为了让大语言模型的输出不仅“正确”,而且“好”——即符合人类的价值观,比如有帮助、无害、诚实,做出了很多努力。
在GRPO之前,最主流的方法是 RLHF。RLHF 分为三步:
监督微调:用高质量的问答数据微调一个预训练模型。
奖励模型训练:训练一个独立的“奖励模型”,让它学会判断哪个回答更受人类喜欢。
强化学习优化:使用PPO等强化学习算法,以奖励模型的打分作为引导,去优化第一步中的SFT模型,使其生成高奖励的回答。
但是RLHF的缺点十分明显:流程复杂,需要训练和维护一个独立的、庞大的奖励模型,计算成本和工程难度都很高。
GRPO的核心创新在于摒弃了独立的奖励模型。它通过一种非常巧妙的方式,直接从偏好数据中提取“奖励信号”:
参考模型:使用经过监督微调后的模型作为固定的参考模型。
策略模型:这是我们需要优化的模型,初始状态和参考模型相同。
分组偏好数据:数据的形式是 (提示, 赢家回答, 输家回答)。
关键洞察:对于一个给定的提示,赢家回答的对数概率(由策略模型产生)应该高于输家回答的对数概率。
奖励计算:奖励信号直接来自于策略模型和参考模型输出概率的对数差异。具体来说,对于一个回答,其“隐式奖励”可以看作是:奖励 ∝ log(策略模型生成该回答的概率) - log(参考模型生成该回答的概率)。这个差值反映了当前策略模型相对于“安全底线”(参考模型)的偏离程度。如果策略模型对好回答的概率提升了很多,它就会获得正奖励;反之,如果它对差回答的概率提升了,就会获得负奖励。
优化目标:GRPO的损失函数结合了两个部分:
偏好损失:确保赢家回答的“隐式奖励”大于输家回答。这通常使用类似于DPO的配对损失。
KL惩罚项:防止策略模型偏离参考模型太远,以保持模型的性能稳定性和多样性,避免“模式崩溃”。
RLHF:像一个学生,旁边坐着一个严格的老师(奖励模型),学生每写一句话,老师就打分,学生根据分数调整写作风格。
GRPO:像一个学生,没有老师打分,而是直接给他看两篇范文(赢家和输家),让他学习模仿赢家的风格,同时提醒他不要忘记自己原本的基础(参考模型)。