Group Relative Policy Optimization(GRPO) ,从DeepSeekMath被提出:
一、 PPO与GRPO的对比图
PPO中使用的值模型(value model)通常是另一个与策略模型(policy model)大小差不多的模型,因此会带来很大的内存和计算负担。因此作者提出了一个GRPO, 取缔掉了值模型。如下图Figure 4.
二、 为什么要提出GRPO
作者的原文是这样写的,下图划线部分:
"While in the LLM context, usually only the last token is assigned a reward score by the reward model, which may complicate the training of a value function that is accurate at each token. "
(在大语言模型(LLM)上下文中,通常只有最后一个标记会被奖励模型分配奖励分数,这可能会使得训练一个在每个标记上都能准确评估的值函数变得更加复杂)
我们来详细理解一下划线部分:
reward model 只对最后一个token赋予奖励
当使用奖励模型时,通常只有最后一个标记(即生成序列中的最后一个单词或符号)会被分配一个奖励分数。这是因为奖励模型通常会在生成整个文本之后,再回过头来评估整个生成的序列的质量,而不是针对每个中间标记进行实时评估。为什么只对最后一个标记赋予奖励?
在很多任务中,奖励往往是基于整个生成序列的最终质量来给出的。例如,在问答系统中,回答的最终准确性决定了回答是否好,而不仅仅是每个中间单词的好坏。
由于生成是逐步进行的,奖励模型会根据最终生成的输出给出一个总结性的评分。-
值函数的训练
值函数的任务是评估当前策略模型(Policy Model)在某个状态下采取某个动作的预期奖励。在序列生成任务中,值函数应该能够为每个生成的标记(token)都提供一个准确的奖励评估,而不仅仅是为整个序列的最后一个标记提供评估。- 比如,在生成句子的过程中,我们希望每一步生成的标记都能得到一个评估分数,而不是仅仅等到句子生成完毕才给出一个总结性的评估。
- 这样,策略模型在每次生成标记时,就能根据即时的奖励来调整生成过程,优化每个标记的生成,而不是等待整个句子生成完毕后才进行优化。
-
问题的复杂性
由于奖励模型通常只对最后一个标记提供奖励分数,这使得在训练值函数时,每个标记的评估变得更加困难。训练值函数的目的是让它能够准确地预测每个标记的奖励,但是,如果只有最后一个标记被评分,如何知道之前的每个标记的表现如何?如何训练值函数来准确评估每个标记的质量呢?- 如果没有每个标记的即时奖励反馈,值函数就无法准确地评估每个标记的价值,而是依赖于整个生成序列的最终评估,这样就很难在训练过程中优化每个标记的生成。
- 这种方式会导致值函数的训练更加复杂,因为它需要通过间接的方式(比如计算整个序列的最终奖励,再回推到每个标记的估计)来估计每个标记的奖励,而这种回推过程是比较复杂的。
总结来说就是:由于在LLM的训练中,奖励模型通常只为生成序列的最后一个token分配奖励分数,这就使得训练一个能够在每个token上都提供准确评估的值函数变得更加复杂。简单来说,值函数需要准确评估每个token的质量,而奖励模型只在最后一个token处提供奖励,这种设计使得逐步优化每个标记的过程变得更难。
三、GRPO是如何做的
针对一个问题q,从旧的策略网络中采样一组输出(o1, ... oG),最大化公式(3)
值得注意的是:
- GRPO并没有在奖励中添加KL惩罚,而是通过直接将训练策略和参考策略之间的KL散度添加到损失函数中来进行正则化,从而避免了使得𝐴^𝑖,𝑡的计算变得复杂
- GRPO使用公式(4)的无偏估计器来估计KL散度(Schulman, 2020)
- 一组指的是,一个question的一组output
四、 GRPO 算法
重点看划红线的部分,𝐴^𝑖,𝑡 (组相对优势估计)是针对 每个答案oi 的 第t-th个token 计算的。
五、 结果/过程监督
作者举了个例子,如何利用过程/结果的reward,比如结果监督可以采用组reward归一化的方式来进行,详细看下面论文:
补充知识:
用简单易懂的方式理解RLHF中的PPO中各个模型的作用,Policy model, Reference Model, Reward Model, Value Model:
假设用户输入:“我应该穿什么衣服?”
- 策略模型:生成多种回答:
“今天很冷,穿厚衣服吧。”
“今天适合穿轻便的衣服,温暖而舒适。”
参考模型:
1)检查这些回答,确保它们不包含明显的错误,比如“今天温度40°C”这种明显不合理的回答。
2)对比新的策略模型和参考模型的参数变化,确保模型更新的幅度不过大,避免训练过程中出现震荡或不稳定的情况。奖励模型:根据每个回答的质量给予奖励。假设第一个回答符合实际天气条件,奖励模型会给出正反馈;而第二个回答如果不准确(例如天气实际非常冷),奖励模型可能会给出负反馈。
值模型:评估这些回答的长期回报。例如,第二个回答可能引起更多用户的兴趣(如果他们继续询问衣物选择),因此它的回报值较高。