大模型中的强化学习——大语言模型研究05

作者: 引线小白-本文永久链接:httpss://www.limoncc.com/post/c0a3be9c86b2b4cd/
知识共享许可协议: 本博客采用署名-非商业-禁止演绎4.0国际许可证

摘要: 本文意在理清大语言模型中的强化学习。若有错误,请大家指正。
关键词: 大语言模型,reinforcement learing,强化学习

[TOC]

一、理论基础

1.1、数学符号

首先来熟悉一下数学符号

1、s: 状态(state)
2、a: 表示动作(action)
3、r: 表示奖励(reward), 奖励依赖当前状态、当前动作、未来状态。也就说 rt=Rt(st,at,st+1)
4、u: 表示回报(return),它是奖励的折现累积: ut=i=tnγitri, 如不特殊说明,一般有小写表示值,大写表示函数或者随机变量。例如

(1)Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+
有时候也不加区分。请根据上下文自行判断

5、π: 策略(policy) 是指如何根据观测到的状态做出决策。随机策略函数是一个概率密度函数π:S×A[0,1] 记为 π(as)。对于策略函数的参数 θ,这样也记做 πθ(as), π(as,θ)

价值函数是回报的期望,即未来期望获得的奖励之和。价值函数反应了现状的好坏,价值函数越大说明现状越有利,知道 Ut的随机性来自奖励 {Ri}it,奖励 Rt的随机性来自 StAtSt+1

6、动作价值函数(action-value function)

(2)Qπ(st,at)=ESt+1:,At+1:[UtSt=st,At=at]

其中:

St+1:={St+1,St+2,}
At+1:={At+1,At+2,}

有时候也用下面简写表示,以节约符号:

(3)Qπ(st,at)=Et+1:[utst,at]=ESt+1:,At+1:[Utst,at]

7、最优动作价值函数(optimal action-value function)

(4)Q(st,at)=maxπQπ(st,at)stS,atA

含义就是有多种策略函数 π可供选择,选择最好的策略函数:

(5)π=argmaxπQπ(st,at)stS,atA

8、状态价值函数(sata-value function)

(6)Vπ(st)=EAtπ(st)[Qπ(st,At)](7)=aAπ(ast)Qπ(st,a)

也就是说

(8)Vπ(st)=ESt+1:,At:[UtSt=st]

9、Aπ(st,at): 优势函数(advantage function)

(9)Aπ(st,at)=Qπ(st,at)Vπ(st)

优势函数是动作价值函数和状态价值函数之差。反应了动作相对于平均值的优势。

1.2、策略学习与策略梯度

策略学习的目标在于调整策略使得状态价值 Vπ(S)的均值最大。目标函数是

(10)J(θ)=EsS[Vπ(s)](11)=ESt:,At:[Ut]

其中 θ是策略网络的参数。

说的明白点就是消除了状态和动作的 S,A的随机性。求它们的期望。这样就只剩下 πθ。最大化
(12)maxθJ(θ)

然后有策略梯度定理:

(13)J(θ)θ=1γn1γEstρ,atπ[logπθ(atst)θQπ(st,at)]
通常会忽略 1γn1γ,简写成

(14)θJ(θ)=Estρ,atπ[θlogπθ(atst)Qπ(st,at)]

1.3、带基线的策略梯度定理

(15)θJ(θ)=Estρ,atπ[θlogπθ(atst)(Qπ(st,at)b)]

其中 b是任意函数,且不依赖 at, 要证明上述定理只需证明

(16)Eatπ[θlogπθ(atst)b]=0

实际上有 b不依赖于 at可以把 b提取到期望外面

(17)Eatπ[θlogπθ(atst)b]=bEatπ[θlogπθ(atst)](18)=batA[πθ(atst)θlogπθ(atst)](19)=batA[πθ(atst)1πθ(atst)πθ(atst)θ](20)=batA[πθ(atst)θ](21)=bθatAπθ(atst)(22)=b1θ(23)=0

这就证明了定理。不妨设 b=Vπ(st),这样有策略梯度

(24)θJ(θ)=Estρ,atπ[θlogπθ(atst)(Qπ(st,at)Vπ(st))]

Qπ(st,at)Vπ(st)实际上是优势函数 Aπ(st,at),这样有如下策略梯度

(25)θJ(θ)=Estρ,atπ[θlogπθ(atst)Aπ(st,at)]

这个策略梯度是各类RLHF(PPO,DPO,GRPO)的基础。当然看到这里好事者可能会问,为什么要引入优势函数,策略梯度定理如何证明等。那这里笔者就提示一下:
1、策略梯度定理证明稍微复杂,且证明技巧于实际应用比较远。笔者会在附录中介绍。
2、引入优势函数是减小方差、加速收敛。当然还有其他优点,这些笔者在后面会慢慢细说

最后笔者说说自己的心得,在这个技术高度集成的年代,理论前沿和应用前沿大多依赖很多底层基础知识。有些是应该弄明白的,对继续探索和实践是有益的。例如强化学习基础知识和策略梯度定理。但是有些其实可以放一放,没有必要深究。如策略梯度定理的证明,这就犹如神经网络的万能近似定理的证明,其实对你继续探索和实践深度学习影响甚微。此时如不能抑制自己的好奇心,非要搞清楚,你将会浪费大量时间和精力在非核心问题上。所以请记住适当抑制好奇心,才能走的更远

1.4、GAE广义优势估计与价值网络学习

这节我们将讨论使用GAE广义优势估计[^2]来计算优势函数, Aπ(st,at)=Qπ(st,at)Vπ(st) 并于价值网络学习联系起来。

回顾一下动作价值函数的贝尔曼方程

(26)Qπ(atst)=ESt+1ρ[Rt+γVπ(St+1)St=st,At=at]
那么有

(27)Aπ(st,at)=ESt+1ρ[Rt+γVπ(St+1)St=st,At=at]Vπ(st)
给定状态 st,智能体执行动作 at,环境会给出奖励 rt和新的状态 st+1, 用观测到的 rtst+1对期望做蒙特卡洛近似, 并用价值网络 vw(st)替换价值函数 Vπ(st),这样有优势函数的估计值:

(28)A^π(st,at)=rt+γvw(st+1)vw(st)

下面将目光注意到如何学习价值网络vw(st),对状态价值函数有贝尔曼方程:

(29)Vπ(st)=EAtπ[ESt+1ρ[Rt+γVπ(St+1)]]

同样对期望做近似,具体就是在叙述一遍:给定状态 st,智能体执行动作 at,环境会给出奖励 rt和新的状态 st+1, 用观测到的 rtst+1对期望做蒙特卡洛近似, 并用价值网络 vw(st)替换价值函数 Vπ(st),这样有价值函数的估计值:

(30)TD_Targetk=1:=y^t=rt+γvw(st+1)

又叫一步时间差分目标。如果对强化学习不熟悉,可能对反复出现的贝尔曼方程、TD(temporal difference,时间差分)等概念不太熟悉,这里稍微做点解释。希望给没有强化学习背景的同学减少一点困恼。
1、 vw(st)是价值网络值时刻 t做出的预测,其他没有任何事实成分
2、对于上式的一步时间差分目标是价值网络在时刻 t+1做出的预测,它部分基于真实观测的奖励 rty^tvw(st)都是对状态价值函数的估计,但 y^t是部分基于事实的,因此比 vw(st)更加可信,应该鼓励 vw(st)接近 y^t, 这样可以定义损失函数

(31)(w)=12[y^tvw(st)]2
有梯度

(32)w(w)=[y^tvw(st)TD_Error:δt]wvw(st)

y^tvw(st)为TD误差,或者叫时刻 t的一步时间差分误差 δt:

(33)TD_Errork=1=δt=y^tvw(st)=rt+γvw(st+1)vw(st)

可以看到TD误差其实和优势函数的估计是一样的,对于多步时间差分误差,也会有多步优势函数估计:

(34)A^(k=1)=TD_Errork=1=rt+γvw(st+1)vw(st)=δt(35)A^(k=2)=TD_Errork=2=rt+γ[rt+1+γvw(st+2)]vw(st)(36)=rt+γvw(st+1)vw(st)+γ[rt+1+γvw(st+2)vw(st+1)](37)=δt+γδt+1(38)A^(k=3)=TD_Errork=3=δt+γδt+1+γ2δt+2(39)(40)A^(k)=TD_Errork=i=1kγi1δt+i1(41)(42)A^(k=)=TD_Error=i=1γi1δt+i1

所谓多步TD误差其实就是尽可能用多步观测到的值去估计价值函数。从而可以降低估计的偏差和误差。通常为了平衡偏差和误差,会引入一个超参数 λ[0,1], 令

(43)A^t(k)=TD_Errork=i=1k(γλ)i1δt+i1(44)=δt+γλ[δt+1+(γλ)δt+2++(γλ)k2δt+k1](45)=δt+γλA^t+1(k1)

注意一下边界条件,当轨迹在 T时刻终止 后续状态价值为 Vπ(sT+1)=0,在价值函数学习代码的实现中,一般会先递归计算优势函数估计。然后使用如下公式计算TD目标。

(46)y^t=TDk=A^t(k)+vw(st)

当然如果对概率论缺乏直觉的朋友,可能一下子无法理解这种做法为啥能平衡偏差和误差。思考如下问题:求一组随机变量和的均值,那么如果我观测到其中 k的随机变量的值,替换对应的随机变量求均值,那么均值的方差和偏差如何变化?,不妨设这组随机变量是独立同分布的高斯分布 xiN(μ,σ2)sn=1ni=1nxi

如果我们没有观测到任何值
(47)E[sn]=μ,var[sn]=σ2n

如果观测到k组值,通常假设观测存在偏差 x˚i=μ+δi

那么均值有
(48)E[sn]=1n[ikx˚i+(nk)μ]=μ+ikδinμ

那么误差有

(49)var[sn]=(nk)σ2n2σ2n

也就是说方差变小,偏差变大。如果我们给观测值加一个超参数 λ[0,1]x˚i=λμ+λδi, 来平衡偏差和误差

那么均值有

(50)E[sn](λ)=1n[ikx˚i+(nk)μ]=nk(1λ)nμ+ikλδinμ+ikδin

相信通过这个例子,应该会有所感觉。

二、PPO近端策略优化

2.1、代理目标函数

网络上很多文章,写的多有错误,本文笔者将尽可能用清晰的数学符号,澄清各类问题。经过前期铺垫,终于可以谈论PPO了。为了使用自动微分,不太可能使用强化学习的原始目标函数 J(θ)=Esρ[Vπ(s)], 因为需要对个步骤对状态和动作求积分或求和,这是非常困难的,这里引入了一个代理目标函数(surrogate objective),只要确保代理目标函数的梯度和原始目标函数一致即可。回顾一下策略梯度

(51)θJ(θ)=Estρ,atπ[θlogπθ(atst)Aπ(st,at)]

那么设定这样的代理目标函数是显而易见的:

(52)LPG(θ)=Estρ,atπ[logπθ(atst)Aπ(st,at)]

也就说可一灵活设计目标函数,只要确保该目标函数的梯度和策略梯度定理一致即可。这也是经常看到论文和文章中总是提及策略梯度定理原因。因为只要保证如下公式

(53)θLPG(θ)=θJ(θ)

优化方向上就能在理论上保证和原始的强化学习目标是一致的。然后实践证明这个最明显的目标函数表现并不好。PPO论文[^3]使用了TRPO(trus region policy optimuization,置信域策略优化中提出的函数),回到原始目标函数

(54)J(θ)=Estρ[Vπ(st)](55)=Estρ[Eatπ[Qπ(st,at)]](56)=Estρ[atAπθ(atst)Qπ(st,at)](57)=Estρ[atAπθold(atst)πθ(atst)πθold(atst)Qπ(st,at)](58)=Estρ,atπθold[πθ(atst)πθold(atst)Qπ(st,at)]

这里变化为新旧策略比例的原因是为了纳入重要性采样的trick提高学习效率。如果不熟悉重要性采样的同学,请找本书看,这里推荐Sheldon M. Ross的《Simulation》。

使用优势函数Aπ(st,at)=Qπ(st,at)Vπ(st) ,在这个基础上PPO提出了裁剪版的代理目标函数

(59)LCLIP(θ)=Estρ,atπθold[min[πθ(atst)πθold(atst),clip[πθ(atst)πθold(atst),1ϵ,1+ϵ]]Aπ(st,at)]

其中令 ηt(θ)=πθ(atst)πθold(atst)

(60)LCLIP(θ)=Estρ,atπθold[min[ηt(θ),clip[ηt(θ),1ϵ,1+ϵ]]Aπ(st,at)]

用优势函数替代动作价值函数, 同时引入clip。有诸多的好处:

  • 1、已经证明这个操作不会改变梯度的期望值,当通过减小 Qπ(st,at)的绝对波动幅度,降低了方差。
  • 2、优势函数提供了更加明确的优化信号,因为优势函数衡量的是动作的相对好坏,使得策略更新方向更清晰,相比于使用动作价值函数,优势函数提供的梯度信号更稳定,减少了噪声干扰,从而加速收敛。
  • 3、与广义优势估计(GAE)结合,通过多步TD残差的加权和计算优势函数的估计。GAE平衡了蒙特卡洛方法(低偏差、高方差)和单步TD方法(高偏差、低方差),进一步优化了方差-偏差权衡,提升收敛效率。
  • 4、优势函数通过相对价值调整,而非依赖绝对回报,使得策略更新的幅度更加合理。结合PPO的裁剪机制(Clip机制),可限制策略更新的步长,避免因单次更新过大导致的策略崩溃。
  • 5、优势函数结合GAE,充分利用多步回报信息,减少对单一轨迹片段的依赖。这使得算法在相同样本量下能提取更多有效信息,提升数据利用率。
  • 6、优势函数指导策略优先选择高优势动作(利用),但PPO的熵正则项(Entropy Bonus)可保留一定随机性(探索)。两者结合避免了策略过早陷入局部最优。注意上面的公式,没有加入熵正则。
  • 7、优势函数依赖状态价值函数的估计,这要求Critic网络准确预测状态价值。PPO通过联合优化策略网络(Actor)和价值网络(Critic),使两者相互促进:Critic为Actor提供低方差梯度,Actor生成的数据帮助Critic更准确估计价值。
  • 8、在稀疏奖励任务中,绝对回报可能长期为零或变化微小,而优势函数通过比较动作的相对价值,仍能提供有效的梯度信号,帮助策略在早期阶段逐步改进。
2.2、大语言模型场景

上述分析都是在强化学习的状态动作场景。这里将转化为大模型场景。在LLM里,状态是每个token的之前的token。一般我们会从提示词或者问题 q出发,迭代输出每步动作,也就是token ot

(61)Estρ,atπθoldEqρ(Q),otπθold

也就是说有问题对数据集 D={(qi,o1oti)}i=1n

(62)LPPO(θ)=Eqρ(Q),otπθold[min[πθ(otq,o:t)πθold(otq,o:t),clip[πθ(otq,o:t)πθold(otq,o:t),1ϵ,1+ϵ]]Aπ(q,ot)]

2.3、PPO中的KL散度

为减轻奖励模型的过度优化,PPO还会引入参考模型的 KL散度,在计算每个token奖励时,减去 {o1,,ot}上的散度,

(63)rt=πθrm(q,o:t)βKL[πθ||πθref]

其中

πθrm是奖励模型(reward model), KL[πθ||πθref]=logπθ(otq,o:t)πθref(otq,o:t)

在这个地方,肯定有人会问为啥是把这个所谓的KL在计算token奖励时加入,而不是基于正则的方式加入到损失函数或者目标函数里面:

(64)LPPO(θ)=Eqρ,otπθold[min[πθ(ot,q,o:t)πθold(otq,o:t),clip[πθ(otq,o:t)πθold(otq,o:t),1ϵ,1+ϵ]]Aπ(q,ot)]βKL^[πθ||πθref]

这样才是更加常规做法。奈何GPT2,GPT3相关论文代码确实是这么写的,可以参考知乎上的讨论在强化学习 PPO 算法中,为什么可以把 KL 散度直接放进负奖励?

PPO技术要点差不多已经理清,这里再全局回顾一下:
1、有两个可以训练的模型:策略模型 πθ、 价值模型vw
2、有一已经训练好的奖励模型 πθrm
3、还有一个冻结参数的参考模型 πθref

deepseek math的论文图画的很好,笔者略微修改一下,并添加注释,以便更加清晰理解:


三、GRPO组相对策略优化

3.1、GRPO的目标函数

注意到PPO中有四个模型,实属非常浪费资源。GRPO[^4]提出了更加节约资源的版本。对于PPO,deepseek math给出了更加明晰的公式, 适合照着公式写代码。明确加入了 1|o|t=1|o|,对于一个问题 q的输出 o=[o1,o2,,ot,,oT], 明确了处理方式。之前的目标函数代码实现的时候默认如此,但是并没有显示的写出来。

(65)LPPO(θ)=Eqρ(Q),oπθold1|o|t=1|o|[min[πθ(otq,o:t)πθold(otq,o:t),clip[πθ(otq,o:t)πθold(otq,o:t),1ϵ,1+ϵ]]Aπ(q,ot)]

deepseek math论文提出了,GRPO组相对策略优化,目标函数是

(66)LGRPO(θ)=Eqρ(Q),{oi}i=1Gπθold(67)1Gi=1G1|oi|t=1|oi|[min[πθ(oi,tq,oi,:t)πθold(oi,tq,oi,:t),clip[πθ(oi,tq,oi,:t)πθold(oi,tq,oi,:t),1ϵ,1+ϵ]]Aπ(q,oi,t)βKL^[πθ||πθref]]

3.2、GRPO的KL散度

对于 KL散度的计算实际代码实现是通过蒙特卡洛估计来实现的,这也是为什么KL项在期望符号里面的原因。实际上这样的。

(68)KL^[πθ||πθref]=πθref(otq,o:t)πθ(otq,o:t)logπθref(otq,o:t)πθ(otq,o:t)1

为何使用这个估计,这篇博文写了如何对KL散度做蒙特卡洛近似,能实现偏差与方差平衡:https://joschu.net/blog/kl-approx.html[^5],这里啰嗦几句。KL通常是基于分布整体来计算的:

(69)KL[πθ||πθref]=otVocabπθlogπθπθref

这里笔者稍微做点解释,做蒙特卡洛模拟最简单就是使用 logπθ(otq,o:t)πθref(otq,o:t)来做估计。但是这个是估计的方差比较大。因为计算 log()会出现负值,而 KL是非负的。要减少方差需要添加一个与 logπθπθref变化方向相反,且均值为零的量。 πθrefπθ1似乎是一个不错的选择。而且 log(x)x1,这样估计量 logπθπθref+πθrefπθ1始终是非负。具体可以参见博文中的关于Bregman距离的论述。

3.3、GRPO的优势函数

对于优势函数的估计体现了GRPO组相对策略优化这个名字的含义, 在GRPO中没有价值模型,而是使用同一个问题的一组输出数据 {{q,oi}}i=1G,来计算相对优势。

  • 1、对于过程监督(process supervision),也就是说同一个问题 q个一组输出中的每个token的优势估计是这样计算的:

(70)A^i,t=A^π(q,oi,t)=r(oi,t)mean(R)std(R)

其中 R={{r(o1,1),r(o1,t)}1,,{r(oi,1),r(oi,t)}i,,{r(oG,1),r(oG,t)}G}

  • 2、对于结果监督(outcome supervison)有, 也就是说同一个问题 q个的一个输出中的每个token的优势估计相同的:

(71)A^i,t=A^π(q,oi)=r(oi)mean(R)std(R)

其中 R={r(o1),,r(oi),,r(oG)}

3.4、deepseek R1模型的目标函数

deepseek R1模型的目标函数[^1]和deepseek math中的目标函数稍微不太一样。deepseek的思维链模型,没有使用过程奖励。目标函数中可以看到是整体计算整个输出求平均。而且R1除了没有价值模型,还没有奖励模型。奖励的计算基于规则、代码验证器、格式验证来计算的。这大大节约了资源,也减少了学习难度。

(72)LGRPO(θ)=Eqρ(Q),{oi}i=1Gπθold(73)1Gi=1G1|oi|t=1|oi|[min[πθ(oi,tq,oi,:t)πθold(oi,tq,oi,:t),clip[πθ(oi,tq,oi,:t)πθold(oi,tq,oi,:t),1ϵ,1+ϵ]]Aπ(q,oi)βKL^[πθ||πθref]]

其中
A^i,t=A^π(q,oi)=r(oi)mean(R)std(R)

KL^[πθ||πθref]=πθref(oi,tq,oi,:t)πθ(oi,tq,oi,:t)logπθref(oi,tq,oi,:t)πθ(oi,tq,oi,:t)1


R1的训练流程经过了三个阶段,下面是笔者绘制的流程图,并标注了关键节点的一些注意要点。注意在最后阶段其实是有奖励模型参与的。第三阶段的生成600k的推理数据在使用拒绝采样时也使用了奖励模型。注意在deepseekv3的奖励模型中是同时输出奖励理由的思维链和奖励分数的。


四、大语言模型中强化学习的统一范式

deepseek math论文中对各类RLHF(SFT、RFT、DPO、PPO、GRPO)提出了一个统一强化学习框架,下面是统一的策略梯度公式:

(74)θJA=E(q,o)DData Source[1|o|t=1|o|GCA(q,o,r,πθrmGradient Coefficient)θlogπθ(otq,o:t)]

有三个关键组件
1、 Data Source D 它决定了训练数据
2、 Reward Function πθrm 它是训练奖励信号的来源
3、 Algorithm A 它处理了训练数据和梯度系数(Gradient Coefficient)中的奖励信号,生成决定数据的惩罚项或强化幅度。

下面来一一考察:

4.1、SFT

监督微调(Supervised Fine-tuning)

  • 目标函数
    (75)LSFT(θ)=Eq,oρ(Q,O)[1|o|t=1|o|logπθ(otq,o:t)]

  • 数据集
    在问题对数据集中抽样, 其中 q是问题, o=[o1,,o|o|]是回答的每个token。

(76)D={(qi,oi)}i=1n

  • 梯度
    (77)θLSFT(θ)=Eq,oρ(Q,O)[1|o|t=1|o|θlogπθ(otq,o:t)]

  • 奖励函数
    (78)πθrm=1

  • 梯度系数
    (79)GCSFT(q,o,r,πθrm)=1

4.2、RFT

决绝采样微调(Rejection Sampling Fine-tuning)

  • 目标函数
    (80)LRFT(θ)=Eqρ(Q),oπsft[1|o|t=1|o|I(o)logπθ(otq,o:t)]

  • 数据集
    RFT是在已经训练好的SFT模型 πsft上, 对问题 q生成多个回答,并标注正确和错误的回答。o=[o1,,o|o|]是回答的每个token。

(81)D={(qi,oiTrueoroiFalse)}i=1n

  • 梯度

(82)θLRFT(θ)=Eqρ(Q),oπsft[1|o|t=1|o|I(o)θlogπθ(otq,o:t)]

  • 奖励函数
    (83)πθrm=1

  • 梯度系数
    (84)GCRFT(q,o,r,πθrm)=I(o)={1if o=True0if o=False

4.3、Online RFT

在线决绝采样微调(Online Rejection Sampling Fine-tuning)和RFT的区别,在于数据会通过实时策略模型 πθ生成。而不是离线已经训练好的 πsft模型。

  • 目标函数
    (85)LOnRFT(θ)=Eqρ(Q),oπθ[1|o|t=1|o|I(o)logπθ(otq,o:t)]
4.4、DPO

直接偏好优化(Direct Preference Optimization)

  • 目标函数
    (86)LDPO(θ)=Eqρ(Q),o+,oπsft[logσ(β1|o+|t=1|o+|logπθ(ot+q,o:t+)πθref(ot+q,o:t+)β1|o|t=1|o|logπθ(otq,o:t)πθref(otq,o:t))]

  • 数据集
    DPO是是问题 q上的偏好数据,并标注接受回答 +和拒绝回答 o=[o1,,o|o|]是回答的每个token。

(87)D={(qi,oi+oroi)}i=1n

  • 梯度

(88)θLDPO(θ)=Eqρ(Q),o+,oπsft[βGCDPO(q,o,t)(1|o+|t=1|o+|θlogπθ(ot+q,o:t+)1|o|t=1|o|θlogπθ(otq,o:t))]

  • 奖励函数
    (89)πθrm=1

  • 梯度系数
    (90)GCDPO(q,o,t)=σ(βlogπθ(ot+q,o:t+)πθref(ot+q,o:t+)βlogπθ(otq,o:t)πθref(otq,o:t))

4.5、PPO

近端策略优化(Proximal Policy Optimization)

  • 目标函数

(91)LPPO(θ)=Eqρ(Q),oπθold1|o|t=1|o|[min[πθ(otq,o:t)πθold(otq,o:t),clip[πθ(otq,o:t)πθold(otq,o:t),1ϵ,1+ϵ]]Aπ(q,ot)]

为了简化分析,假定模型在每个探索阶段之后只有一个更新,从而确保 πold=πθ,在这种情况下,删除最小值和裁剪操作有简化的目标函数

(92)LPPO(θ)=Eqρ(Q),oπθold1|o|t=1|o|[πθ(otq,o:t)πθold(otq,o:t)Aπ(q,ot)]

  • 数据集
    PPO是问题 q上的探索数据轨迹(输出结果),o=[o1,,o|o|]是回答的每个token。

(93)D={(qi,oi)}i=1n

  • 梯度系数
    (94)θLPPO(θ)=Eqρ(Q),oπθold1|o|t=1|o|[θlogπθ(otq,o:t)Aπ(q,ot)]

  • 奖励函数
    奖励函数就是已经训练好的奖励模型
    (95)πθrm

  • 梯度系数
    (96)GCPPO(q,o,r,πθrm,vw)=At(q,ot)

4.6、GRPO

组相对策略优化(Group Relative Policy Optimization)

  • 目标函数

和PPO一样简化,删除最小值和裁剪操作,有简化的目标函数:

(97)LGRPO(θ)=Eqρ(Q),{oi}i=1Gπθold1Gi=1G[πθ(oiq)πθold(oiq)Aπ(q,oi)β(πθref(oiq)πθ(oiq)logπθref(oiq)πθ(oiq)1)]

  • 数据集
    GRPO是在一个问题 q上的探索一组数据轨迹(输出结果),o=[o1,,o|o|]是回答的每个token。

(98)D={(qi,{oi,g}g=1G)}i=1n

  • 梯度系数

(99)θLGRPO(θ)=Eqρ(Q),{oi}i=1Gπθold1Gi=1G[[Aπ(q,oi)+β(πθref(oiq)πθ(oiq)1)]θlogπθ(oiq)]

  • 奖励函数
    奖励的计算基于规则、代码验证器、格式验证来计算的

  • 梯度系数

(100)GCGRPO(q,o,r,πθrm)=Aπ(q,oi)+β(πθref(oiq)πθ(oiq)1)

参考文献

[^1]: DeepSeek-AI, Guo, D., Yang, D., Zhang, H., Song, J., Zhang, R., et al. (2025, January 22). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv. https://doi.org/10.48550/arXiv.2501.12948

[^2]: Schulman, J., Moritz, P., Levine, S., Jordan, M., & Abbeel, P. (2018, October 20). High-Dimensional Continuous Control Using Generalized Advantage Estimation. arXiv. https://doi.org/10.48550/arXiv.1506.02438

[^3]: Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017, August 28). Proximal Policy Optimization Algorithms. arXiv. https://doi.org/10.48550/arXiv.1707.06347

[^4]: Shao, Z., Wang, P., Zhu, Q., Xu, R., Song, J., Bi, X., et al. (2024, April 27). DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv. https://doi.org/10.48550/arXiv.2402.03300

[^5]: J. Schulman. Approximating kl divergence, 2020. URL http://joschu.net/blog/kl-approx.html.


版权声明
引线小白创作并维护的柠檬CC博客采用署名-非商业-禁止演绎4.0国际许可证。
本文首发于柠檬CC [ https://www.limoncc.com ] , 版权所有、侵权必究。
本文永久链接httpss://www.limoncc.com/post/c0a3be9c86b2b4cd/
如果您需要引用本文,请参考:
引线小白. (Jan. 31, 2025). 《大模型中的强化学习——大语言模型研究05》[Blog post]. Retrieved from https://www.limoncc.com/post/c0a3be9c86b2b4cd
@online{limoncc-c0a3be9c86b2b4cd,
title={大模型中的强化学习——大语言模型研究05},
author={引线小白},
year={2025},
month={Jan},
date={31},
url={\url{https://www.limoncc.com/post/c0a3be9c86b2b4cd}},
}

1 评论
Powered By Valine
v1.5.2
'