DeepSeek-R1 面试 -—— GRPO
DeepSeek训练中应用的GRPO算法,它源自于强化学习领域的PPO算法。GRPO与PPO算法之间存在哪些差异?这两种算法各自的优劣何在?为何DeepSeek选择采用GRPO算法而非PPO算法?本文将对这些问题提供解答。
一、PPO算法
PPO(Proximal Policy Optimization)算法,是OpenAI在2017年公开的算法。PPO 的思路:Actor + Critic + Clip + KL 惩罚。
Actor :
强化学习需要一个参考线(baseline),来促进学习效率。类似图片分类,类别A训练的好能达到80分,类别B训练的不到位30分,假设baseline设为60分,A学到80分则奖励,B学到30分则惩罚,谁学的分多,谁就奖励的多。一开始听上去没毛病,但结果就有两个问题:
1. 不公平:如果类别B从 30 分进步到 60 分,付出了非常大的代价,却依然比不过类别A随便能达到80分, B得不到有效奖励,无法促进B进步。
2. 不稳定:类别A能达到80分,总能获得奖励,会导致类别A总能获得奖励,进而发生过拟合。对训练集能得到高奖励,对测试数据会变成惩罚,导致奖励信号也忽上忽下。
这样一来,只拿绝对分数当作 Reward,类别A容易过拟合,类别B得不到应有的奖励,训练轮数多了,B就没动力进步了。
Critic:
针对上面的问题,“不能光看绝对分,而要看看每个类别在自己水平线之上进步多少才是关键。”Critic用”预期分数“来改善奖励机制。
critic动态设置预期分数,对类别A将baseline设置为85分,对类别B将baseline设置为40分。每个类别实际 Reward 超过了 Critic 的预期分数,就会得到奖励;低于预期分数,就会得到惩罚。critic不断动态调整预期分数,就将类别A和类别B都激励的得分更高。
Clip
设置一个最大、最小的步伐,在优化过程中每次进步不能太大,退步也不能太大。防止个别奇点数据对训练造成坏影响。
KL 惩罚
防止极端训练情况出现的一个附加约束,新的状态不能和这个初始策略差太远,否则就要受到惩罚。防止Actor 为了短期 Reward 而脱离原本的合理范围,保证模型在进化过程中不会偏得太离谱。
二、GRPO算法
Group Relative Policy Optimization(GRPO):用”历史多次预测值的平均值“代替baseline。
其核心要点包括:
不需“学习”一个独立的价值网络作为 Critic;
而是针对同一问题、同一状态,先利用旧策略进行多次输出采样,然后将这些输出的平均 Reward 作为基准(baseline);
高于平均值的 Reward 表示“正向 Advantage”,而低于平均值则表示“负向 Advantage”。
三、PPO和GRPO的区别
四、面试题:
算法核心机制
1. GRPO中Clip方法和KL Penalty的作用与区别是什么?
Clip方法:通过截取新旧策略的重要性采样比率(如限制比率在1−ε,1+ε范围内),直接限制策略更新的幅度,防止单一样本的过度优化导致策略突变。
KL Penalty:在目标函数中加入新旧策略之间的KL散度惩罚项,间接约束策略变化幅度,自适应调整惩罚强度以平衡探索与稳定性。
区别:Clip通过“硬约束”直接限制更新范围,实现简单;KL Penalty通过动态调整惩罚系数实现“软约束”,更适合复杂任务但对计算资源要求更高。
2. GRPO为何同时使用Clip和KL Penalty?有何优劣势?
优势:双重约束显著提升训练稳定性,尤其适用于大模型训练中的策略收敛问题。
劣势:实现复杂度增加(需同时计算截取比率和KL散度),且资源消耗更高(如显存占用)。
3. GRPO与PPO的核心差异是什么?
优势估计方式:
PPO依赖Critic网络(价值模型)计算广义优势估计(GAE)。
GRPO通过组内样本奖励的标准化计算相对优势(如组内均值方差归一化),无需Critic网络。
资源效率:GRPO节省了Critic网络的计算和显存开销,更适合大规模模型训练。
4. GRPO相比PPO的优劣势是什么?
优势:
资源节约:去除Critic网络降低显存占用,提升训练速度。
过程奖励利用:组内对比能更灵活捕捉过程奖励信号(如中间步骤的格式正确性)。
劣势:
依赖样本质量:若组内样本多样性不足或质量差(如全错误答案),标准化后的优势估计失效。
探索能力受限:Clip的固定阈值可能限制策略的探索空间。
5.为何DeepSeek选择GRPO而非PPO?
规则化奖励场景适配:DeepSeek训练中多使用基于规则的奖励(如数学答案准确性、输出格式规范),无需复杂Critic模型,GRPO的组内相对优势计算更高效。
资源优化需求:去除Critic网络后,GRPO在千亿参数模型训练中显存占用减少约30%,加速迭代效率。
6.GRPO的适用场景与局限性?
适用场景:
显存资源受限的大模型训练
奖励规则明确、无需复杂价值估计的任务(如数学解题、格式校验)。
局限性:
组内样本需保证多样性(如不同难度、正负样本混合),否则优势估计失真。
动态任务中需频繁调整组大小(如N值),增加调参成本。
7. GRPO的组大小(N)如何影响训练效果?
小N(如N=16):优势估计波动大,但对显存友好,适合简单任务。
大N(如N=124):估计更稳定,但需更高并行计算能力,适合复杂长序列任务。
8.如何缓解GRPO的样本质量依赖问题?
数据预处理:对组内样本进行多样性筛选(如聚类去重)。
混合训练:结合Critic网络的稀疏调用,周期性校准优势估计。