大模型强化学习对齐:从 RLHF 框架到 PPO 算法原理

大模型强化学习对齐:从 RLHF 框架到 PPO 算法原理
前言前面几期内容我们主要介绍强化学习中更新模型的手段比如 GRPO、GSPO 等那么这一期我们想把顺序理清楚向大家完善强化学习的框架并从原理角度介绍 PPO 算法如果前几期内容没有了解的可以直接点击下方的链接用 GRPO 让 Qwen 学会自我评判——强化学习后训练入门-CSDN博客从 GRPO 到 GSPOQwen 序列级强化学习后训练原理拆解-CSDN博客框架流程在介绍 RLHF 框架之前我们要先明白我们做强化学习是为了些什么强化学习作为一个无监督算法我们想通过这样的学习方式让模型不通过标准答案进行对照而是自己判断好坏从而不断的更新迭代去尽可能对齐人类的偏好这样的过程我们可以称之为大模型对齐大模型对齐大模型对齐的方式有很多种前面我们学习的 SFT 就是其中一种其原理是通过给出多组人为规定好的示例让模型自己去模仿示例的表达方式不断的更新迭代从而学会人为想要的表达常见的对齐方式还有 RHLF、RLAIF、DPO 等前面我们所学习的 GRPO、GSPO 等实际上就是优化的方式也就是Policy Optimization它解决的是已经有 Reward 以后怎么更新模型RLHF 框架RLHF 的全称是基于人类反馈的强化学习从命名上可以猜测到这个框架应该想解决的是训练好一个大模型之后怎么让大模型的输出更加偏向人类喜欢的回答因为同一个问题大模型可能会输出不同的答案生成的回答可能都没错但是由于人的偏好我们可能会更趋向其他的回答对于传统的 SFT比较难处理这种 A对但是 B 更好的情况因此 RLHF 就是专门解决这种不判断对错而是判断人类偏好SFT 的缺陷之前我们讲到用 SFT 做微调当时我们的数据组是promptresponse让模型学习但是前面提到 SFT 主要是模仿能力但是现实生活中往往没有标准的答案的比如一个任务输出 ABCD也许都可以是标准答案这个时候我们关心的并不是谁是标准答案而是偏好关系RLHF 的流程RLHF 的流程主要分成三个过程SFT 让模型先学会正常的回答是什么Preference → Reward Model 让模型学会人类的偏好RL 让 Policy 主动去追求高 Reward下面我们详细介绍相关流程阶段一 SFT 微调RLHF 通常不是从一个完全没调过的 Base Model 直接开始一般都是在预训练模型经过 SFT 微调后再进行 RLHF具体 SFT 的流程可以看看我主页的视频里面有对其介绍阶段二收集 Preference Data给同样的 prompt 让模型输出多个回答让人类标注那个答案更加好用下面的形式保存答案​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​ ​ ​​​其中 x 表示的是 prompty_w 表示 winner chosen、y_l 表示 loser rejected偏好回答不仅记录好的同时也记录差的那为什么不直接那这个数据训练经典 RLHF 当时的想法是我先训练一个模型让它学会模拟人类的评分这个内容也就是 —— Reward Model之前的文章我们提到过奖励模型是对回答进行评分的模型主要是判断这个回答有多符合人类偏好那这样的 RM 模型是怎么进行训练的我们有​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​我们希望​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​常见做法来自 Bradley-Terry preference model​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​其中 σ 表示的是 sigmoid 函数其中训练 Loss 通常类似​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​模型不断学习以后​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​让这样的结论越来越成立在之前我们的 WM 是用 LLM as Judge让大模型去作为裁判进行评分这样的评分框架有点类似 RLAIF但是核心的思想是类似的都是把“人的偏好”转成一个可以给 Policy 提供 Reward 的评分器阶段三RL前面的阶段我们训练好一个得分模型接下来我们有一个 Policy​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​也就是正在训练的大模型那我们优化的目标是什么呢通常优化的是​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​简单来说就是调整模型参数使未来自己生成出来的 Response 平均 Reward 更高前面的文章我们有说过假设我们只是最大化得分的话可能会出现 Reward Hacking 的情况也就是说在优化的过程中模型发现了得分的漏洞然后疯狂往漏洞方向更新因此经典 RLHF 需要 Reference Model冻结之前的基础模型 —— SFT做 KL 散度限制进一步我们优化的目标是​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​实际上在经典的 RLHF 中我们通常是采用优化模型通常是 PPO下面我们对这个算法进行一个简单的介绍PPO 算法介绍中文全称近端策略优化在 PPO 算法中我们通常会保存两个模型分别是当前的 Policy 和旧模型 Old-Policy这个在我们之前的 GRPO、GSPO 都有介绍过从公式的角度上就是​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​有了比率之后我们要怎么看是增加还是减少这个时候我们采用优势函数也就是我们前面介绍的 A表示这个行为比预期好还是坏因此目标函数就是​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​对于优势函数 A在 RLHF-PPO 算法中我们通常是采用 Value Model 也就是 Critic公式上的表达​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​表示的是当前状态未来可能获得的期望奖励价值函数本质上也是一个神经网络也是需要训练但是存在我们的比率大小很大因此我们要做一次截断操作去控制我们的比率也就是 clip公式上的表达就是​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​接着就是我们 KL 散度做约束防止模型越走越偏不要让 RL 后模型忘掉原来的语言能力因此在经典的 RLHF 中训练过程可能会涉及到比较多的模型如下模型作用Policy Model真正要训练的大模型Reference Model防止 Policy 漂移Reward Model模拟人的偏好Value/Critic Model估计 Advantage因为模型参数可以很大那么这些东西的显存和计算开销会非常恐怖这也就是为什么后面大量的研究都是在想能不能删模型PPO vs GRPO我们知道 PPO 的价值函数特别贵因此 GRPO 在此基础上做优化采用同一个问题多组回答的形式用实际值与平均值做减法的形式计算优势函数总结上述介绍了 RLHF 框架的基本流程和 PPO 算法的流程希望这篇文章可以帮助大家进一步理解强化学习算法若有错误和其他简介可以在评论区提出制作不易希望读者可以点赞关注支持博主

最新新闻

日新闻

周新闻

月新闻