RLHF PPO直观解释

原文:

https://zhuanlan.zhihu.com/p/677607581

强化学习流程:

A: Action; R: Reward; S: State

目标:找到一个策略,这个策略根据当前观测到的环境状态和奖励反馈,来选择最佳的动作。

价值函数:

其中:

  • Vt : t 时刻的总收益,注意这个收益蕴涵了“即时”和“未来”的概念
  • Rt : t 时刻的即时收益
  • Vt+1 : t+1 时刻的总收益,注意这个收益蕴涵了“即时”和“未来”的概念。而 Vt+1 对 Vt 来说就是“未来”。
  • γ :折扣因子。它决定了我们在多大程度上考虑将“未来收益”纳入“当下收益”。

RLHF和强化学习的对应关系:

每生成1个Token:自己这个Token就是Action,用Reward模型、Actor和Reference模型计算得到该步Reward,用Critic模型计算得到预估价值V;

在RLHF-PPO阶段,一共有4个主要模型,分别是:

  • Actor Model:这就是我们想要训练的目标语言模型
  • Critic Model:它的作用是预估总收益 Vt
  • Reward Model:它的作用是计算即时收益 Rt
  • Reference Model:它的作用是在RLHF阶段给语言模型增加一些“约束”,防止语言模型训歪(朝不受控制的方向更新,效果可能越来越差)

其中:

- Actor/Critic Model在RLHF阶段是需要训练的;

- Reward/Reference Model参数冻结的。

Actor loss的演化

1. 原始版

(后面公式都省略加和符号)

Vt是Critic模型推理得到的该时刻Value(包括当前和未来);P是Actor模型生成当前Token的概率;

符合直观逻辑:当Vt为正时,P越大,loss越小;当Vt为负时,P越小,loss越小;

2. 用"优势"替换“价值”

(走了一步的(前2项),显然比一步也没走的(第3项),预测的更靠谱)

3. 升级R (Reward)

直观上, Rt 应该表示每个Actor产出token At 带来的即时收益;

DeepSpeed中,用的是:

即,整句生成的sentence,之后最后1个token是加上了Reward模型的推理结果Rt;

其他token,都只是用Actor模型和Ref模型的偏离度,来作为Reward;即,Actor模型对该token的生成概率是P,则Ref模型对该token的生成概率Rref,必须大于P,也就是比Actor模型还认可该token结果(表明rlhf没有训歪),才认为是正向的Reward;否则就是负的Reward;

4. 升级"优势"(Advantage)

把"未来"的优势,也加入考虑:

实现上,从后往前,递推进行计算;

5. PPO-epoch: 引入新约束

在强化学习中,收集一个batch的经验是非常耗时的。对应到我们RLHF的例子中,收集一次经验,它要等四个模型做完推理才可以,正是因此,一个batch的经验,只用于计算1次loss,更新1次Actor和Critic模型,好像有点太浪费了。
所以,我们自然而然想到,1个batch的经验,能不能用来计算ppo-epochs次loss,更新ppo-epochs次Actor和Critic模型?

如果我们想让一个batch的经验值被重复使用ppo_epochs次,等价于我们想要Actor在这个过程中,模拟和环境交互ppo_epochs次。举个例子:

  • 如果1个batch的经验值只使用1次,那么在本次更新完后,Actor就吃新的batch,正常和环境交互,产出新的经验值
  • 但如果1个batch的经验值被使用ppo_epochs次,在这ppo_epochs中,Actor是不吃任何新数据,不做任何交互的,所以我们只能让Actor“模拟”一下和环境交互的过程,吐出一些新数据出来。

防止超出范围,裁剪:

Critic loss的演化

1. 原始版本

目标:让一步也不走的V,更接近真实,也就是更接近走了一步的V;

2. "走了一步"的V

3. "一步没走"的V

4. 裁剪(不要偏离old太远)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值