浅谈VC-PPO 与 DAPO

大模型向量数据库机器学习

        
        
            

          作者:hzwer 黄哲威 (已授权)
          
   

 
          知乎:https://zhuanlan.zhihu.com/p/30982162116 
          
   

 
        
      

三月份 字节seed 挂出来两篇论文,分别是做 LongCoT 背景下 PPO 和 GRPO 改进的,都是一些非常小的改动方案,很容易借鉴做一些实验试试

第一篇VC-PPO:https://arxiv.org/pdf/2503.01491v1

第二篇DAPO:https://arxiv.org/abs/2503.14476

看过挺多社区的经验贴,限于算力大多在做一个非常早期的 LongCoT 启动阶段,但是长度涨到几千以后怎么稳定地一直涨点训下去(不依赖蒸馏)还是有技巧的

很多人贴的曲线,其实长度涨得过快了,把 AIME 刷到 0.5/0.6 也不用把长度涨那么高

VC-PPO

太长不看版:

PPO在长链思维任务中失败的原因主要有两个:

  1. 价值初始化偏差 :PPO的价值模型通常从奖励模型初始化,导致早期训练阶段的优势估计误差较大。
  2. 奖励信号衰减 :在长序列和最终奖励的情况下,价值函数无法将奖励信号有效地传播到前面的token。

为了解决这些问题,文章提出了VC-PPO,包括两个关键技术:

  1. 价值预训练 :在离线方式下,使用固定策略生成的响应来预训练价值模型,以减少早期训练阶段的偏差。
  2. 解耦GAE计算 :将GAE计算解耦为策略和价值两部分,允许价值使用更大的λ来更有效地传播奖励信号,同时保持策略的λ不变,以确保在时间和计算限制下的收敛性。

识别和解决PPO在长链思维任务中的失败模式

picture.image

在长链思维任务中直接应用 PPO,容易导致长度退化,然后难题就再也做不出来了

当 GAE lambda = 0.95 时,把 Value 和 Advantage 画在图上:

picture.image

越靠前的token,其优势越正向偏差,原因是:

  1. 奖励模型的训练目标是在 token处对响应进行评分。由于靠前的token不包括在训练中,奖励模型倾向于对靠前的token赋予较低的分数
  2. 价值预测的目标是估计给定策略下每个token的预期奖励。由于靠前的token分数较低,并且在训练开始时KL惩罚基本上为零,因此在每个时间步t都会存在一个正向偏差,该偏差会沿着轨迹积累

reward 折扣速度(显然生成 K 步的时候 lambda 不宜小于 1 - 1/K)

picture.image

于是改进方式是先用一个固定策略采样,固定 GAE lambda = 1,然后训练价值模型(像是 PPO 中的 critic warmup)

然后既要 Advantage 不衰减太快,又想要减小 Advantage 的方差,这篇用一个简单方法,将 Actor 的 lambda 设为 0.95,而 critic 的 lambda 设为 1

还有一个说法是说 critic 的均方损失可以容忍更大的方差,所以可能更适合大的 lambda

实验

picture.image

消融实验是 8k context length,actor lambda 的较优区间可能是 [0.95, 0.99]:

picture.image

适当的 value 预训练是有益的:

picture.image

DAPO

这篇是针对 GRPO 进行了如下改进:

picture.image

Clip-Higher

考虑一个具体例子:具体来说,当

(大多数算法的默认值)时,考虑两个动作,其概率分别为

。最大可能的更新概率

分别为

。这意味着对于高概率的 token,约束较小。相反,对于低概率的 token,实现概率的显著增加要困难得多。

picture.image

这个实验有点恐怖的地方是,如果以 eval AIME 0.3 为目标,看不出来这二者之间的区别,提示我们观察熵的数值是重要的

从统计 3(a) 上看,上界 clip 确实更多作用于本身出现概率较小的动作上:

picture.image

改进方式是下方 eps 还是 0.2,上方 eps 放宽到 0.28

我一开始以为 0.28 差别应该不大,做了实验发现 clip 的 token 少了一个数量级

Dynamic Sampling

在 GRPO 里,如果一个 prompt 的所有采样都错或者都对,其实基本不贡献 loss,随着训练推进会间接让 batchsize 持续变小

DAPO 提出过度采样并过滤掉准确率为1和0的提示(确保批次中的所有提示都有有效的梯度,并保持提示数量的一致性)

picture.image

Token-Level Policy Gradient Loss

这部分是 GRPO 中的梯度计算改动

由于所有样本在损失计算中的权重相等,较长响应中的token(包含更多token)可能对整体损失的贡献不成比例地低,这可能导致两个不利影响。首先,对于高质量的长样本,这种效果可能会阻碍模型学习其中的推理相关模式。其次,我们观察到过长样本通常包含低质量模式,如胡言乱语和重复单词。因此,由于无法有效惩罚长样本中的这些不良模式,样本级损失计算会导致熵和响应长度的不健康增加

picture.image

Overlong Reward Shaping

直觉上如果一个样本超长直接得到一个 -1 的奖励不够平滑,这里就是做一些 soft 的惩罚

picture.image

这种我也试过,我感觉系数应该要设置得小一点,不然解题模式有的时候会退化得不偿失

Dataset Transformation

DAPO-Math-17K 数据集:

来源于AoPS1网站和官方竞赛主页,通过结合网络抓取和手动标注的方式获取。数学数据集的答案通常以多种格式出现,如表达式、公式和数字,这给设计全面的解析规则带来了挑战。为了通过规则提供准确的奖励信号,并最小化公式解析器引入的错误,我们受到AIME的启发,选择并将答案转换为易于解析的整数。例如,如果原始答案表示为

的形式,我们会指示LLM修改问题,使预期答案变为 a+b+c。

现在 math verify 也越来越强了,估计这类匹配问题应该会越来越少

训练曲线

picture.image

整体上 entropy 在 0.35~0.5 波动,然后长度是从 1k 慢慢涨到 5k

PS:看到这里,如果觉得不错,可以来个 点赞在看关注 。 给公众号添加【星标⭐️】不迷路!您的支持是我坚持的最大动力!

欢迎多多关注公众号「NLP工作站」, 加入交流群 ,交个朋友吧,一起学习,一起进步!

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论