DAPO:为GRPO的锦上加四点花

GitHub:BytedTsinghua-SIA/DAPO: An Open-source RL System from ByteDance Seed and Tsinghua AIR

Paper:DAPO: An Open-Source LLM Reinforcement Learning System at Scale

DAPO

DAPO,一个对GRPO全方位优化的Policy优化算法,有必要单独记录一下。损失如下:

JDAPO(θ)=E(q,a)D,{oi}i=1Gπθold (q)[1i=1Goii=1Gt=1oimin(ri,t(θ)A^i,t,clip(ri,t(θ),1εlow ,1+εhigh )A^i,t)] s.t. 0<{oi equivalent (a,oi)}<G\begin{aligned} & \mathcal{J}_{\mathrm{DAPO}}(\theta) = \mathbb{E}_{(q, a) \sim \mathcal{D},\left\{o_i\right\}_{i=1}^G \sim \pi_{\theta_{\text {old }}}(\cdot \mid q)} \\ & {\left[\frac{1}{\sum_{i=1}^G \left|o_i\right|} \sum_{i=1}^G \sum_{t=1}^{\left|o_i\right|} \min \left(r_{i, t}(\theta) \hat{A}_{i, t}, \operatorname{clip}\left(r_{i, t}(\theta), 1-\varepsilon_{\text {low }}, 1+\varepsilon_{\text {high }}\right) \hat{A}_{i, t}\right)\right] } \\ & \text { s.t. } \quad 0 \lt \mid\left\{o_i \mid \text { equivalent }\left(a, o_i\right)\right\} \mid \lt G \end{aligned}

其中:

ri,t(θ)=πθ(oi,tq,oi<t)πθold (oi,tq,oi<t),A^i,t=rimean({Ri}i=1G)std({Ri}i=1G)\begin{aligned} & r_{i, t}(\theta)=\frac{\pi_\theta (o_{i, t} \mid q, o_{i \lt t})} {\pi_{\theta_{\text {old }}} (o_{i, t} \mid q, o_{i \lt t})}, \\ & \hat{A}_{i,t}=\frac{r_i-\text{mean}\left(\left\{R_i\right\}_{i=1}^G\right)}{\text{std}\left(\left\{R_i\right\}_{i=1}^G\right)} \end{aligned}

看着和GRPO有点像。为了便于对比,把GRPO损失一并贴出来:

JGRPO(θ)=E(q,a)D,{oi}i=1Gπθold (q)[1Gi=1G1oit=1oimin(ri,t(θ)A^i,t,clip(ri,t(θ),1ε,1+ε)A^i,t)βDKL(πθπref)]\begin{aligned} & \mathcal{J}_{\mathrm{GRPO}}(\theta) = \mathbb{E}_{(q, a) \sim \mathcal{D},\left\{o_i\right\}_{i=1}^G \sim \pi_{\theta_{\text {old }}}(\cdot \mid q)} \\ & {\left[\frac{1}{G} \sum_{i=1}^G \frac{1}{|o_i|} \sum_{t=1}^{\left|o_i\right|} \min \left(r_{i, t}(\theta) \hat{A}_{i, t}, \operatorname{clip}\left(r_{i, t}(\theta), 1-\varepsilon, 1+\varepsilon \right) \hat{A}_{i, t}\right) - \beta \mathbb{D}_{KL}(\pi_{\theta} | \pi_{ref}) \right] } \end{aligned}

其中:

DKL(πθπref)=πref(oiq)πθ(oiq)logπref(oiq)πθ(oiq)1\mathbb{D}_{K L}\left(\pi_\theta \| \pi_{r e f}\right)=\frac{\pi_{r e f}\left(o_i \mid q\right)}{\pi_\theta\left(o_i \mid q\right)}-\log \frac{\pi_{r e f}\left(o_i \mid q\right)}{\pi_\theta\left(o_i \mid q\right)}-1

r和A同上。

DAPO去掉了KL,观点是,模型分布可能与初始模型有很大差异,因此不需要这种限制。这点和我本人之前的认知不太一样,我认为Base是相对稳定的,分布差异应该不大。所以自然就有个疑惑:去掉KL到底是因为RL后续训练偏离Base较大导致限制没作用,还是偏离Base较小所以没作用?后来X哥提醒了一句:“这个应该不是偏离过大,而是针对Base到LongCoT本来变化大”,从这个角度看KL确实没太多意义。

奖励函数还是简单的规则:正确1分,否则-1分。

More

DeepSeek R1后LLM新范式

本文通过10篇R1相关的研究,介绍R1后LLM的新范式。其核心就是如何进一步增强LLM的能力。

基本框架

首先是整体的框架,如下所示。

  • Base+SFT
    • R1冷启动
    • LIMO (817 Data Selection)
    • s1 (1000)
  • Base+RL
    • GRPO: R1-Zero
    • GRPO: oat-zero (Base can Aha、RL enhance)
    • PPO: LIMR (Data Selection)
    • PPO: orz (Scaling quality, diversity)
    • DPO: Online-DPO-R1 (Different RL Algo)
    • DPO: LIMD (Data Selection)
  • SFT+RL
    • R1蒸馏
    • DeepScaleR (Length Scaling)
    • Self-rewarding correction (LLM can reward itself, explicit Aha)、L1(LCPO)

我将其分成3个部分,前两个部分是Base模型的基础上使用SFT或RL提升效果,最后是SFT结合RL进一步提升效果。每个部分的第一个都是R1论文中的内容,上面没有R1本身,是因为R1本身是一个比较综合的过程。

值得说明的是,关于R1相关的研究肯定不止这些,列出这些一方面是因为我自己精力有限,只仔细阅读了这些;另一方面是逐步整理的过程中感觉到框架基本趋于完善。因此,本文也算是一个阶段性整理的输出。

本文内容相对比较通俗,如果对相关内容感兴趣,可以移步到对应的解读文章。

More

预训练:NTP和Scaling Law

做预训练绕不开这两个主题,尤其是Scaling Law,NTP探讨智能如何产生,对宏观思想认知有极大帮助。

其实,关于NTP为什么能产生智能这个问题笔者在2023年和几个从业者探讨过,见这篇博客,当时大家的答复并没让笔者完全信服。现在,又要开始探讨了。至于原因,大家看完文章就知道了。

More

LLM、强化、蒸馏讨论

2025年2月26日下午,Datawhale Paper群突然开启了一番关于AI相关的讨论,涉及成员主要包括:X、Y、D、S、M、A和C。我觉得内容相当有意思,因此记录在案备查。

其中对我个人印象比较深的几个观点:

  • X提出的新的大模型训练范式:预训练,long-cot, sft(long2short)。可以理解为先用大规模语料预训练学习知识,然后用少量SFT或RL(可以一起用)提升long-cot,然后再做SFT使其根据情况自动选择long或short。
  • 关于如何让模型自动选择思考长度(或不思考)的讨论,X认为主要靠强化,只是奖励这块需要涉及,就是是否需要思考,问题的难易,需要有个奖励来控制、设计。集成和自适应prm都是挺好的点,其实现在的重心就是什么样的奖励和怎么自动奖励。
  • 关于蒸馏分布的讨论。蒸馏之前做的不多,没想过这么细,不过如何桥接教师和学生的讨论确实有启发。

对讨论结果分别使用DeepSeek和DeepSeek-R1进行了整理,前者相对比较忠于讨论内容,后者则更加抽象有高度一些,各有优势。

More

R1相关:少量高质量数据SFT激活LLM推理能力

本文介绍两篇最新的用少量高质量数据SFT激活LLM推理能力的研究,分别是LIMO和s1。众所周知,一般说到SFT,尤其是参数比较大的模型,都是需要大量数据的;再加上推理任务本身又比较复杂,所需的数据可能更多。但这两篇文章的结论有点颠覆认知。这里的核心是:LLM本身需要具备如此能力,才有可能通过少量高质量数据SFT激活,否则可能难以见效。随着R1的出现,后训练算是彻底发生改变了。

More

DeepSeek R1深度技术解析及其影响

本文是2025年2月15日《2025 iFLYTEK 开发者TALK 杭州站《DeepSeek深度技术解析》分享的文字版,PPT可以在这里找到。由于时间关系,实际分享是本文的简化版。文字内容是近半个月陆陆续续记录的一些阅读笔记和思考,中途接到分享邀请(还好有点积累,不然怕是难顶doge),成稿于分享后。

距离2022年底ChatGPT发布开启LLM时代才过去两年多一点时间,刚进入2025年,DeepSeek-R1就将LLM真正推向了深度思考时代。

两年多的高速发展,前所未有的按周迭代,如今想来都一阵恍惚。2023年是LLM最快速发展的一年,被称为LLM元年,新的开发范式出现(感兴趣的读者可以关注HuggingLLM),全民AI浪潮涌现。2024年,基于LLM的应用已经开始成熟,Agent百花齐放,进入元年,各种应用层出不穷,一个人公司成为可能。

当我们以为LLM基本就这样按部就班向”应用“时,R1出现了,它发迹于OpenAI-o1,但超越了o1。关于o1,我的观点和OpenAI前首席研究官Bob的观点一致:它的目标是解决复杂问题,大多数人日常工作中并不会遇到需要o1的需求(可以参考关于AI前沿的思考)。但是R1提升了LLM的整体能力,让模型真正在推理时进行自我反思和验证,这当然适用于复杂问题,但日常工作很多场景也能受益,AI更加像人。我觉得这是R1对整个行业的贡献,其作用不亚于ChatGPT的发布。

More