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

embedded/2025/3/20 16:35:55/

推断扩展赋予了大型语言模型前所未有的推理能力,强化学习作为激发复杂推理的核心技术,清华大学联合字节提出了解耦片段与动态采样策略优化(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.ppmy.cn/embedded/174192.html

相关文章

基于FPGA轨道交通6U机箱CPCI脉冲板板卡

板卡简介&#xff1a; 本板为脉冲板&#xff0c;脉冲板主要执行CPU下达的指令&#xff0c;通过实现各种控制算法来调节PWM&#xff0c;然后输出光纤PWM信号来驱动变频器功率模块以达到控制电机的目的。 性能规格&#xff1a; 电源&#xff1a;DC5V&#xff1b;15V FPGA&…

《UNIX网络编程卷1:套接字联网API》第2章 传输层:TCP、UDP和SCTP

《UNIX网络编程卷1&#xff1a;套接字联网API》第2章 传输层&#xff1a;TCP、UDP和SCTP 2.1 传输层的核心作用与协议选型 传输层是网络协议栈中承上启下的核心层&#xff0c;直接决定应用的通信质量。其主要职责包括&#xff1a; 端到端通信&#xff1a;屏蔽底层网络细节&am…

ollama搭建deepseek调用详细步骤

在使用 Ollama 搭建 DeepSeek 并投喂数据的过程中,你需要几个主要步骤来确保一切顺利进行。以下是详细的指南,涵盖了从准备工作到实际投喂数据的所有环节。 准备环境确保你的计算机具备足够的硬件资源: CPU: 至少8核处理器(推荐12核以上)内存: 至少32GB RAM(推荐64GB以上…

使用Nginx实现后端负载均衡

目录 引言 一、负载均衡的核心作用 二、基础配置三步曲 1. 定义后端服务器组&#xff08;upstream&#xff09; 2. 配置代理转发规则 3. 重载配置生效 三、六大负载均衡算法详解 四、高级配置技巧 1. 健康检查机制 2. 会话保持方案 3. SSL终止优化 五、实战场景配置…

Spring 中使用代理的注解及机制分析

Spring 通过动态代理&#xff08;JDK 或 CGLIB&#xff09;为特定注解提供功能增强。以下是触发代理的核心注解及其实现机制&#xff1a; 一、事务管理相关 注解代理机制作用与场景注意事项TransactionalJDK 动态代理或 CGLIB&#xff08;默认优先 JDK&#xff09;声明式事务管…

游戏引擎学习第168天

回顾并计划今天的内容 今天我们将进行一些思考工作&#xff0c;回顾一下之前的工作。我们已经在资产处理工具中提取了字体&#xff0c;并展示了如何使用该库。我们有两个版本&#xff0c;一个不使用任何库&#xff0c;适合想要完全不依赖库的用户&#xff1b; 我们今天的任务…

element 样式记录

非完整代码&#xff0c;个人记录 表格分页 pagination,table <el-table :data"tableData" style"width: 100%"><el-table-column prop"id" label"ID" width"75"></el-table-column><el-table-column p…

ubuntu 没有网卡的解决方案

(1) 输入sudo service network-manager stop (2) sudo rm /var/lib/NetworkManager/NetworkManager.state (3) sudo service network-manager start (4) sudo vim /etc/NetWorkManager/NetworkManager.conf&#xff0c;将其中的managedfalse改为managedtrue 或者使用gedit&…