当前位置: 首页 > article >正文

DAPO:一个开源的大规模大型语言模型LLM强化学习系统

推断扩展赋予了大型语言模型前所未有的推理能力,强化学习作为激发复杂推理的核心技术,清华大学联合字节提出了解耦片段与动态采样策略优化(DAPO)算法,并全面开源了一个最先进的大规模强化学习系统,该系统使用Qwen2.5-32B基础模型在AIME 2024上取得了50分的高分。还开源了我们的训练代码,该代码基于Verl框架构建,并附带了一个精心策划和处理过的数据集。在这里插入图片描述

文章目录

  • 预备知识
  • DAPO算法
    • 核心贡献
    • 四个关键技术解析
        • 1. **Clip-Higher:探索与利用的平衡**
        • 2. **Dynamic Sampling:动态过滤无效样本**
        • 3. **Token-Level Policy Loss:长序列梯度优化**
        • 4. **Overlong Reward Shaping:长度感知奖励修正**
    • 实验验证
        • 1. **AIME 2024性能对比**
        • 2. **关键指标监控**

作者团队:字节跳动种子团队、清华大学AIR研究院、香港大学等
论文链接:https://dapo-sia.github.io/
代码仓库:https://github.com/volcengine/verl

预备知识

PPO通过限制策略更新在先前策略的近端区域内来稳定训练并提高样本效率。GRPO则消除了值函数,以组相对的方式估计优势。

  • 近端策略优化(PPO):通过裁剪代理目标约束策略更新,提升训练稳定性和样本效率,利用广义优势估计(GAE)计算优势值。
  • 组相对策略优化(GRPO):以组相对方式估计优势,消除价值函数,采用裁剪目标和直接施加 KL 惩罚项,在样本级计算目标。
  • 去除 KL 散度:在长思维链推理模型训练中,模型分布与初始模型差异大,KL 惩罚项限制不必要,故从算法中排除。
  • 基于规则的奖励建模:用可验证任务最终准确率作为奖励,避免奖励模型的奖励黑客问题,有效激活基础模型推理能力。在这里插入图片描述

DAPO算法

DAPO算法通过采样一组输出来优化策略,目标函数如下:
在这里插入图片描述
在这里插入图片描述


核心贡献

  1. 开源系统:首个完整开源的大规模LLM强化学习系统(代码+数据集+算法),在数学推理任务AIME 2024上以Qwen2.5-32B模型取得50分(超越DeepSeek-R1的47分)。
  2. DAPO算法:提出四大关键技术解决长链思维(long-CoT)场景下的RL训练难题:
    • Clip-Higher:解耦上下剪裁范围,防止熵崩溃(Entropy Collapse)。
    • Dynamic Sampling:动态过滤无效样本,提升梯度有效性。
    • Token-Level Policy Loss:解决长序列样本的梯度稀释问题。
    • Overlong Reward Shaping:长度感知的奖励修正,降低噪声。 在这里插入图片描述
  3. 数据集优化:提出DAPO-Math-17K数据集,将复杂答案格式转化为整数,简化奖励计算。

四个关键技术解析

1. Clip-Higher:探索与利用的平衡

问题:传统PPO/GRPO的固定剪裁范围(如ε=0.2)限制低概率Token的探索,导致策略快速收敛(熵崩溃)。 在这里插入图片描述

方案

  • 解耦上下剪裁阈值:ε_low=0.2(抑制高概率Token的过度利用),ε_high=0.28(放宽低概率Token的探索限制)。
  • 效果:模型生成多样性提升,熵值稳定。 在这里插入图片描述
2. Dynamic Sampling:动态过滤无效样本

问题:当所有样本奖励相同(如全正确或全错误),梯度信号消失(Zero Advantage)。
方案在这里插入图片描述

  • 预采样时过滤掉奖励为0或1的样本,仅保留梯度有效的样本填充批次。
  • 效果:训练效率提升,收敛速度加快在这里插入图片描述
3. Token-Level Policy Loss:长序列梯度优化

问题:传统GRPO的样本级损失平均导致长序列Token梯度稀释,难以捕捉关键推理步骤。
方案在这里插入图片描述

  • 按Token计算损失,加权求和(而非样本平均),强化长序列中的关键Token学习。
  • 效果:训练稳定性提升,生成长度控制更健康在这里插入图片描述
4. Overlong Reward Shaping:长度感知奖励修正

问题:过长响应的截断惩罚引入噪声(正确推理因超长被误判)。
方案
R length ( y ) = { 0 , ∣ y ∣ ≤ L max − L cache ( L max − L cache ) − ∣ y ∣ L cache , L max − L cache < ∣ y ∣ ≤ L max − 1 , L max < ∣ y ∣ R_{\text{length}}(y) = \begin{cases} 0, & |y| \leq L_{\text{max}} - L_{\text{cache}} \\ \frac{(L_{\text{max}} - L_{\text{cache}}) - |y|}{L_{\text{cache}}}, & L_{\text{max}} - L_{\text{cache}} < |y| \leq L_{\text{max}} \\ -1, & L_{\text{max}} < |y| \end{cases} Rlength(y)= 0,Lcache(LmaxLcache)y


http://www.kler.cn/a/592500.html

相关文章:

  • 【初学者】请介绍一下线性与非线性的区别?
  • Android Compose 框架文本选择与编辑模块源码深度剖析(三)
  • 认知篇#4:YOLO评价指标及其数学原理的学习
  • Jetson Nano 三个版本(B01 4GB、Orin 4GB、Orin 8GB)本地部署Deepseek等大模型的测评
  • 零知识证明:区块链隐私保护的变革力量
  • 从关键词到权重:TF-IDF算法解析
  • LeetCode 1963.使字符串平衡的最小交换次数:计数模拟(不需要麻烦的“三种写法一步步优化”)
  • 【AVRCP】服务发现互操作性:CT 与 TG 的 SDP 协议契约解析
  • 算法刷题记录——专题目录汇总
  • AFFiNE:下一代开源全能知识库工具,重新定义协作与创作
  • 如何在CCS12.7.0中生成BIN文件
  • Gemini Advanced新功能详解:AI创作与协作的终极解决方案
  • 杰理科技JL703N双模蓝牙芯片—云信
  • 免费开源的NAS解决方案:TrueNAS
  • pycharm运行终端部署(Anaconda终端与Git运行终端)
  • 抽象工厂模式 (Abstract Factory Pattern)
  • 【Apache Storm】
  • python3+pytest+allure自动化框架搭建
  • GED-VIZ部署解决方案
  • 如何在 Node.js 中使用 .env 文件管理环境变量 ?