Verl代码阅读:PPO与GRPO的差异
# Verl代码阅读:PPO与GRPO的差异
PPO和GRPO都是在SFT微调后让模型能够有更好回答的方式,差异在于“如何计算这次回答好不好”,GRPO其实是一种变种的PPO算法,去掉了PPO的critic模型,让训练更稳定和资源消耗更少。
clip:限制模型单步别跑太远
KL:限制被训练模型与参考模型别太远 太远就惩罚
SFT的交叉熵:有正确答案 模型调整输出分布到正确答案即可
PPO、GRPO的clip损失:没有正确答案 在探索中小心翼翼地探索
## SFT交叉熵的工作机制
SFT中有标准答案,模型只会预测在这个位置上出现这个token的概率,没出现tokenB,那就狠狠地惩罚你,就算tokenB在语义上是对的。一句话SFT就是给答案,背答案,模型输出与结果越接近越好。但是在通常训练中,我们一般不会去过于要求与答案的相似度,这会导致过拟合。
## PPO clip loss的工作机制
PPO中引入了一个比率$r=\frac{\pi_{new}}{\pi{old}}$,用于衡量每一次新策略相对于旧策略的变化。如果$r>1$说明策略好,希望提升这个动作的概率,但是不能提升太多。因为强化学习中认为就算某一个策略得到的奖励低,但是它还是有价值的,不能一次性变化太快。