大模型RLHF强化学习笔记(四):GRPO,DAPO,VAPO
GRPO,DAPO,VAPO方法详解
·
【如果笔记对你有帮助,欢迎关注&点赞&收藏,收到正反馈会加快更新!谢谢支持!】
一、GRPO (Group Relative Policy Optimization)
[2402.03300] DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
- PPO的问题:PPO的训练和推理需要用到四个模型(Actor,Critic,Reward,Reference)→ 资源消耗大,误差累积严重
- 四个模型分析:Actor model(策略本身,必须);Reference model(防止模型跑偏,需要);Reward model(可以用rule-based);Critic model(GRPO用组内相对奖励机制替换)
- 为什么Critic model可以去掉?优势函数定义为A_t = Q(s_t|a_t) - V(s_t) 即当前动作价值比平均动作价值高的部分
- GRPO的优势函数估计:同一个问题采样多组输出 → 给每个输出打分(reward) → 组内奖励归一化(可以得到每个输出的reward相比平均reward高的部分)

- 流程:
输入: - initial_policy: 需要训练的起始模型 - reward_function:评估输出的函数 - training_prompts:训练示例集 - group_size:每个提示的输出数量(通常为 4-16) 算法GRPO: 1. 对于每次训练迭代: a. 设置 reference_policy = initial_policy(快照当前策略) b. 对于批次中的每个提示: i. 使用 initial_policy 生成 group_size 不同输出 ii. 使用 reward_function 计算每个输出的奖励 iii. 标准化组内的奖励: normalized_advantage = (reward - mean(rewards)) / std(rewards) iv. 通过最大化裁剪比率更新策略: min(prob_ratio * normalized_advantage, clip(prob_ratio, 1-epsilon, 1+epsilon) * normalized_advantage) - kl_weight * KL(initial_policy || reference_policy) 输出:优化的策略模型 - 两种奖励机制:结果奖励模型(ORM) 和过程奖励模型(PRM)
ORM(结果奖励) PRM(过程奖励) 奖励目标 仅评估最终输出的正确性(如答案是否正确) 评估推理链中每一步的逻辑正确性和连贯性 信号性质 稀疏奖励(0/1 二元信号) 稠密奖励(每一步均有奖励反馈) 组内归一化 组内奖励标准化 分步奖励标准化:
每步奖励独立归一化后累加优势估计 同一输出所有token共享组内归一化后的优势值 每个token的优势值由其对应步骤的奖励决定
二、DAPO (Decoupled Clip and Dynamic sAmpling Policy Optimization)
[2503.14476] DAPO: An Open-Source LLM Reinforcement Learning System at Scale
- GRPO的问题
- 低概率token探索空间受限:GRPO的重要性权重剪切范围是对称的(1-ε到1+ε),但是对于本身比较低的重要性权重,探索范围就很小(比如ε=0.1,π_θ_old = 0.01,π_θ_new最大只能是0.011)
- 准确率为0或1时梯度消失:当某个问题的所有采样输出都正确(或都错误)时,优势值为零,梯度消失
- 每个token对策略优化贡献不平衡:因为先样本内的token损失求均值,再跨样本平均
- DAPO的改进点:
- 提高ε_high的值,允许低概率token有更大的探索空间,提升策略多样性
- 动态采样:每次训练前过滤掉准确率为0或1的prompt
- token级损失计算:对所有token的损失求平均,确保每个token对策略优化的贡献更均衡
- 对过长回答修改奖励:过长区间的惩罚叠加到准确率的奖励上
三、VAPO (Value-based Augmented Proximal Policy Optimization)
[2504.05118] VAPO: Efficient and Reliable Reinforcement Learning for Advanced Reasoning Tasks
3.1 VAPO的Motivation:
- GRPO,DAPO等方法去掉了显式的价值函数,可能不稳定(蒙特卡洛采样带来的高方差)
- Value-model-based方法可以实现精确的信用分配(credit assignment)且有更低方差的优势估计,潜力更大,对于长CoT任务更有优势
3.2 VAPO的挑战和解决方法
- 挑战1: 如何学习低偏差的Value Model
- 价值预训练(Value Pretrain):用一个固定策略不断采样回答,用蒙特卡洛return训练到Value Model的价值损失和解释方差(explained variance)足够低
- 解耦GAE(Decoupled-GAE):价值更新和策略更新使用不同的λ
- 价值更新 λ = 1 ,仅用累积奖励来更新Value Model
- 策略更新 λ = 0.95,加速策略收敛
- 挑战2: 如何动态适应序列长度
- 长度自适应的策略更新 λ
- Token级的损失函数
- 挑战3: 如何应对奖励稀疏性
- 提高ε_high的值
- 正例模仿学习:对正确回答额外计算NLL损失,加速利用稀缺正样本
- 分组采样:减少每个batch中prompt的数量,让每个prompt生成更多的响应,引入更丰富的对比信号
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)