DAPO

GitHub
1.8k 84 中等 1 次阅读 昨天语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

DAPO 是由字节跳动 Seed 团队与清华大学 AIR 联合开源的大规模大语言模型强化学习(RL)系统。它旨在解决当前大模型在复杂推理任务中训练不稳定、探索效率低以及难以复现顶尖性能的难题。通过开放算法核心、代码基础设施及配套数据集,DAPO 让研究社区能够低成本地访问和复现世界级的强化学习成果。

该系统特别适合从事大模型对齐、推理能力优化及强化学习算法研究的开发者与科研人员。基于高效的 verl 框架,DAPO 提出了独特的“解耦裁剪”与“动态采样”策略优化算法。这一创新不仅显著提升了训练过程的稳定性,还通过智能平衡“探索”与“利用”,引导模型生成更长、更复杂的推理路径。

在实际表现上,DAPO 展现了惊人的效率:仅用以往最先进方法一半的训练步数,便基于 Qwen2.5-32B 基座模型在极具挑战性的 AIME 2024 数学竞赛中取得了超过 50% 的得分,刷新了同类规模模型的性能纪录。无论是希望深入探究 RLHF 前沿机制的研究者,还是寻求高效训练方案的技术团队,DAPO 都提供了一个透明、强大且易于上手的专业平台。

使用场景

某顶尖 AI 实验室的研究团队正致力于提升大语言模型在复杂数学竞赛(如 AIME)中的推理能力,试图通过强化学习让模型学会多步推导。

没有 DAPO 时

  • 训练效率低下:复现顶级推理模型需要消耗巨大的计算资源和时间,往往需要完整的训练周期才能达到基准性能,试错成本极高。
  • 推理过程不稳定:模型在训练中容易出现响应长度剧烈波动或奖励信号震荡,导致难以收敛到高质量的解题策略。
  • 探索与利用失衡:传统算法难以动态调整采样策略,模型要么过早陷入局部最优(过拟合),要么因随机性过大而无法掌握复杂的逻辑链条。
  • 技术门槛高:缺乏开源且经过验证的大规模 RL 系统基础设施,团队需从零搭建底层框架,分散了核心算法研究的精力。

使用 DAPO 后

  • 大幅缩短训练周期:借助解耦裁剪和动态采样策略,DAPO 仅用以往 50% 的训练步数就在 Qwen2.5-32B 上实现了 AIME 2024 得分突破 50 分,显著加速研发迭代。
  • 训练过程平稳可控:监控指标显示响应长度稳步增长,奖励分数平滑上升,确保模型能稳定地学习更复杂的长链推理行为。
  • 智能平衡探索机制:动态采样策略自动调节熵值,既避免了过度随机生成的无效尝试,又防止了过早固化思维,确保持续的性能提升。
  • 开箱即用的全栈系统:直接复用字节种子与清华 AIR 开源的完整代码、数据集及预训练权重,团队可立即基于成熟框架开展前沿实验。

DAPO 通过高效的动态优化算法,将大规模大模型强化学习的训练成本减半,同时确立了新的性能标杆,让顶级推理能力的获取变得触手可及。

运行环境要求

操作系统
  • Linux
GPU
  • 必需 NVIDIA GPU
  • 推理示例配置为 tensor_parallel_size=8 (需 8 卡),显存利用率设为 0.95
  • 基于 Qwen2.5-32B 模型,建议单卡显存 24GB+ 或多卡互联
  • 依赖 vLLM,通常要求 CUDA 12.1+
内存

未说明 (建议 64GB+ 以支持 32B 模型加载及数据处理)

依赖
notes该工具基于 verl 框架开发,主要用于大规模 LLM 强化学习训练与推理。环境建议使用 conda 管理。推理和评估依赖 vLLM 和 Ray Serve。训练脚本需在 Volcano Engine 或兼容的分布式环境中运行。模型权重为 DAPO-Qwen-32B,基于 Qwen2.5-32B 微调。
python3.10
torch
transformers
vllm
ray[serve]
verl
DAPO hero image

快速开始

DAPO:来自字节跳动Seed与清华AIR的开源强化学习系统

论文 博客 数据集 权重

[!IMPORTANT] 🔥 新闻!!!

  • [2025/05] 我们更新了完整DAPO的WandB训练记录以及在AIME 2024中取得50%以上成绩的检查点。我们还提供了在AIME 2024上进行评估的说明
  • [2025/03] 我们发布了DAPO早期版本(不含Token-level PG Loss和动态采样)的训练记录,在AIME 2024中取得了44%的成绩,相关记录可在WandB上查看。

我们发布了一个完全开源的大规模LLM强化学习系统,包含算法、代码框架和数据集。该系统实现了当前最先进的大规模LLM强化学习性能。我们提出了Decoupled Clip and Dynamic sAmpling Policy Optimization(DAPO)算法。 通过开源,我们为更广泛的研究社区和社会提供了可扩展强化学习的实用途径,使所有人都能受益于这些技术进步。我们的系统基于优秀的verl框架。感谢他们的杰出工作!

欢迎讨论

🤗 如果您对我们的论文有任何疑问,欢迎在Issue中提出,我们将一起探讨。谢谢!

关键结果

AIME 2024表现

🚀 DAPO 基于Qwen2.5-32B基础模型,在AIME 2024中取得了50分的成绩,优于此前的SoTA DeepSeek-R1-Zero-Qwen-32B,且仅使用了其50%的训练步数。

alt text

训练过程中的指标监控

  1. 长度稳定性与增长:响应长度的稳步增加有助于更大程度的探索,促进模型学习更复杂的推理行为,最终提升训练的稳定性和性能。

  2. 奖励分数稳定性:奖励信号的平稳上升表明模型正在成功拟合训练分布,确保学习过程稳健一致,不会出现大幅波动。

  3. 熵与平均概率趋势:在初始下降后,熵的适度上升保证了探索与利用之间的健康平衡,避免过拟合或过度随机性的问题,从而持续提升模型性能。

alt text

模型使用

我们提供了基于DAPO算法、以Qwen2.5-32B为基础训练的[DAPO-Qwen-32B]模型权重,地址为这里

环境搭建

我们建议使用conda来搭建环境:

conda create -n dapo python=3.10
conda activate dapo
pip3 install -r requirements.txt

推理

我们在此提供模型推理代码:

import torch
from transformers import AutoTokenizer
from vllm import SamplingParams, LLM

examples = [
    {
        "question": "请逐步解答以下数学问题。你的回答最后一行应为“Answer: $Answer”(不带引号),其中$Answer是问题的答案。\n\n求复数$z$满足$|z|=4$时,\\[(75+117i)z+\\frac{96+144i}{z}\\]的最大可能实部。\n\n请务必在“Answer:”之后单独一行写出答案。",
        "answer": "540"
    },
    {
        "question": "请逐步解答以下数学问题。你的回答最后一行应为“Answer: $Answer”(不带引号),其中$Answer是问题的答案。\n\n每天早上,Aya会步行9公里,随后去咖啡店休息。当她以每小时$s$公里的速度行走时,整个行程包括在咖啡店停留的$t$分钟,共需4小时。而当她以每小时$s+2$公里的速度行走时,整个行程包括在咖啡店停留的$t$分钟,只需2小时24分钟。假设Aya以每小时$s+\\frac{1}{2}$公里的速度行走,求她这次行程总共需要多少分钟,包括在咖啡店停留的$t$分钟。\n\n请务必在“Answer:”之后单独一行写出答案。",
        "answer": "204"
    },
    {
        "question": "请逐步解答以下数学问题。你的回答最后一行应为“Answer: $Answer”(不带引号),其中$Answer是问题的答案。\n\n设$\\mathcal{B}$为所有表面积为54、体积为23的长方体组成的集合。记$r$为能够容纳$\\mathcal{B}$中每个长方体的最小球体半径。$r^2$可以表示为$\\frac{p}{q}$的形式,其中$p$和$q$是互质的正整数。求$p+q$。\n\n请务必在“Answer:”之后单独一行写出答案。",
        "answer": "721"
    }
]


def main():
    model = "BytedTsinghua-SIA/DAPO-Qwen-32B"

    tokenizer = AutoTokenizer.from_pretrained(model)

    llm = LLM(
        model=model,
        dtype=torch.bfloat16,
        tensor_parallel_size=8,
        gpu_memory_utilization=0.95
    )

    sampling_params = SamplingParams(
        temperature=1.0,
        top_p=0.7,
        max_tokens=20480
    )

    for example in examples:
        question = example["question"]
        answer = example["answer"]
        output = llm.generate(
                    prompts=tokenizer.apply_chat_template(conversation=[{"content": question, "role": "user"}],
                                                          add_generation_prompt=True,
                                                          tokenize=False),
                    sampling_params=sampling_params
                )
        print(f"***QUESTION***:\n{question}\n***GROUND TRUTH***:\n{answer}\n***MODEL OUTPUT***:\n{output[0].outputs[0].text}\n")
        print("-"*100)

if __name__ == "__main__":
    main()

AIME 2024 评估

为了在 AIME 2024 上评估模型,我们使用 Ray Serve 和 vLLM 部署了 DAPO-Qwen-32B。

从 Huggingface 加载模型:

serve run eval.llm:build_app model=BytedTsinghua-SIA/DAPO-Qwen-32B tensor-parallel-size=8

# 打开另一个终端
python eval/eval_aime24.py --temperature 1.0 --top_p 0.7 --max_tokens 20480 --model BytedTsinghua-SIA/DAPO-Qwen-32B --test_file eval/aime-2024.parquet

从本地路径加载模型:

serve run eval.llm:build_app model=aaa/bbb/ccc tensor-parallel-size=8

# 打开另一个终端
python eval/eval_aime24.py --temperature 1.0 --top_p 0.7 --max_tokens 20480 --model ccc --test_file eval/aime-2024.parquet

可复现性

为了造福更广泛的研究社区,我们完全开源了我们的强化学习训练流程,包括算法细节、数据集和基础设施。

数据集

我们提供了用于 DAPO 训练的训练集和验证集。

训练集:DAPO-Math-17k,一个经过精心整理和处理的数学数据集。 验证集:AIME 2024

训练

我们提供了 开箱即用 的脚本,用于复现 DAPO 训练。快速入门和核心代码已在 README 中提及。这些脚本用于:

注意:

  • 无 token 级 PG 损失与动态采样——AIME 44 脚本已在当前版本的 verl 上验证通过,并在 AIME 2024 中取得了 44 分的成绩,其训练记录可在 wandb 上查看。
  • 完整 DAPO——AIME 50 脚本也已在最新版 verl 上验证通过,它在 AIME 2024 中获得了 50 分。您可以在 wandb 上查看相应的训练记录。

致谢

我们感谢 verl 提供了出色的开源强化学习基础设施。

我们的开源实验是在火山引擎机器学习平台上进行的。我们将在火山引擎平台上稍后提供完整的复现指南,以帮助用户复现我们的实验。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架