当前位置: 首页 > news >正文

PPO 原理与应用

1. PPO 在 RLHF 里到底是干什么的?

在 RLHF 里,我们通常已经有了一个经过 SFT 的模型。这个模型已经比较会回答问题了,但还不一定最符合人类偏好。

于是我们再训练一个奖励模型 Reward Model,让它模仿人类判断:

这个回答好不好?

然后 PPO 做的事情就是:

让当前大模型不断生成回答,再让奖励模型打分。
如果回答分数高,就提高模型以后生成类似回答的概率;
如果回答分数低,就降低模型以后生成类似回答的概率。

但 PPO 不会让模型一下子改得太猛,它会限制每次更新的幅度。

这就是 PPO 名字里的Proximal,意思是“近端的、不要离太远”。


2. PPO 的核心直觉

你可以把 PPO 想成一个“带安全绳的强化学习微调”。

普通强化学习可能会这样:

只要奖励高,就疯狂往那个方向更新。

这样很容易出问题,比如:

  • 模型变得极端啰嗦;
  • 模型学会讨好奖励模型;
  • 模型输出格式崩坏;
  • 模型偏离原来的语言能力;
  • 模型为了高分学出奇怪套路。

PPO 的思想是:

可以朝更高奖励方向更新,但每一步不要走太远。

就像训练一个学生:

  • 如果他答得好,就鼓励;
  • 答得不好,就纠正;
  • 但不能一天之内把他的所有表达习惯都彻底推翻。

3. PPO 需要理解的几个基础概念

3.1 Policy,策略模型

在 RLHF 中,policy就是当前正在训练的大语言模型。

它的作用是:

输入 prompt → 生成回答

比如:

用户:请解释 LoRA 模型:LoRA 是一种参数高效微调方法……

从强化学习角度看,模型每生成一个 token,都是在做一次“动作选择”。


3.2 Action,动作

在普通强化学习里,动作可能是:

  • 向左走
  • 向右走
  • 跳跃
  • 开火

在语言模型里,动作就是:

生成下一个 token。

比如模型生成:

LoRA 是 一 种 参数 高效 微调 方法

每一个 token 都可以看作一次动作。


3.3 State,状态

在语言模型里,状态可以理解成:

当前已经看到的上下文。

比如模型已经生成了:

LoRA 是一种

那么下一步生成什么 token,就取决于当前上下文状态。


3.4 Reward,奖励

在 RLHF 中,奖励通常来自奖励模型。

模型生成一个完整回答后,奖励模型给它打分:

问题 + 回答 → 奖励分数

例如:

回答奖励模型评分
“LoRA 是低秩适配方法……”8.5
“LoRA 是一个很厉害的东西……”4.0

PPO 的目标就是让模型更倾向于生成高奖励回答。


3.5 Value,价值函数

PPO 通常是 Actor-Critic 方法。

  • Actor:策略模型,负责生成回答;
  • Critic:价值模型,负责估计当前状态未来大概能获得多少奖励。

价值函数记作:V(s)。

它表示:

在状态 s 下,预计后面能拿到多少奖励。

在 RLHF 中,通常会在语言模型后面加一个value head,用来预测每个 token 位置的价值。


3.6 Advantage,优势函数

优势函数是 PPO 里非常重要的概念。

它大概表示:

这次实际生成的结果,比模型原本预期的好多少?

公式可以简单理解为:A = R - V(s)。

其中:

  • R:实际获得的奖励;
  • V(s):价值模型原本预计的奖励;
  • A:优势。

如果 A > 0,说明这次回答比预期好,应该增加生成它的概率。

如果 A < 0,说明这次回答比预期差,应该降低生成它的概率。


4.PPO 在 RLHF 中的完整流程

下面是经典 PPO-RLHF 的训练流程。


第一步:准备 SFT 模型

先有一个经过监督微调的模型:

SFT Model

它已经能基本按照指令回答。


第二步:复制一个 Reference Model

把 SFT 模型复制一份,作为参考模型:

Reference Model

这个模型不训练,保持固定。

它的作用是:

约束当前策略模型不要偏离原来的 SFT 模型太远。


第三步:准备 Reward Model

奖励模型输入:

prompt + response

输出一个分数:

reward score

它负责模拟人类偏好。


第四步:Policy Model 生成回答

当前正在训练的模型,也就是 policy model,会对一批 prompt 生成回答。

例如:

Prompt:请解释什么是 PPO Response:PPO 是一种强化学习算法……

第五步:奖励模型打分

奖励模型给这个回答打分:

Reward Model(prompt, response) = 7.8

这个分数代表回答质量。


第六步:计算 KL 惩罚

RLHF 里通常不仅看奖励模型分数,还会看当前模型和参考模型的差异。

如果当前模型偏离参考模型太远,就惩罚它。

通常奖励会变成:

Reward=RM_score−β⋅KL(πθ∣∣πref) Reward = RM\_score - \beta \cdot KL(\pi_\theta || \pi_{ref})Reward=RM_scoreβKL(πθ∣∣πref)

其中:

  • RM_score:奖励模型分数;
  • πθ:当前策略模型;
  • πref:参考模型;
  • KL:两个模型输出分布的差异;
  • β:控制惩罚强度。

这个 KL 惩罚非常重要。

它防止模型为了骗奖励模型而变得奇怪。


第七步:计算 advantage

用实际奖励和价值模型预测值计算优势:A = R - V(s)。

如果实际奖励比预测高,说明这次生成比预期好,应该鼓励。

如果实际奖励比预测低,说明这次生成比预期差,应该削弱。


第八步:用 PPO 更新模型

最后用 PPO 的 clipped objective 更新模型参数。

实际训练时,损失函数通常包括三部分:Loss = Policy Loss + Value Loss + KL/Entropy Terms。

更具体地说:

部分作用
Policy Loss让模型更倾向于高优势回答
Value Loss训练价值模型,让它更准确预测奖励
KL Penalty防止模型偏离参考模型太远
Entropy Bonus有时用于鼓励探索,避免输出过早僵化

5. PPO 中的 KL 和 clipping 有什么区别?

这是一个很重要的问题。

PPO 里有两个“限制模型别变太猛”的机制:

  1. clipping
  2. KL penalty

它们很像,但不是一回事。


5.1clipping 限制的是新旧策略的更新比例

PPO 的 clipping 主要限制新旧策略概率比:πθ(a|s) / πold(a|s)。

也就是:

当前训练这一步,新模型相对于旧模型,变化不能太大。

它关注的是训练更新的稳定性。


5.2KL penalty 限制的是当前模型和参考模型的距离

KL penalty 限制:KL(πθ|| πref)。

也就是:

当前模型不要偏离 SFT reference model 太远。

它关注的是对齐后模型不要走偏。


5.3 简单区分

机制限制对象目的
PPO clipping当前模型 vs 上一轮旧模型防止每次更新太猛
KL penalty当前模型 vs SFT 参考模型防止整体偏离原模型太远

一句话:

clipping 管“每一步别迈太大”,KL 管“整体别跑太远”。


6. PPO 为什么适合 RLHF?

语言模型和 RLHF 的特点PPO 的对应作用
输出是离散 token把每个 token 视为一次动作选择,用策略优化调整生成概率
最终质量通常要看完整回答用奖励模型对完整回答打分,再把整体奖励分配到生成过程
人类偏好难以写成标准答案用奖励信号表达偏好,而不是只模仿固定参考答案
奖励模型给的是整体评价结合 value 和 advantage 判断哪些生成行为值得强化
训练容易不稳定用 clipping 限制单次更新幅度,用 KL penalty 限制偏离参考模型的程度

所以早期 RLHF 里,PPO 是非常核心的方法。


7. 一个完整例子:PPO 如何优化回答

假设 prompt 是:

请用简单的话解释什么是 LoRA。

当前模型生成回答 A:

LoRA 是一种参数高效微调方法,它通过训练两个小矩阵来近似模型权重的更新,从而减少训练成本。

奖励模型给分:

8.5

参考模型认为这个回答也比较自然,KL 不大。

最终 reward 较高。

那么 PPO 会做:

增加模型以后在类似上下文中生成这类清晰、准确回答的概率。

另一个回答 B:

LoRA 是一种很强大的 AI 技术,它可以让模型变得更好。

奖励模型给分:

4.0

这个回答空泛,信息不足。

那么 PPO 会做:

降低模型以后生成类似空泛表达的概率。

但注意,PPO 不知道“LoRA 的真实原理”是什么,它只是根据奖励信号调整概率。


8. PPO 的训练数据是什么?

PPO 阶段通常不直接用传统的:

输入 → 标准答案

而是用 prompt 集合。

例如:

[{"prompt":"请解释什么是 LoRA"},{"prompt":"帮我写一封道歉邮件"},{"prompt":"总结下面这段话"},{"prompt":"如何学习机器学习"}]

然后模型自己生成 response。

奖励模型给这些 response 打分。

所以 PPO 阶段的数据更像:

prompt → 模型采样回答 → 奖励模型评分 → PPO 更新

而不是单纯模仿标准答案。


9. PPO 和 SFT(监督微调) 的区别

对比项SFTPPO
训练目标模仿人工答案最大化奖励模型评分
数据形式prompt + 标准回答prompt + 模型自己生成的回答
是否需要奖励模型不需要需要
是否是强化学习不是
更新依据标准答案 tokenreward 和 advantage
风险过拟合示范数据奖励黑客、训练不稳定
作用让模型会按指令回答让模型更符合偏好

简单说:

SFT 是“模仿好答案”,PPO 是“探索并强化更受偏好的答案”。


10. PPO 的可替代策略

策略核心思路相比 PPO 的特点
DPO直接用偏好数据优化模型,让被偏好的回答概率高于被拒绝的回答不需要单独训练奖励模型,也不需要复杂的在线强化学习流程
IPO把偏好学习写成更稳定的目标函数,降低过度追求偏好差距的问题训练形式接近 DPO,但更强调目标函数稳定性
KTO用“好”和“不好”的样本信号训练模型,不强依赖成对偏好数据数据组织更灵活,适合偏好标注不完整的场景
ORPO把监督微调和偏好优化合在一个训练目标中流程更简单,适合在 SFT 阶段直接加入偏好约束
Rejection Sampling让模型生成多个回答,再用奖励模型挑选高分回答继续训练实现简单,但探索能力和训练效率通常不如完整策略优化

这些方法的共同目标都是让模型更符合人类偏好。区别在于,PPO 采用强化学习方式更新策略,而 DPO、IPO、KTO、ORPO 等方法更偏向直接用偏好数据构造训练目标。


11. PPO 的主要风险

11.1 奖励黑客

模型可能不是学会真正变好,而是学会骗奖励模型。

比如奖励模型偏好长回答,模型就疯狂变长。


11.2 训练不稳定

PPO 比 SFT 难调很多。

可能出现:

  • reward 上升但实际效果下降;
  • KL 爆炸;
  • 输出变得模式化;
  • 模型重复生成;
  • 语言能力退化。

11.3 过度优化奖励模型

奖励模型本身不完美。

如果 PPO 优化太久,模型可能越来越适应奖励模型的漏洞,而不是真正符合人类偏好。


11.4 对超参数敏感

尤其是:

  • 学习率太大;
  • KL 惩罚太小;
  • reward scale 不合理;
  • rollout 数据质量差。

这些都会让训练崩掉。


12. 一句话总结 PPO

PPO 是一种稳定的策略优化算法,在 RLHF 中,它让语言模型通过奖励模型的反馈逐步提高生成高质量回答的概率,同时用 clipping 和 KL 约束防止模型更新过猛、偏离原来的 SFT 模型。


http://www.jsqmd.com/news/831690/

相关文章:

  • 国产核心板FET113i-S适配电力FTU:硬件设计、RT-Thread实时性与通信优化全解析
  • SAA+:零样本异常分割的工业实践与多模态提示调优
  • ATTCK实战系列——蓝队防御(六)应急响应复盘
  • 高效论文阅读:三层递进工作流与知识管理实践指南
  • Logic Pro 怎么导出 MP3?超详细导出教程(2026最新版)一文搞定!
  • LabVIEW数据采集系统:生产者-消费者模式与TDMS文件存储实战
  • 多模态大语言模型如何理解色彩:从原理到实践
  • OpenHarness:统一大语言模型评估框架的设计原理与工程实践
  • RK3288嵌入式开发实战:硬件架构、软件定制与典型应用场景解析
  • 美国无人机合规飞行指南:FAA注册、Part 107规则与安全操作全解析
  • 通过Taotoken模型广场快速选型并获取对应API调用示例
  • 越刷越空?不是自控力太差,是你的大脑“最高权限”丢了
  • 由局域网信道利用率引发猜想
  • 【Midjourney Mud印相终极指南】:20年图像生成专家首度公开3类Mud纹理映射失效根因与6步精准复刻法
  • ATmega48驱动康威生命游戏:模块化LED矩阵的硬件实现与扩展
  • AI应用安全护栏:构建大语言模型交互的内容过滤与风险控制系统
  • AJAX与Fetch:前端网络请求从入门到精通
  • 蒸汽烘干散热器哪家好 行业口碑优选 适配多场景烘干需求
  • 小智聊天机器人的本地化部署。
  • 章贡区专业的种植牙医院哪家强
  • 终极指南:如何简单快速在Windows上安装苹果USB网络共享驱动解决iPhone上网问题
  • Biliver:让 MPV 拥有和网页一样丝滑的 B 站视频体验
  • 路由器市场新机遇:从管道到平台,五大核心赛道深度解析
  • VTube Studio完全指南:从零打造互动虚拟主播的5个核心步骤
  • 面试题:PEFT 参数高效微调详解——什么是 PEFT、为什么需要 PEFT、LoRA/QLoRA/Adapter 原理与优缺点全解析
  • PyCType:从C扩展源码自动推断Python函数类型签名
  • RAG系统实战:从向量检索到LLM生成的完整构建与调优指南
  • 二分查找与二分答案:在有序世界里“耍流氓”的高效算法
  • SVG 与 VSCode:高效协同的图形编辑利器
  • 夺表查询