【强化学习】深度解析 DAPO:从 GRPO 到 Decoupled Clip & Dynamic Sampling

文章目录

  • [一、DAPO 提出背景](#一、DAPO 提出背景)
  • [二、DAPO 原理解析](#二、DAPO 原理解析)
    • [2.1 核心公式](#2.1 核心公式)
      • [2.1.1 定义 r i , t ( θ ) r_{i,t}(\theta) ri,t(θ) 与 A ^ i , t \hat{A}{i,t} A^i,t](#2.1.1 定义 r i , t ( θ ) r{i,t}(\theta) ri,t(θ) 与 A ^ i , t \hat{A}_{i,t} A^i,t)
      • [2.1.2 目标函数对比(GRPO vs DAPO)](#2.1.2 目标函数对比(GRPO vs DAPO))
    • [2.2 Clip-Higher](#2.2 Clip-Higher)
      • [2.2.1 两种类型 token](#2.2.1 两种类型 token)
      • [2.2.2 熵崩溃的数学根源](#2.2.2 熵崩溃的数学根源)
      • [2.2.3 clip 上下限各自约束什么?*](#2.2.3 clip 上下限各自约束什么?*)
      • [2.2.4 解耦 ϵ high \epsilon_{\text{high}} ϵhigh 和 ϵ low \epsilon_{\text{low}} ϵlow](#2.2.4 解耦 ϵ high \epsilon_{\text{high}} ϵhigh 和 ϵ low \epsilon_{\text{low}} ϵlow)
    • [2.3 Dynamic Sampling](#2.3 Dynamic Sampling)
      • [2.3.1 GRPO 采样中的弊端](#2.3.1 GRPO 采样中的弊端)
      • [2.3.2 DAPO 的动态采样机制](#2.3.2 DAPO 的动态采样机制)
    • [2.4 Token-level Policy Gradient Loss](#2.4 Token-level Policy Gradient Loss)
      • [2.4.1 从 sample-level 到 token-level](#2.4.1 从 sample-level 到 token-level)
      • [2.4.2 计算示例](#2.4.2 计算示例)
    • [2.5 Overlong Reward Shaping](#2.5 Overlong Reward Shaping)
  • 三、算法伪代码及说明
  • 四、小结

一、DAPO 提出背景

随着大规模语言模型(LLM)的发展,强化学习(RL)在提升模型推理能力方面发挥了重要作用,尤其在复杂任务如长链条推理(Long-CoT)中。然而,现有的强化学习方法(如PPO和GRPO)面临以下问题:

  • 熵崩溃:模型训练过程中,探索性降低,过度依赖已知模式,导致模型缺乏多样性。
  • 训练效率低:长链条推理任务中,梯度减小,导致训练不稳定。
  • 样本质量问题:低质量样本干扰训练,导致训练效果差。
  • 奖励噪声:长序列的奖励信号不稳定,影响训练稳定性。

为了解决这些问题,ByteDance Seed与清华大学AIR联合团队提出了 DAPO(Decoupled Clip and Dynamic sAmpling Policy Optimization,解耦剪切和动态采样策略优化) 算法,主要包含以下四点创新:

  1. Clip-Higher:通过调整剪切范围,提高探索性,避免熵崩溃。
  2. 动态采样:过滤低质量样本,提升训练效率。
  3. 基于token的策略梯度损失:改进长链条推理中的梯度更新。
  4. 过长奖励塑形:减少奖励噪声,确保长推理任务中的稳定训练。

DAPO 是在 GRPO(Group Relative Policy Optimization,群组相对策略优化) 的基础上进行创新,优化了现有的策略更新过程。

在阅读以下内容之前,请先学习 GRPO 的相关原理,可参考我的另一篇博客:【强化学习】深度解析 GRPO:从原理到实践的全攻略


二、DAPO 原理解析

2.1 核心公式

2.1.1 定义 r i , t ( θ ) r_{i,t}(\theta) ri,t(θ) 与 A ^ i , t \hat{A}_{i,t} A^i,t

  1. 重要性采样比 r i , t ( θ ) r_{i,t}(\theta) ri,t(θ)
    r i , t ( θ ) = π θ ( o i , t ∣ q , o i , < t ) π θ old ( o i , t ∣ q , o i , < t ) r_{i,t}(\theta) = \frac{\pi_{\theta}(o_{i,t} \mid q, o_{i,<t})}{\pi_{\theta_{\text{old}}}(o_{i,t} \mid q, o_{i,<t})} ri,t(θ)=πθold(oi,t∣q,oi,<t)πθ(oi,t∣q,oi,<t)

    • 含义 : r i , t ( θ ) r_{i,t}(\theta) ri,t(θ) 是当前策略 π θ \pi_{\theta} πθ 与旧策略 π θ old \pi_{\theta_{\text{old}}} πθold 之间的 概率比值 。对于每个输出 o i , t o_{i,t} oi,t(第 i i i 个输出的第 t t t 个token),它表示在当前策略下,给定前 t t t 步的输入条件 q q q 和前 t − 1 t-1 t−1 步的输出 o i , < t o_{i,<t} oi,<t,该token的生成概率相对于旧策略的变化比例。
  2. 优势估计 A ^ i , t \hat{A}_{i,t} A^i,t
    A ^ i , t = R i − mean ( { R i } i = 1 G ) std ( { R i } i = 1 G ) \hat{A}{i,t} = \frac{R_i - \text{mean}(\{R_i\}{i=1}^G)}{\text{std}(\{R_i\}_{i=1}^G)} A^i,t=std({Ri}i=1G)Ri−mean({Ri}i=1G)

    • 含义 : A ^ i , t \hat{A}{i,t} A^i,t 是 标准化后的优势估计 。对于第 i i i 个输出的第 t t t 个token, A ^ i , t \hat{A}{i,t} A^i,t 表示该token相对其他token的优势,标准化过程消除了奖励值的尺度差异。 R i R_i Ri 表示与第 i i i 个输出相关的奖励, mean ( { R i } ) \text{mean}(\{R_i\}) mean({Ri}) 和 std ( { R i } ) \text{std}(\{R_i\}) std({Ri}) 是所有输出的奖励的均值和标准差。

2.1.2 目标函数对比(GRPO vs DAPO)

在上述定义下,GRPO目标函数可表示为:
J GRPO ( θ ) = E ( q , a ) ∼ D , { o i } i = 1 G ∼ π θ old ( ⋅ ∣ q ) [ 1 G ∑ i = 1 G 1 ∣ o i ∣ ∑ t = 1 ∣ o i ∣ { min ⁡ ( r i , t ( θ ) A ^ i , t , clip ( r i , t ( θ ) , 1 − ϵ , 1 + ϵ ) A ^ i , t ) − β D K L [ π θ ∥ π ref ] } ] \mathcal{J}{\text{GRPO}}(\theta) = \mathbb{E}{(q,a) \sim \mathcal{D}, \{o_i\}{i=1}^G \sim \pi{\theta_{\text{old}}}(\cdot | q)}\left[ \textcolor{blue}{\frac{1}{G} \sum_{i=1}^G \frac{1}{|o_i|}} \sum_{t=1}^{|o_i|} \left\{ \min \left(r_{i,t}(\theta) \hat{A}{i,t}, \text{clip} \left(r{i,t}(\theta), 1-\textcolor{blue}{\epsilon}, 1+\textcolor{blue}{\epsilon} \right) \hat{A}{i,t} \right) \textcolor{blue}{- \beta D{KL} \left[ \pi_\theta \| \pi_{\text{ref}} \right]} \right\}\right] JGRPO(θ)=E(q,a)∼D,{oi}i=1G∼πθold(⋅∣q) G1i=1∑G∣oi∣1t=1∑∣oi∣{min(ri,t(θ)A^i,t,clip(ri,t(θ),1−ϵ,1+ϵ)A^i,t)−βDKL[πθ∥πref]}

而DAPO目标函数表示为:
J DAPO ( θ ) = E ( q , a ) ∼ D , { o i } i = 1 G ∼ π θ old ( ⋅ ∣ q ) [ 1 ∑ i = 1 G ∣ o i ∣ ∑ i = 1 G ∑ t = 1 ∣ o i ∣ min ⁡ ( r i , t ( θ ) A ^ i , t , clip ( r i , t ( θ ) , 1 − ϵ low , 1 + ϵ high ) A ^ i , t ) ] s.t. 0 < ∣ { o i ∣ is_equivalent ( a , o i ) } ∣ < G \mathcal{J}{\text{DAPO}}(\theta) = \mathbb{E}{(q,a) \sim \mathcal{D}, \{o_i\}{i=1}^G \sim \pi{\theta_{\text{old}}}(\cdot | q)} \left[ \textcolor{red}{\frac{1}{\sum_{i=1}^G |o_i|} \sum_{i=1}^G} \sum_{t=1}^{|o_i|} \min \left( r_{i,t}(\theta) \hat{A}{i,t}, \text{clip}\left(r{i,t}(\theta), 1 - \textcolor{red}{\epsilon_{\text{low}}}, 1 + \textcolor{red}{\epsilon_{\text{high}}}\right) \hat{A}_{i,t} \right) \right]\\ \textcolor{red}{\text{s.t. } 0 < \left| \{o_i \mid \text{is\_equivalent}(a, o_i)\} \right| < G} JDAPO(θ)=E(q,a)∼D,{oi}i=1G∼πθold(⋅∣q) ∑i=1G∣oi∣1i=1∑Gt=1∑∣oi∣min(ri,t(θ)A^i,t,clip(ri,t(θ),1−ϵlow,1+ϵhigh)A^i,t) s.t. 0< {oi∣is_equivalent(a,oi)} <G

公式中的不同点已经用特殊颜色标记,通过依次对比可以发现下列四处差异:

  1. 样本加权
    • GRPO 中,目标函数对每个样本的损失进行 均匀加权 ,使用 1 G \frac{1}{G} G1 进行平均。
    • DAPO 引入了对样本的加权,基于输出总长度 ∑ i = 1 G ∣ o i ∣ \sum_{i=1}^G |o_i| ∑i=1G∣oi∣,能更公平地处理长输出和短输出对模型训练的不同影响。
  2. 剪切范围的调整
    • GRPO 中使用固定的剪切范围 [ 1 − ϵ , 1 + ϵ ] [1-\epsilon, 1+\epsilon] [1−ϵ,1+ϵ],来控制奖励比值的变化幅度。
    • DAPO 则通过 低剪切范围 ϵ low \epsilon_{\text{low}} ϵlow 和 高剪切范围 ϵ high \epsilon_{\text{high}} ϵhigh 的分别调整,使得剪切策略更加灵活,能够更好地平衡探索与开发。
  3. KL散度的移除
    • GRPO 中有一个KL散度项,用于约束策略模型与参考模型的输出分布差异,防止其过度偏离。
    • DAPO 认为,在训练长思维链推理模型时,策略模型分布可能与初始模型显著偏离,这种限制是没有必要的,因此移除了它。
  4. 样本约束
    • GRPO 中没有对样本生成的质量进行明确约束。
    • DAPO 加入了 样本约束 (即 0 < ∣ o i ∣ is_equivalent ( a , o i ) ∣ < G 0 < \left| {o_i \mid \text{is\_equivalent}(a, o_i)} \right| < G 0< oi∣is_equivalent(a,oi) <G),避免了低质量样本对训练结果的干扰。

接下来,我们将结合公式逐项剖析 DAPO 的四大创新技术的核心原理,并分析其在解决传统强化学习方法瓶颈问题时的实际效用。


2.2 Clip-Higher

2.2.1 两种类型 token

为了更好地理解 Clip-Higher 策略,我们首先需要区分两种类型的 token:

  1. 利用型 token(Exploitation Token):在旧策略下通常具有较高的概率,代表已验证、主流的推理路径或答案模式。
  2. 探索型 token(Exploration Token):在旧策略下通常具有较低的概率,表示模型尚未完全学习到的策略。它允许模型探索新的答案和路径,以增加多样性和创新性。

2.2.2 熵崩溃的数学根源

熵崩溃是指在训练过程中,模型的输出变得越来越集中,导致模型不再能够有效探索新的可能性。这种现象通常发生在强化学习的训练后期,当模型已经学习到一定的策略,并过度依赖这些策略时,它会变得缺乏足够的多样性和灵活性。

在 GRPO / PPO 框架下,策略优化并不是直接最大化奖励,而是通过如下剪切后的代理目标 进行更新:

L clip ( θ ) = E t [ min ⁡ ( r t ( θ )   A ^ t ,    clip ( r t ( θ ) ,   1 − ϵ ,   1 + ϵ )   A ^ t ) ] \mathcal{L}^{\text{clip}}(\theta)= \mathbb{E}_t \Big[ \min\big( r_t(\theta)\,\hat A_t,\; \text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)\,\hat A_t \big) \Big] Lclip(θ)=Et[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)]

其中:

r t ( θ ) = π θ ( o t ∣ q , o < t ) π θ old ( o t ∣ q , o < t ) r_t(\theta) = \frac{\pi_\theta(o_t \mid q,o_{<t})}{\pi_{\theta_{\text{old}}}(o_t \mid q,o_{<t})} rt(θ)=πθold(ot∣q,o<t)πθ(ot∣q,o<t)

在 GRPO 场景中,奖励是按 group 内相对表现标准化得到的 ,这意味着同一个 query 下,部分 sample 获得正优势( A ^ > 0 \hat A>0 A^>0), 部分sample 获得负优势( A ^ < 0 \hat A<0 A^<0)。

在这种设置下,熵崩溃的原因 并不是"模型过度偏好高概率利用型 token",而是一部分"正优势但低旧概率"的探索型 token,无法通过策略梯度获得足够大的概率提升。

2.2.3 clip 上下限各自约束什么?*

为说明 clip 函数如何影响熵崩溃,我们首先需要明确 clip 何时真正生效。根据上述公式,这由 A ^ \hat A A^ 的符号min 结构 共同决定。

情况一: A ^ t > 0 \hat A_t > 0 A^t>0(token 值得被强化) ,目标是增大 r t r_t rt

  • 当 r t ≤ 1 + ϵ r_t \le 1+\epsilon rt≤1+ϵ 时, r t ≤ clip ( r t ,   1 − ϵ ,   1 + ϵ ) r_t \le \text{clip}(r_t,\,1-\epsilon,\,1+\epsilon) rt≤clip(rt,1−ϵ,1+ϵ)

min ⁡ ( r t A ^ t ,    clip ( r t ,   1 − ϵ ,   1 + ϵ ) A ^ t ) = r t A ^ t \min(r_t\hat A_t,\;\text{clip}(r_t,\,1-\epsilon,\,1+\epsilon)\hat A_t) = r_t\hat A_t min(rtA^t,clip(rt,1−ϵ,1+ϵ)A^t)=rtA^t

此时 clip 不生效

  • 当 r t > 1 + ϵ r_t > 1+\epsilon rt>1+ϵ 时: r t > clip ( r t ,   1 − ϵ ,   1 + ϵ ) r_t \gt \text{clip}(r_t,\,1-\epsilon,\,1+\epsilon) rt>clip(rt,1−ϵ,1+ϵ)

min ⁡ ( r t A ^ t ,    clip ( r t ,   1 − ϵ ,   1 + ϵ ) A ^ t ) = clip ( r t ,   1 − ϵ ,   1 + ϵ ) A ^ t = ( 1 + ϵ ) A ^ t \min(r_t\hat A_t,\;\text{clip}(r_t,\,1-\epsilon,\,1+\epsilon)\hat A_t) = \text{clip}(r_t,\,1-\epsilon,\,1+\epsilon)\hat A_t = (1+\epsilon)\hat A_t min(rtA^t,clip(rt,1−ϵ,1+ϵ)A^t)=clip(rt,1−ϵ,1+ϵ)A^t=(1+ϵ)A^t

此时 clip 上限生效,梯度被截断

结论一 :clip 的上限 1 + ϵ 1+\epsilon 1+ϵ 仅在 A ^ > 0 \hat A>0 A^>0 且 r t r_t rt 已经很大 时起作用,它限制单次更新中,正优势 token 的最大有效梯度幅度。

情况二: A ^ t < 0 \hat A_t < 0 A^t<0(token 应被抑制) ,目标是减小 r t r_t rt

  • 当 r t ≥ 1 − ϵ r_t \ge 1-\epsilon rt≥1−ϵ 时, r t ≥ clip ( r t ,   1 − ϵ ,   1 + ϵ ) r_t \ge \text{clip}(r_t,\,1-\epsilon,\,1+\epsilon) rt≥clip(rt,1−ϵ,1+ϵ)

min ⁡ ( r t A ^ t ,    clip ( r t ,   1 − ϵ ,   1 + ϵ ) A ^ t ) = r t A ^ t \min(r_t\hat A_t,\;\text{clip}(r_t,\,1-\epsilon,\,1+\epsilon)\hat A_t) = r_t\hat A_t min(rtA^t,clip(rt,1−ϵ,1+ϵ)A^t)=rtA^t

此时 clip 不生效

  • 当 r t < 1 − ϵ r_t < 1-\epsilon rt<1−ϵ 时, r t < clip ( r t ,   1 − ϵ ,   1 + ϵ ) r_t \lt \text{clip}(r_t,\,1-\epsilon,\,1+\epsilon) rt<clip(rt,1−ϵ,1+ϵ)

min ⁡ ( r t A ^ t ,    clip ( r t ,   1 − ϵ ,   1 + ϵ ) A ^ t ) = clip ( r t ,   1 − ϵ ,   1 + ϵ ) A ^ t = ( 1 − ϵ ) A ^ t \min(r_t\hat A_t,\;\text{clip}(r_t,\,1-\epsilon,\,1+\epsilon)\hat A_t) = \text{clip}(r_t,\,1-\epsilon,\,1+\epsilon)\hat A_t = (1-\epsilon)\hat A_t min(rtA^t,clip(rt,1−ϵ,1+ϵ)A^t)=clip(rt,1−ϵ,1+ϵ)A^t=(1−ϵ)A^t

此时 clip 下限生效

结论二 :clip 的下限 1 − ϵ 1-\epsilon 1−ϵ 仅用于限制 负优势 token 被压低的最大速度,防止策略更新过激。

2.2.4 解耦 ϵ high \epsilon_{\text{high}} ϵhigh 和 ϵ low \epsilon_{\text{low}} ϵlow

根据上述分析可以看到,熵崩溃的根本原因 并不在于 clip 的下限,而在于 clip 上限对正优势 token 的过度约束 。但更关键的是,这种约束尤其限制了旧策略下低概率的探索型 token ,这是由于 π θ old ( o t ) \pi_{\theta_{\text{old}}}(o_t) πθold(ot) 本身极小,因此新策略下的概率 π θ ( o t ) \pi_\theta(o_t) πθ(ot) 只能发生有限幅度的绝对提升。

因此 Clip-Higher 将对称剪切区间:

1 − ϵ ,    1 + ϵ \] \[1-\\epsilon,\\;1+\\epsilon\] \[1−ϵ,1+ϵ

解耦为:

1 − ϵ low ,    1 + ϵ high \] , 且 ϵ high ≫ ϵ low \[1-\\epsilon_{\\text{low}},\\;1+\\epsilon_{\\text{high}}\], \\quad \\text{且} \\quad \\epsilon_{\\text{high}} \\gg \\epsilon_{\\text{low}} \[1−ϵlow,1+ϵhigh\],且ϵhigh≫ϵlow 其效果是:在不改变负优势 token 的稳定性约束的情况下,放宽了 A \^ \> 0 \\hat A\>0 A\^\>0 时 r t r_t rt 的最大可更新幅度, 从而**允许正优势、低旧概率的探索型 token 获得与其价值相匹配的梯度规模**。 *** ** * ** *** ### 2.3 Dynamic Sampling #### 2.3.1 GRPO 采样中的弊端 在 GRPO 中,对每一个 query q q q:固定生成 G G G 条 response: { o i } i = 1 G ∼ π θ old ( ⋅ ∣ q ) \\{o_i\\}_{i=1}\^G \\sim \\pi_{\\theta_{\\text{old}}}(\\cdot \\mid q) {oi}i=1G∼πθold(⋅∣q) 然后对这些 response 进行组内归一化计算优势 A \^ i , t \\hat{A}_{i,t} A\^i,t: A \^ i , t = R i − mean ( { R i } i = 1 G ) std ( { R i } i = 1 G ) \\hat{A}_{i,t} = \\frac{R_i - \\text{mean}(\\{R_i\\}_{i=1}\^G)}{\\text{std}(\\{R_i\\}_{i=1}\^G)} A\^i,t=std({Ri}i=1G)Ri−mean({Ri}i=1G) 考虑极端情况:如果所有( o i o_i oi)都正确(准确率=1)或都错误(准确率=0), mean ( { R i } ) = 1 / − 1 \\text{mean}(\\{R_i\\}) = 1/-1 mean({Ri})=1/−1, std ( { R i } ) = 0 \\text{std}(\\{R_i\\}) = 0 std({Ri})=0,这就导致了优势计算出为0,策略的梯度消失。 这种"梯度消失"**降低了样本效率** ,尤其当训练进入中后期时 π θ old \\pi_{\\theta_{\\text{old}}} πθold 已经高度集中,大量概率质量集中在少数"主流解路径"上,这种现象会更加显著。 #### 2.3.2 DAPO 的动态采样机制 针对上述弊端,DAPO提出了 **过采样和过滤** 的策略。其核心约束条件是: 0 \< ∣ { o i ∣ is_equivalent ( a , o i ) } ∣ \< G 0 \< \\left\| \\{o_i \\mid \\text{is\\_equivalent}(a, o_i)\\} \\right\| \< G 0\< {oi∣is_equivalent(a,oi)} \ L max (超长区,最大惩罚) 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 \& \\ \|y\| \> L_{\\text{max}} (超长区,最大惩罚) \\end{cases} Rlength(y)=⎩ ⎨ ⎧0Lcache(Lmax−Lcache)−∣y∣−1 ∣y∣≤Lmax−Lcache(安全区,不惩罚) Lmax−Lcache\<∣y∣≤Lmax(缓冲区,线性惩罚) ∣y∣\>Lmax(超长区,最大惩罚) * ∣ y ∣ \|y\| ∣y∣:生成序列的长度。 * L m a x L_{max} Lmax:允许的最大序列长度。 * L c a c h e L_{cache} Lcache:惩罚缓冲区长度。 * L m a x − L c a c h e L_{max} - L_{cache} Lmax−Lcache:安全长度阈值,低于此长度不施加惩罚。 通过这种分段奖励机制,DAPO 能够有效避免对长推理过程的误惩罚,从而稳定了训练过程并提高了模型的生成质量。 *** ** * ** *** ## 三、算法伪代码及说明 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b113a3ac71e74ba7b62d8b7dd73b57e3.png) DAPO 的算法伪代码如上图所示,说明如下: **(1)初始化与输入** 算法以当前策略模型 π θ \\pi_\\theta πθ、奖励模型 R R R、任务提示集合 D \\mathcal{D} D 作为输入,并引入解耦剪切相关的超参数 ϵ low \\epsilon_{\\text{low}} ϵlow 和 ϵ high \\epsilon_{\\text{high}} ϵhigh。 **(2)批次采样与旧策略冻结(Line 1--3)** 在每一个训练 step 中,首先从任务集合 D \\mathcal{D} D 中采样一个 mini-batch D b \\mathcal{D}_b Db。随后,将当前策略参数复制为旧策略 π θ old \\pi_{\\theta_{\\text{old}}} πθold,用于后续的重要性采样比计算。 **(3)基于旧策略的组内采样与奖励计算(Line 4-5)** 对于 batch 中的每个问题 q ∈ D b q \\in \\mathcal{D}_b q∈Db,使用旧策略 π θ old \\pi_{\\theta_{\\text{old}}} πθold 生成 G G G 条输出。对每个生成的输出 o i o_i oi,通过奖励模型 R R R 计算其对应的奖励 r i r_i ri。 **(4)动态采样过滤(Line 6--8)** 根据 Dynamic Sampling 的约束条件过滤掉全对或全错的 group,仅将满足条件的样本加入动态采样缓冲区(buffer)。如果当前缓冲区样本数量不足预设阈值 N N N,则跳过本次更新,继续进行采样。 **(5)Token 级优势计算(Line 9)** 当动态采样缓冲区填满后,对其中的每个输出 o i o_i oi 的每一个 token 位置 t t t,计算标准化优势。该优势在 group 内进行归一化,并在 token 级别上共享,使得长链条推理中的每个 token 都能获得直接的学习信号。 **(6)基于 Clip-Higher 的策略更新(Line 10--11)** 在每一个 outer step 中,执行 μ \\mu μ 次策略更新,优化 DAPO 目标函数, 其中,不对称剪切区间允许正优势、低旧概率的探索型 token 获得更大的梯度更新空间,从而缓解熵崩溃问题。 **(7)算法输出** 随着训练步数 M M M 的推进,策略模型 π θ \\pi_\\theta πθ 在动态采样与解耦剪切的共同作用下逐步优化,最终输出适用于复杂推理任务的策略模型。 *** ** * ** *** ## 四、小结 **DAPO** (**D** ecoupled Clip and **D** ynamic s**A** mpling **P** olicy **O** ptimization)算法的核心创新正体现在其名称所指的两大技术:**Clip-Higher(解耦剪切)**和**Dynamic Sampling(动态采样)**。其中,Clip-Higher 通过放宽正优势 token 的梯度限制,有效缓解了传统强化学习中常见的熵崩溃问题,使模型在长链条推理中能够更自由地探索新的答案路径;Dynamic Sampling 通过过滤全对或全错样本,构建"中等难度"的训练集,保证每个批次都提供有效梯度信号,从而提升训练稳定性和样本效率。 与 GRPO 相比,DAPO 在策略剪切和样本处理上进行了优化,使长序列对训练的贡献更加均衡,同时**移除了 KL 散度约束** ,更适应复杂推理任务中策略分布可能的大幅偏离。此外,DAPO 还引入了 **token级策略梯度损失** 和**长度感知奖励塑形**,进一步提升了模型在长推理链场景下的表现,并有效降低奖励噪声对训练的干扰。整体来看,DAPO 在训练稳定性、探索性和生成质量方面均优于 GRPO,尤其在长链条推理任务中表现突出,为大规模语言模型在复杂推理任务中的高效训练提供了完整的解决方案。

相关推荐
AI_56782 小时前
Airflow“3分钟上手”教程:用Python定义定时数据清洗任务
开发语言·人工智能·python
人工智能AI技术2 小时前
Agent核心模块进阶:让每个组件更智能、更实用
人工智能
羑悻的小杀马特2 小时前
不做“孤岛”做“中枢”:拆解金仓时序库,看国产基础软件如何玩转“多模融合”
数据库·人工智能
weixin_462446232 小时前
从零搭建AI关系图生成助手:Chainlit 结合LangChain、LangGraph和可视化技术
人工智能·langchain·langgraph·chainlit
桂花饼2 小时前
Python 实战 Sora-2 视频生成:基于小镜 AI 的低成本与角色一致性解决方案
人工智能·sora2·gemini 3·gpt-5.2·codex-max
算法狗22 小时前
大模型中哪些模型用到的pre-norm和post-norm技术的?
人工智能·深度学习·机器学习·语言模型·面试题
一只大侠的侠2 小时前
拖拽式AI应用工厂:ModelEngine应用编排深度体验,智能表单与插件开发实战
人工智能
说私域2 小时前
基于AI智能名片链动2+1模式S2B2C商城小程序的流量运营策略研究
人工智能·微信·小程序·产品运营·流量运营
山后太阳2 小时前
如何评估TensorRT加速效果?
人工智能