背景

两年前ChatGPT出现后,出现了许多开源项目尝试复现其效果,我当时研究了一下开源的强化学习实现,包括DeepSpeed-Chat、ColossalChat、TRLX等,整理了一篇DeepSpeed-Chat的强化逻辑:

后来,强化学习又出来了很多,一些认知在业界也逐渐收敛,本文对当前业界常用的LLM强化学习策略做一下简单整理。

符号定义

业界LLM强化学习方案

PPO

PPO1是off-policy策略,对进行clip。 所有token共享完整序列的reward,advantage采用GAE。 KL放在了actor loss上,但很多开源实现会把KL融入到Advantage计算中,KL相关的下一节详细分析。

GRPO

GRPO2去掉了PPO里的Critic模型,每个query生成G个答案,通过G个答案的均值方差来计算Advantage里的baseline。KL也放在Actor Loss中,并且通过k3估计来实现。

ReMax

ReMax3是on-lolicy策略。它也去掉了Critic,通过贪心策略生成答案的奖励作为Advantage里的baseline。

Reinforce++

Reinforce++4中,只有token EOS有奖励,其他token没有。并且,kl项融入到Reward中。Advantage计算中,也考虑了未来token的kl。 另外,使用了强化学习中的很多技巧,包括PPO Clip、Reward Normalization and Clipping、Advantage Normalization。

DAPO

DAPO5计算Advantage的方式和GRPO一样。 去掉了KL。 PPO Clip的上下限拆成两个独立参数。 为避免G个答案全对或全错导致Advantage=0进而导数为0的问题,会丢掉全对或全错样本,一直采样直到填满batch size。 对于超出长度的样本,会做soft打压。

GPG

GPG6是on-lolicy策略。GPG也考虑了G个答案全对或全错的问题,不同于DAPO,它会丢掉全对或全错样本,对整个batch进行权重补偿,既。其中,B是query batch size,M是所有G条answer都正确或错误的query数量。

参考

  • [1][Training language models to follow instructions with human feedback](http://arxiv.org/abs/2203.02155)
  • [2][DeepSeek-V3 Technical Report](http://arxiv.org/abs/2412.19437)
  • [3][ReMax: A Simple, Effective, and Efficient Reinforcement Learning Method for Aligning Large Language Models](http://arxiv.org/abs/2310.10505)
  • [4][REINFORCE++: A Simple and Efficient Approach for Aligning Large Language Models](http://arxiv.org/abs/2501.03262)
  • [5][DAPO: An Open-Source LLM Reinforcement Learning System at Scale](http://arxiv.org/abs/2503.14476)
  • [6][GPG: A Simple and Strong Reinforcement Learning Baseline for Model Reasoning](http://arxiv.org/abs/2504.02546)