一、GRPO是什么?
GRPO是PPO(Proximal Policy Optimization)的一种变体。它和DPO(Direct Preference Optimization)一样,都属于免强化学习(RL-free)的对齐方法,但思路却截然不同。
- DPO的核心思想是:通过一个巧妙的数学变换,将RLHF中的奖励建模问题,直接转化为一个静态的、基于偏好数据的监督学习问题。它训练的是一个策略模型,使其更倾向于选择“胜出”的回复(winning response)。
- GRPO的核心思想则是:保留PPO的优化框架,但简化其复杂的奖励建模和价值函数估计过程。它通过在一个“组”(Group)内对多个候选回复进行相对排序,来构造一个更稳定、更高效的策略梯度信号。
简单来说,GRPO可以看作是PPO的轻量化、实用化版本,它试图在保持PPO强大优化能力的同时,规避其训练不稳定、实现复杂的问题。
二、重复内容的罪魁祸首:不是单一参数,而是“正反馈循环”
很多人第一反应是去调整某个超参数,比如temperature、top_p或者kl_coeff。但我要告诉你,重复内容的根本原因,不在于任何一个孤立的参数,而在于GRPO训练机制与LLM自回归生成特性结合后,形成的一个“正反馈循环”(Positive Feedback Loop)。
让我们一步步拆解这个循环是如何形成的:
1. 自回归生成的“路径依赖”特性
LLM是自回归模型,它逐个token地生成文本。这意味着,已经生成的token序列会强烈影响下一个token的预测分布。一旦模型在早期生成了一个倾向于重复的模式(比如连续输出“好”),这个模式就会被“锁定”,后续的生成会越来越倾向于延续这个模式,因为模型认为这是“高概率”、“连贯”的路径。
2. GRPO的奖励信号放大了“安全”但“平庸”的行为
在GRPO中,模型会为同一个prompt生成多个(比如4个)候选回复。然后,根据一个偏好模型(或人工标注)对这些回复进行排序,计算出每个回复的相对优势(Advantage)。
问题就出在这里:
对于一个没有明确好坏之分的prompt,或者当模型能力不足以生成高质量回复时,那些“安全”、“无害”但“平庸”甚至“重复”的回复,往往能获得相对较高的排序。
为什么?
- 低风险:重复内容通常语法正确,不会产生事实性错误或冒犯性言论,因此在偏好判断中被视为“更安全”。
- 高概率:如前所述,重复模式是LLM语言模型中的一个高概率区域。在采样过程中,这类回复更容易被生成出来,并且看起来“更流畅”。
当GRPO的策略梯度更新时,它会强化那些获得高排序的回复所对应的生成路径。
于是,模型就学到了:“哦,原来多说几遍‘好的’,就能得到更高的奖励!” 这就形成了一个正反馈循环:重复 -> 高排序 -> 强化 -> 更重复。
3. 缺乏有效的“探索”与“多样性”约束
标准的GRPO实现,通常只关注于最大化偏好奖励,而没有显式地引入对生成多样性的约束。
这与PPO中通过entropy bonus(熵奖励)来鼓励探索的机制不同。
GRPO为了简化,往往省略了这一项,或者其默认值非常小,不足以对抗上述的正反馈循环。
三、关键影响因素与调参指南
虽然根本原因是机制性的,但我们可以通过调整一些关键组件和参数来有效缓解这个问题。下面我列出几个最重要的“杠杆”:
1. KL散度正则项系数
(beta 或 kl_coeff)这是最重要的一个参数。KL散度项的作用是防止新策略(current policy)偏离旧策略(reference policy,通常是SFT模型)。
如果这个系数太小,模型就会为了追求更高的奖励而“放飞自我”,很容易陷入重复的局部最优。如果太大,模型又会过于保守,学不到新东西。
- 调参建议:
不要使用默认值!很多开源实现的默认beta值(如0.1)对于防止重复来说太小了。
尝试更大的值,比如从0.5开始,逐步增加到1.0甚至2.0,观察重复现象是否减轻。
一个经验法则是,当你发现模型输出变得过于“死板”、缺乏创造性时,说明beta可能过大了;如果重复严重,则说明beta过小。
2. 候选回复的采样策略
GRPO依赖于从当前策略中采样多个候选回复。如果采样过程本身就缺乏多样性,那么所有候选回复可能都大同小异,都在重复,排序也就失去了意义。
- 解决方案:
提高采样温度(temperature):在GRPO的采样阶段,使用比推理阶段更高的temperature(比如1.0-1.5),可以增加候选回复的多样性,让排序器有更多“好素材”可以挑选。
结合核采样(top_p):设置一个合理的top_p(如0.9),避免采样到过于离谱的低概率token,同时保留一定的随机性。
3. 引入显式的多样性或重复惩罚
这是最直接的方法。我们可以在GRPO的损失函数中,显式地加入一个针对重复的惩罚项。代码示例(概念性):
4. 改进偏好信号的质量
如果偏好数据本身就存在问题——比如标注者倾向于给那些“礼貌但空洞”的重复回复打高分——那么再好的算法也无法学到好的行为。确保你的偏好数据集鼓励的是信息丰富、有实质内容的回复,而不是无意义的客套话。
四、超越调参:架构层面的思考
除了上述调参技巧,我们还可以从更宏观的角度思考如何从根本上解决这个问题。
1. 采用“课程学习”(Curriculum Learning)
不要一开始就用最难的、最容易引发重复的prompt来训练。可以先用一些结构清晰、答案明确的指令数据进行微调,让模型建立起“提供有价值信息”的习惯,然后再逐步引入更开放、更模糊的prompt。
2. 结合检索增强(RAG)
对于很多知识型问答,重复往往是因为模型“不知道该说什么”,只能用安全词填充。如果能结合RAG,在生成前先检索到相关知识,为模型提供“弹药”,它自然就能生成更有信息量的内容,从而避免重复。
1116

被折叠的 条评论
为什么被折叠?



