[ PROMPT_NODE_22852 ]
algorithm-comparison
[ SKILL_DOCUMENTATION ]
# 算法对比
OpenRLHF 中强化学习算法的完整指南:PPO、REINFORCE++、GRPO、RLOO 及其变体。
## 概述
OpenRLHF 支持 6 种可通过 `--advantage_estimator` 选择的强化学习算法:
- **gae** - 带有广义优势估计 (GAE) 的 PPO
- **reinforce** - REINFORCE++ (无 Critic 的 PPO 优化)
- **reinforce_baseline** - 带有基线的 REINFORCE++
- **group_norm** - GRPO (组归一化策略优化)
- **dr_grpo** - Dr. GRPO (无标准差归一化的 GRPO)
- **rloo** - 带有在线离策略修正的强化学习
## 算法详情
### PPO (近端策略优化)
**公式**:
loss = -min(ratio * advantages, clip(ratio, 1-ε, 1+ε) * advantages)
ratio = π_new(a|s) / π_old(a|s)
**特性**:
- **稳定性**:高(剪切目标函数防止大幅更新)
- **内存占用**:高(存储 Actor + Critic 经验)
- **速度**:中(Critic 训练开销)
- **需求**:需要 Critic 网络进行价值估计
**实现**:
python
surr1 = ratio * advantages
surr2 = ratio.clamp(1 - clip_eps_low, 1 + clip_eps_high) * advantages
loss = -torch.min(surr1, surr2)
**使用场景**:
- 通用 RLHF
- 复杂的奖励函数
- 需要稳定的训练过程
**超参数**:
bash
--advantage_estimator gae # 启用 PPO
--clip_eps_low 0.2 # 剪切下界
--clip_eps_high 0.2 # 剪切上界
--actor_learning_rate 1e-6
--critic_learning_rate 9e-6
--init_kl_coef 0.01
### REINFORCE++
**公式**:
loss = -ratio * advantages (使用 PPO-clip)
advantages = cumulative_returns - baseline
**特性**:
- **稳定性**:高于 GRPO
- **内存占用**:低(无 Critic 网络)
- **速度**:快于 PPO
- **需求**:无需 Critic 网络
**核心创新**:将 PPO 优化(优势归一化、PPO-clip Loss)集成到 REINFORCE 中,同时消除了 Critic 网络的开销。
**使用场景**:
- 想要 PPO 的稳定性但不需要 Critic
- 内存预算有限
- 优先考虑训练速度
**超参数**:
bash
--advantage_estimator reinforce
--critic_pretrain None # 无需 Critic
--init_kl_coef 0.01
--actor_learning_rate 1e-6
### REINFORCE++-baseline
**公式**:
rewards = rewards - mean(rewards_same_prompt)
**特性**:
- **稳定性**:非常高
- **内存占用**:低(无 Critic)
- **速度**:快于 PPO
- **需求**:每个 Prompt 需要多个采样
**核心创新**:使用同一 Prompt 下多个采样的平均奖励作为基线。