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.mzph.cn/web/72699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣刷题46. 全排列

46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 使用dfs搜索&#xff0c;查找所有的情况&#xff0c;首先定义所有的链表集合list&#xff0c;在定义每一种情况的链表res&#xff0c;在主函数中遍历所有的初始元素&#xff0c;首先初始化res&#xff0c;并且添加到res中&…

Metasploit Framework(MSF)使用教程与命令详解

Metasploit Framework&#xff08;简称MSF&#xff09;是一款功能强大的开源渗透测试工具&#xff0c;广泛应用于网络安全领域。它集成了大量的漏洞利用模块&#xff08;exploits&#xff09;、辅助模块&#xff08;auxiliary&#xff09;和载荷&#xff08;payloads&#xff0…

【Netty】客户端功能完善

超时控制 public class RequestTimeoutManager {private final HashedWheelTimer timer new HashedWheelTimer();private final ConcurrentMap<Long, Timeout> pendingRequests new ConcurrentHashMap<>();public void addRequest(long requestId, long timeout…

【鸿蒙开发】Hi3861学习笔记- DS18B20温度传感器

00. 目录 文章目录 00. 目录01. DS18B20简介02. DS18B20引脚及电路03. DS18B20内部结构框图04. DS18B20内存映射05. 硬件设计06. 软件设计07. 实验现象08. 附录 01. DS18B20简介 DS18B20 是常用的数字温度传感器&#xff0c;其输出的是数字信号&#xff0c;具有体积小&#xf…

跨境大文件传输如何突破延迟与丢包双重困局

一、行业痛点&#xff1a;跨国传输的挑战 在全球化业务场景中&#xff0c;跨境大文件传输常面临网络延迟高、丢包率频发等问题。传统TCP协议因其“先建联再传输”的机制&#xff0c;在高时延、高丢包环境下效率骤降&#xff0c;导致跨国协作、影视渲染、科研数据共享等场景中传…

uni-app——计时器和界面交互API

API 基本概要 概念说明 API&#xff08;应用程序接口&#xff09;是预先定义的方法集合&#xff0c;用于实现特定功能。在 uni-app 中&#xff0c;通过全局对象 uni 调用 API&#xff0c;例如 uni.getSystemInfoSync 获取设备信息。 API 分类与调用规则 事件监听型 以 on 开…

Dify 升级攻略:从0.15.3迈向1.1.0,元数据管理全攻略!

嘿&#xff0c;小伙伴们&#xff01;今天给大家带来一个超实用的干货分享——Dify从0.15.3升级到1.1.0版本的详细攻略。这次升级不仅带来了功能上的更新&#xff0c;还特别强化了元数据管理。相信很多小伙伴和我一样&#xff0c;一直在使用Dify来提升工作效率&#xff0c;但每次…

15.三数之和-力扣(python)

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例 1&a…

numpy学习笔记14:模拟随机游走过程

numpy学习笔记14&#xff1a;模拟随机游走过程 随机游走是一种数学统计模型&#xff0c;其中的每一步方向和大小都是随机的。下面使用 NumPy 模拟一维和二维的随机游走过程&#xff1a; 1.代码示例 import numpy as np import matplotlib.pyplot as plt plt.rcParams[font.s…

YOLOv11 目标检测

本文章不再赘述anaconda的下载以及虚拟环境的配置&#xff0c;博主使用的python版本为3.8 1.获取YOLOv11的源工程文件 链接&#xff1a;GitHub - ultralytics/ultralytics: Ultralytics YOLO11 &#x1f680; 直接下载解压 2.需要自己准备的文件 文件结构如下&#xff1a;红…

dijkstra算法——47. 参加科学大会

卡码网:47. 参加科学大会https://kamacoder.com/problempage.php?pid=1047 题目描述 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。 小明的起点是第一个车站,终点是最后一个车站。然而,途中的各个车站之间的道路状况、交通拥堵程度以…

Rust语言介绍和猜数字游戏的实现

文章目录 Rust语言介绍和猜数字游戏的实现cargo是什么使用Rust编写猜数字 Rust语言介绍和猜数字游戏的实现 Rust语言是一种系统编程语言&#xff0c;核心强调安全性、并发性以及高性能&#xff0c;由类似于C/C的底层控制能力&#xff0c;性能也非常接近&#xff0c;Rust有一些…

Ubuntu下Docker部署Misskey:打造你的去中心化社交平台

引言 在信息爆炸的时代&#xff0c;人们对于社交平台的需求日益增长&#xff0c;同时也更加注重数据的隐私和自由。Misskey作为一个开源的去中心化社交平台&#xff0c;为用户提供了一个全新的选择。本文将详细介绍如何在Ubuntu Linux环境下&#xff0c;利用Docker快速部署Mis…

DeepSeek Chat 自动化交互技术分析

本文将对 DeepSeek Chat 自动化交互脚本进行技术分析&#xff0c;包括代码结构、实现原理以及关键技术点。该脚本使用 Selenium 实现了对 DeepSeek Chat 平台的自动化登录和问答功能。 1. 代码结构概览 该脚本主要由以下几个部分组成&#xff1a; 环境准备与依赖导入&#x…

128. Longest Consecutive Sequence

如果n-1存在于数组中&#xff0c;则以n开头的连续序列可以忽略掉&#xff0c;因为以n-1开头的连续序列的长度肯定至少比以n开头的连续序列长1个元素。这是本题的关键。然后利用哈希表查询元素是否在数组中。 class Solution { public:int longestConsecutive(vector<int>…

《SQL编程思想》中的 MySQL 建表语句和测试数据

《SQL编程思想》中的 MySQL 建表语句 建表语句 -- 创建 4 个示例表和索引 CREATE TABLE department( dept_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 部门编号&#xff0c;自增主键, dept_name VARCHAR(50) NOT NULL COMMENT 部门名称) ENGINEInnoDB COMM…

基于ssm学科竞赛小程序的设计及实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着信息时代的来临&#xff0c;过去的学科竞赛管理方式的缺点逐渐暴露&#xff0c;本次对过去的学科竞赛管理方式的缺点进行分析&#xff0c;采取计算机方式构建学科竞赛小程序。本文通过阅读相关文献&#xff0c;研究国内外相关技术&#xff0c;提出了一种关于竞赛信息…

【redis】什么是持久化之 RDB

什么是持久化 MySQL 的事务&#xff0c;有四个比较核心的特性&#xff1a; 原子性一致性持久性>持久化&#xff08;说的一回事&#xff09; 把数据存储在硬盘上>持久把数据存在内存上>不持久重启进程/重启主机之后&#xff0c;数据是否还存在 隔离性 Redis 是一个内存…

Python 鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…

游戏立项时期随笔记录(1)

模拟经营的项目还没有完全结束&#xff0c;这几天又有可能涉及到一个新项目。感想随笔记录一下&#xff0c;防止忘记。今天一天整理这个&#xff0c;搞得今天没时间看数学和AI。 在 Unity3D 游戏前端主程序的立项时期&#xff0c;核心目标是明确技术方向、评估可行性、搭建基础…