大模型入门(七)—— RLHF中的PPO算法理解

大模型RLHF中PPO算法的理解与应用

本文主要是结合PPO在大模型中RLHF微调中的应用来理解PPO算法。

一、强化学习介绍

1.1、基本要素

环境的状态S:t时刻环境的状态StSt是环境状态集中某一个状态,以RLHF中为例,序列w1,w2,w3w1,w2,w3是当前的状态。

个体的动作A:t时刻个体采取的动作AtAt,给定序列w1,w2,w3w1,w2,w3,此时得到w4w4,得到w4w4就是执行的一次动作。然后就得到下一状态St+1=w1,w2,w3,w4St+1=w1,w2,w3,w4。

环境的奖励R:t时刻个体在StSt采取动作AtAt得到的奖励RtRt,奖励是对当前动作,不会考虑到未来的影响。

个体的策略ππ:根据输入的状态获取动作,可以表示为π(a|s)π(a|s)。

状态价值函数:价值一般是一个期望函数,即当前状态下所有动作产生的奖励和未来的奖励的期望值,这也是它不同于奖励R的地方,可以表示为vπ(s)=Eπ(Gt|St=s)=Eπ(Rt+γRt+1+γ2Rt+2+…|St=s)vπ(s)=Eπ(Gt|St=s)=Eπ(Rt+γRt+1+γ2Rt+2+…|St=s)。所以价值才是真正衡量当前状态下能产生的价值。

动作价值函数:动作价值函数类似于状态价值函数,只不过是在当前的状态和动作下获得的价值。可以表示为qπ(s,a)=Eπ(Gt|St=s,At=a)=Eπ(Rt+γRt+1+γ2Rt+2+…|St=s,At=a)qπ(s,a)=Eπ(Gt|St=s,At=a)=Eπ(Rt+γRt+1+γ2Rt+2+…|St=s,At=a)。

状态转移概率模型:根据当前的动作和状态转移到下一状态的概率。

1.2、有模型和无模型的区别

有模型和无模型实际上指是否要对环境建模,换句话说核心在于是否有状态转移概率模型,有模型是指有状态转移概率模型,知道状态是怎么转移的,是一个白盒模型,但实际中大多数强化学习的算法都是无模型的,不去构建状态转移概率模型,而是直接得到下一个状态。如上面的例子中,在状态w1,w2,w3w1,w2,w3直接进入到下一状态w1,w2,w3,w4w1,w2,w3,w4,这一过程是由生成模型(策略函数)直接给出的。

1.3、蒙特卡洛(MC)和时序差分(TD)的区别

蒙特卡洛和时序差分的主要差别在于计算价值函数,在蒙特卡洛中计算价值需要获取完整的状态序列,而时序差分则不需要,但实际训练过程中想要获取完整的状态序列成本是非常高的,所以时序差分也是现在的训练强化学习的主流方法。

假定给定一条完整的状态序列S1,A1,R2,S2,A2,…St,At,Rt+1,…RT,STS1,A1,R2,S2,A2,…St,At,Rt+1,…RT,ST。

价值函数的计算可以表示为:

vπ(s)=Eπ(Gt|St=s)=Eπ(Rt+γRt+1+γ2Rt+2+…|St=s)vπ(s)=Eπ(Gt|St=s)=Eπ(Rt+γRt+1+γ2Rt+2+…|St=s)。

在这里GtGt表示某一条状态序列的收获,注意这又引入了一个新的概念。而价值函数是通过采样多个序列得到多个GtGt的平均值。可以表示为:

vπ(s)≈average(Gt),s.t.St=svπ(s)≈average(Gt),s.t.St=s

价值函数的求解到这里就结束了,但还有一些可以优化的地方,一是同一个状态可能在一个完整的序列中重复出现,这里会涉及到first visit和every visit,感兴趣的自己可以去了解;二是在求解平均值时需要先把所有的GtGt存储下来,这样太浪费存储空间,最好的是增量计算平均值,这里的推导公式也很简单,最后可以得到这样的价值函数求解方式:

V(St)=V(St)+1N(St)(Gt−V(St))V(St)=V(St)+1N(St)(Gt−V(St))

在这里N(St)N(St)表示状态StSt出现的次数。但是当海量数据分布式迭代时,无法精确地计算出N(St)N(St),所以这里通常用一个系数αα来替代,这样就可以表示为:

V(St)=V(St)+α(Gt−V(St))V(St)=V(St)+α(Gt−V(St))

以上就是蒙特卡洛的求解价值的方式,现在回到时序差分中,我们说到要得到一个完整的序列是比较难得,这时就想到马尔科夫性,只考虑下一状态的价值,将收获GtGt表示为:

G(t)=Rt+γV(St+1)G(t)=Rt+γV(St+1)

一般把Rt+γV(St+1)Rt+γV(St+1) 称为TD目标值。这样我就不需要得到完整的序列,只需要下一状态就可以求解价值函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值