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)∑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∣ equivalent (a,oi)}∣<G
其中:
ri,t(θ)=πθold (oi,t∣q,oi<t)πθ(oi,t∣q,oi<t),A^i,t=std({Ri}i=1G)Ri−mean({Ri}i=1G)
看着和GRPO有点像。为了便于对比,把GRPO损失一并贴出来:
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)
其中:
DKL(πθ∥πref)=πθ(oi∣q)πref(oi∣q)−logπθ(oi∣q)πref(oi∣q)−1
r和A同上。oi表示输出的第i个Token。
DAPO去掉了KL,观点是,模型分布可能与初始模型有很大差异,因此不需要这种限制。这点和我本人之前的认知不太一样,我认为Base是相对稳定的,分布差异应该不大。所以自然就有个疑惑:去掉KL到底是因为RL后续训练偏离Base较大导致限制没作用,还是偏离Base较小所以没作用?后来X哥提醒了一句:“这个应该不是偏离过大,而是针对Base到LongCoT本来变化大”,从这个角度看KL确实没太多意义。
奖励函数还是简单的规则:正确1分,否则-1分。
More →