RLHF(一):LLM post-training
1. PPO算法
PPO的训练步骤如下:
(1)收集人类反馈,人工标注数据 (2)训练奖励模型 (3)采用PPO强化学习,优化策略
在LLM上使用PPO算法进行post-training时,主要涉及4个model:
- Actor Model: 是我们要优化学习的策略模型,同时用于做数据采样,用SFT Model热启
- Reference Model: 是为了控制Actor模型学习的分布与原始模型的分布相差不会太远的参考模型,通过loss中增加KL项,来达到这个效果。训练过程中该模型不更新
- Critic Model:是对每个状态做打分的价值模型,衡量当前token到生成结束的整体价值打分,一般可用Reward Model热启
- Reward Model:对整个生成的结果打分,是事先训练好的Reward Model。训练过程中该模型不更新
2. DPO算法
DPO相比于PPO算法,由于它直接定义偏好损失作为策略来优化LLM,省去了奖励模型的定义,因此在post-training的流程上更为简练(PPO: SFT->RM->PPO)
如何理解DPO loss:
开始训练时,Reference model和Policy model都是同一个模型,在训练过程中Reference model不更新权重。我们将loss公式中的log部分展开,然后设
训练的目标为将优化函数最大化。即我们希望公式的左半部分和右半部分的margin越大越好,左半部分的含义是good response相较于没训练之前的累计概率差值,右半部分代表bad response相较于没训练之前的累计概率差值
3. KTO算法
DPO算法中依赖的训练数据为:问题——期望回答——拒绝回答。高质量的偏好数据收集较为困难。KTO则回避了这个问题,可以直接利用二元信号标记的数据来训练算法,对于负样本更加敏感
前景价值函数:决策者根据实际收益或损失所产生的主观感受的价值。(决策时,相对于收益,决策者对损失更加敏感)
KTO算法的loss如下:
4.GRPO算法
在PPO算法中,每个时间步都有一个价值网络去估计优势函数,这使得训练资源消耗巨大。为了减少在post-training的过程中对价值网络的依赖,GRPO采用“分组输出相互比较”的方式来估计基线,从而省去Critic Model。
关键点:分组采样与相对奖励
对于一个问题q,Actor Model会产生多份输出
综上所述,因为不再需要在每个token上拟合一个价值函数,GRPO可以大幅节省内存。
Ques: 如何使用GRPO进行过程监督
v1.5.1