VeRL-DAPO精度问题数值计算分析
作者:昇腾实战派
知识地图:https://blog.csdn.net/Lumos_Lovegood/article/details/161455142
1 背景概述
在强化学习策略梯度方法中,近端策略优化(PPO)通过引入裁剪机制显著提升了训练稳定性。在实际应用过程中,策略梯度损失(pg_loss)的计算直接影响模型收敛效果与最终性能。本文基于训练波动问题,深入分析pg_loss的构成机制与影响因素,重点剖析优势函数(advantage)的计算、策略更新比率(ratio)的作用以及奖励函数的设计,为优化强化学习训练过程提供参考。
2 pg_loss计算解析
2.1 PPO 基础优化目标函数
PPO算法通过限制策略更新的步长,避免训练过程中的剧烈波动。其核心目标函数在保证策略持续改进的同时,最大限度地减少更新过程中的方差。
2.2 Dual-clip 机制
为进一步增强训练稳定性,我们引入了Dual-clip方法。该机制主要用于防止当优势函数值为负且当前策略与旧策略概率比的对数(logp - old_logp)较大时,梯度更新量过小而导致训练崩溃。参考:https://arxiv.org/pdf/1912.09729
裁剪比值:
在实际应用中,Dual-clip的触发率相对较低,但在关键情况下对维持训练稳定性起到重要作用。
3 pg_loss构成拆解
grpo/dapo总体优化目标函数为:
pg_loss主要由两个因素构成:
3.1 优势函数(advantage)值
优势函数计算公式如下:
过实验观察发现,在奖励均值差异不大的情况下,优势函数的计算结果可能出现显著差异。为进一步分析这一现象,我们统计了每个训练步骤中优势函数的标准差。
数据分析表明,优势函数的标准差均值与其数值大小基本呈反比关系,如下图所示:
3.2 策略更新比率(ratio)
策略更新比率定义为当前策略与旧策略概率比的对数(logp - old_logp)。监测数据显示,该比率值基本维持在1或0.999附近,表明策略更新较为稳定,对整体优势函数值没有产生显著影响。
4 reward计算解析
奖励计算主要由以下几个部分构成:
4.1 奖励模型输出
本部分涉及奖励模型的具体实现,在此不做详细讨论。
4.2 规则奖励
规则奖励基于最后300个token,采用匹配机制进行计算:
- 答案正确:奖励+1
- 答案错误:奖励-1
具体实现可参考相关工具模块中的数学奖励计算模块。
4.3 生成长度奖励(overlong_rewards)
此部分为超长惩罚机制,直接添加到总奖励中:
在当前训练场景中,奖励主要由推理打分和超长惩罚两部分构成,其中推理评分结果占据主要部分。通过合理配置这些奖励组件,可以有效引导模型学习目标行为,提升训练效果。
