3.2基于人类反馈的强化学习

大模型训练分成三个步骤:

  1. Pretraining。给模型海量的文本进行训练,99%的计算量花费在这个阶段,输出的模型叫做 base model,能做的事情就是像成语接龙一样不断的完成一段话。

  2. Supervised Finetuning。人工介入,给出高质量的文本问答例子。经过问答式训练的 Model 叫做 SFT model,就可以正常回答人的问题了。

  3. Reinforcement Learning from Human Feedback。人工先介入,通过对同一个 Prompt 生成答案的排序来训练一个 Reward Model。再用 Reward Model 去反馈给 SFT Model,通过评价生成结果的好坏,让模型更倾向于生成人们喜好的结果。最终生成的 Model 叫做 RLHF model。

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)

了解 RLHF 数据构建过程、熟悉奖励模型训练过程、熟练掌握 PPO、DPO 算法原理,了解更前沿的对齐算法

概念

RLHF 是结合了强化学习人类主观判断(偏好)的训练技术,旨在优化模型的输出,使其更符合人类的期望。

流程,3 个阶段

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 监督微调(Supervised Fine-tuning)
  2. 聚合问答数据 并 训练奖励模型(Reward Model Training)
  3. 强化学习阶段(如使用 PPO、DPO 等):用强化学习的方式微调

🧱 二、RLHF 数据构建过程

  1. 预训练模型输出生成(候选回答)
    用预训练模型(针对一个 prompt)生成多个回答,如对一个问题输出 A、B、C 三种回答。

  2. 人类打分或排序
    人类标注员对这些回答进行偏好排序,例如「B > A > C」。对 prompt “如何煮鸡蛋”,回答排序是:B > A > C。

  3. 构建排序对(preference pair)
    将排名靠前的作为 chosen,靠后的作为 rejected,组成 (chosen, rejected) 数据对:
    (chosen=B, rejected=A)
    (chosen=A, rejected=C)
    (chosen=B, rejected=C)

  4. 构建奖励训练集
    这些排序对将用于训练奖励模型(Reward Model),用来学习什么样的答案更好。

🏆 三、奖励模型训练(Reward Model)

奖励模型本质上是一个二分类评分器,它接收 prompt 和 answer,输出一个分数:

  • 输入:Prompt + Answer
  • 输出:一个实数分数,表示该回答的“好坏”

训练奖励模型时,把这些 (prompt, chosen) 和 (prompt, rejected) 都送进去各自打分:

  • R(prompt, chosen)
  • R(prompt, rejected)
    然后优化目标是让:

R(prompt, chosen) > R(prompt, rejected)。

训练方法:

  • 目标是使 Reward(chosen) > Reward(rejected),最常用的损失函数是 Pairwise Loss(如 Bradley-Terry 或 Margin Ranking Loss):

[
\mathcal{L} = -\log\left(\frac{e{r*{\text{chosen}}}}{e{r*{\text{chosen}}} + e^{r_{\text{rejected}}}}\right)
]
answer 就是多个模型生成的候选答案中的一个。

♻ 四、强化学习阶段

✅ PPO(Proximal Policy Optimization)

四模型、训练步骤、优缺点
PPO 是 RLHF 中最常见的强化学习算法:

  • 目标:最大化奖励模型的打分(根据奖励模型的奖励,来更新策略参数
  • 核心思想:使用剪辑损失函数(ClippedSurrogateObjective),来限制策略更新的幅度,保证训练过程的稳定性,从而防止训练过程的不稳定行和策略崩溃。克服了传统策略梯度方法(如 TRPO)复杂约束的问题,保持性能的同时也降低了实现难度。
  • 四个模型
模型名称作用关键词简介
Actor Model,就是 Policy生成策略负责根据 Prompt 生成答案,类似于强化学习中的“策略网络”。
Critic Model ,就是值函数模型评估策略好坏给 Actor 的输出打分,判断该动作(回答)在环境中是否合理。 评估 Actor 的输出在当前状态下的期望回报值(V 值)。
Reward Model(冻结)人类偏好评分模拟人类的喜好,给回答一个奖励分,来自人工标注数据训练。 评估 Actor 的输出在当前状态下的期望回报值(V 值)。 学习人类偏好打分方式,对 Actor 输出的回答打出奖励分(r)。
Reference Model(冻结)旧策略作为基准是旧的 Actor 拷贝,用于在训练中计算策略变化幅度(KL 惩罚)。在 RLHF 阶段给语言模型增加一些“约束”,方式模型训歪(朝着不受控制的方向更新,效果可能越来越差)
  • 过程

    1. 语言模型生成回答(Policy)
    2. 用奖励模型评分
    3. 优化 LLM(策略更新):使用 PPO 算法优化 policy,让它生成更高分的回答。有三个关键部分:
      • 使用剪辑损失函数,来限制策略更新幅度过大,确保稳定性。
      • 使用 KL 散度惩罚,如果新策略和就策略偏离太远,会增强惩罚,确保稳定性。
      • 熵奖励:熵是衡量 LLM 生成文本的随机性或多样性。增加熵奖励可以让鼓励 LLM 多探索,而不是总生成相同、可预测的相应,有助于防止 LLM 过早变得“过于确定”,从而错过更好的策略。
  • 损失函数

  1. 剪辑损失函数:限制策略大幅度更新。通过对策略更新的比率进行剪辑,来限制策略大幅度更新
  2. 基于 KL 散度的 PPO:KL 散度用来衡量新旧策略的分布差异。如果新旧差异过大,KL 项的惩罚会变大,强制策略更新变得更谨慎。
  • 优点
  1. 更新稳定:通过剪辑损失函数和 KL 散度约束,PPO 限制了每次都更新幅度,防止策略剧烈变化,从而提高了稳定性
  2. 易于实现:和 TRPO 相比,无需复杂的约束优化算法
  • 缺点
  1. PPO 的值函数通常是一个与策略模型大小相当的模型,这带来了显著的内存和计算负担。
  2. 计算开销大:频繁与环境交互和调用奖励模型,样本效率低
  • (优势估计 GAE、MC、TD

✅ DPO(Direct Preference Optimization)

DPO 是一种不使用奖励模型直接优化排序偏好的新强化学习算法:

  • 思想:直接最大化人类排序偏好的概率,而不是先学一个奖励函数。
  • 原理
  1. 建立偏好模型:DPO 通过学习一个偏好模型 P(a|s),该模型用于预测在某一状态 s 下,某个动作 a 知否是否被用户(或者专家)所偏好。这一模型的输入是状态 s 和动作 a,输出是一个偏好概率 P(a|s)。偏好模型的作用类似于传统强化学习中的策略模型,但是他是基于用户偏好,而不是直接通过奖励信号来学习。
  2. 偏好比较:为了优化偏好模型,DPO 首先需要定义偏好的比较方式。在给定一对动作(ai,aj)和状态 S 的情况下,模型要判断哪个动作更被偏好。这可以通过定义一个偏好函数 P(ai>aj|s),即在状态 s 下,动作 ai 更被偏好的概率
  • 损失函数
    基于二元交叉熵的损失函数。通过这个损失函数,偏好模型不断调整参数,使得预测出的偏好分布越来越接近用户的偏好分布。
    [
    \mathcal{L}{\text{DPO}} = -\log \left( \frac{e^{\beta \log \pi{\theta}(y*{\text{chosen}} | x)}}{e^{\beta \log \pi*{\theta}(y*{\text{chosen}} | x)} + e^{\beta \log \pi*{\theta}(y_{\text{rejected}} | x)}} \right)
    ]

β 是一个温度系数。

  • 策略优化:
    不依赖传统的奖励信号,而是完全依赖偏好信号进行优化

  • 偏好学习和强化学习的区别
    传统强化学习通过最大化累计奖励来训练策略;但是在 DPO 的目标是最大化偏好模型的准确率,而不是累计奖励

  • 优点

  1. 不需要额外训练 Reward Model
  2. 适合离线场景:在语言对齐任务中表现优异。
  3. 计算成本低:显存占用低,适合快速微调(如对话生成)
    (效果好、训练稳定
  • 缺点
  1. 分布偏移敏感:策略可能偏离偏好数据分布,导致性能下降。
  • PPO 和 DPO 区别
    特性PPODPO
    (策略优化算法)(偏好优化算法)
    是否依赖奖励模型依赖奖励模型不依赖奖励模型,直接优化排序偏好
    数据依赖动态环境交互数据静态偏好数据
    约束机制通过裁剪机制限制更新幅度利用偏好排序约束策略分布
    目标最大化累计奖励最大化人类偏好(最大化人类排序偏好的概率、最大化偏好模型的准确率)
    应用场景适用于强化学习,智能体交互场景,AI 游戏、机器人控制适用于偏好学习,语言模型微调,推荐系统、文本生成
    (优化方法)策略梯度算法通过对数似然
    (复杂性)依赖环境交互和奖励模型不依赖奖励模型,通过偏好数据直接学习
    (策略更新方法)剪裁策略更新比率基于人类偏好直接调整策略

✅ GRPO(Group Relative Policy Optimization)

创新点:使用组间关系去重塑优势的计算方法
损失函数是通过标准化KL 散度控制策略变化
没有 Critic model

优点

  1. 更关注群体表现:利用群体统计量计算相对优势,能够一次性提升整个团队(更多数据量)的表现,而 PPO 更注重单个样本
  2. 节省内存:GPRO 只利用 Reward 模型生成的分数计算损失,无需加载 Critic 模型,能节省大量的 GPU 内存
  3. 继承了 PPO 的优势:保留了剪辑目标函数和稳定更新机制

缺点

  1. 复杂度高:组计算模块增加模型参数量和训练难度
  2. 应用场景有限,通用性不足

和 PPO 的区别

  1. 重塑了优势计算方法
  2. 节省内存

选择建议
DPO:有大量偏好数据且奖励函数难设计的场景、离线场景(如对话对齐)。合适离线 偏好对齐任务,但需解决稳定性和分布偏移
PPO:优先用于 需高稳定性在线任务(如机器人控制)。通用性强、稳定性高的在线 RL 基准方法,但是依赖奖励模型和大量交互数据。
GRPO:复杂推理任务(如数学解题)和资源首先环境(如移动端部署)。作为 PPO 的扩展,在复杂任务中潜力大,但是普适性还需要进一步验证

面试题

  1. 请你简要介绍 RLHF 的三大阶段及各自作用?
  2. 奖励模型是怎么训练的?损失函数是什么?
  3. PPO 的核心思想与目标函数是?
  4. DPO 和 PPO 的本质区别是什么?DPO 为什么不需要奖励模型?
  5. 相比 PPO,DPO 有什么优点和挑战?
  6. 请说说你对前沿对齐算法(如 DPO、ORPO)的理解
  7. 为什么 RLHF 能提升 LLM 的安全性和有用性?
  8. 实际中如何构建 RLHF 的数据集?如何保证标注质量?
  9. PPO 中的四个模型分别是什么?各自的作用?
  10. Reward Model 是怎么训练的?Critic Model 和它的区别?
  11. 为什么 PPO 中需要 Reference Model?KL 惩罚是干什么用的?
  12. Actor 和 Critic 的训练目标函数分别是什么?是否同步训练?
  13. 你如何构建一套 RLHF 框架来对大模型进行微调?各个模型如何协同?

PPO 四个模型

✅ PPO 中的四个模型简介
模型名称作用关键词简介
Actor Model生成策略负责根据 Prompt 生成答案,类似于强化学习中的“策略网络”。
Critic Model评估策略好坏给 Actor 的输出打分,判断该动作(回答)在环境中是否合理。
Reward Model人类偏好评分模拟人类的喜好,给回答一个奖励分,来自人工标注数据训练。
Reference Model旧策略作为基准是旧的 Actor 拷贝,用于在训练中计算策略变化幅度(KL 惩罚)。

1️⃣ Actor Model(策略模型)
  • 功能:根据 Prompt(用户输入)生成回答(action)。
  • 强化学习类比:这就是 RL 中的 policy。
  • 目标:通过与奖励模型和 Critic 的反馈不断优化,生成更符合人类偏好的答案。
  • 训练中作用:是训练的核心对象,PPO 算法就是用来更新它的参数的。

👀 举例:
Prompt: “请解释什么是碳中和?”
Actor 可能生成回答 A、B、C 等,等待后续评估。


2️⃣ Critic Model(值函数模型)
  • 功能:评估 Actor 的输出在当前状态下的期望回报值(V 值)。
  • 强化学习类比:就是 value function。
  • 目标:帮助 PPO 算法估算 advantage(优势函数),从而进行策略优化。

👀 举例:
Critic 评估 “回答 A” 在 Prompt 为“碳中和”时的长期价值是 V = 2.3,而 “回答 B” 是 V = 1.7


3️⃣ Reward Model(奖励模型)
  • 功能:学习人类偏好打分方式,对 Actor 输出的回答打出奖励分(r)。
  • 数据来源:由人工排序的偏好数据训练而来,如 (chosen, rejected)。
  • 目标:作为训练时“环境”的奖励函数,指导 Actor 向人类偏好靠拢。

👀 举例:
Reward Model 给出:

  • “回答 A”的奖励分数为:r = 4.5
  • “回答 B”的奖励分数为:r = 2.0

4️⃣ Reference Model(参考模型)
  • 功能:记录旧版本 Actor 模型的策略,作为当前策略变化幅度的“参考”。
  • 目标:帮助计算当前 Actor 和旧策略的 KL 散度,作为正则项限制模型变化太快。
  • 训练中作用:不参与训练,仅用于计算 KL Penalty。

👀 举例:
当前 Actor 对 Prompt 生成 token A 的概率是 0.9,Ref Model 是 0.3,那么 KL 较大,训练时就会加一个罚分项防止偏移太猛。


🔁 训练过程中的角色配合
  1. Actor 生成回答。
  2. Reward Model 给出评分。
  3. Critic Model 评估价值函数,计算 Advantage。
  4. Ref Model 帮助计算 KL 约束。
  5. 最终:使用 PPO 算法更新 Actor。

✅ 总结类比图(简化类比)
模型名类比于 RL 中的角色作用
ActorPolicy(策略)决定怎么回答 Prompt
CriticValue Function(状态评估)评估当前回答的长远价值
Reward ModelReward Function(环境反馈)给回答打分,模拟人类反馈
Ref ModelOld Policy(旧策略)控制新旧策略差距,防止策略剧烈变化

🎯 面试押题
  1. PPO 中的四个模型分别是什么?各自的作用?
  2. Reward Model 是怎么训练的?Critic Model 和它的区别?
  3. 为什么 PPO 中需要 Reference Model?KL 惩罚是干什么用的?
  4. Actor 和 Critic 的训练目标函数分别是什么?是否同步训练?
  5. 你如何构建一套 RLHF 框架来对大模型进行微调?各个模型如何协同?

PPO 和 DPO 是不是都要优化排序偏好,只不过 PPO 依赖奖励模型,而 DPO 不依赖奖励模型

是的,你的理解非常准确!
PPO 和 DPO 都是优化排序偏好(preference ranking)的算法,它们的核心目标一致:

让模型更倾向于生成“人类偏好”的回答

但它们 在训练方式、是否依赖奖励模型上有关键区别。我们来详细对比一下 👇:


🧠 一句话总结:

算法是否优化排序偏好是否依赖奖励模型是否需要 RL 训练主要优化对象
PPO✅ 是✅ 是✅ 是Policy(Actor)
DPO✅ 是❌ 否❌ 否Policy(Actor)

🥇 PPO:需要奖励模型的排序优化方法(强化学习)

✅ 原理

  • 利用人类反馈构建奖励模型(Reward Model),输入 Prompt 和回答,输出一个标量奖励分数
  • 用这个奖励去训练策略模型(Actor),通过 RL(PPO 算法)不断优化策略。

🧩 核心机制

  • 引入 Reference Model 控制策略不剧烈变动(KL 惩罚)
  • Critic ModelReward Model 协助计算 Advantage
  • 是一个标准的强化学习过程

🧪 示例流程:

  1. 收集 (Prompt, Chosen, Rejected) 数据对
  2. 训练 Reward Model,使其能给回答打分
  3. 用 PPO 算法训练 Actor,使其生成的回答得分更高

🥈 DPO:不需要奖励模型的排序优化方法(监督学习)

✅ 原理

  • 直接使用人类排序偏好数据 (prompt, chosen, rejected)
  • 不训练奖励模型,直接用排序对比损失函数(如 log-sigmoid loss)优化 Actor
  • 是一个纯监督学习过程,无需 RL,也无需 Critic

📌 DPO Loss 公式(核心思想):

让模型学会:

chosen 的概率比 rejected 的概率更高(相对于参考模型)

L = -log(σ(β · (log π(chosen) - log π(rejected) - [log π_ref(chosen) - log π_ref(rejected)])))

其中:

  • π:当前策略(Actor)
  • π_ref:参考策略(Reference Model)
  • β:温度系数,控制优化力度

🧪 示例流程:

  1. 收集 (Prompt, Chosen, Rejected) 数据对
  2. 用这些数据直接训练 Actor,让模型更偏向生成 Chosen,而不是 Rejected

📊 总结对比表

维度PPODPO
是否使用强化学习✅ 是(PPO 算法)❌ 否(监督学习)
是否依赖 Reward Model✅ 是❌ 否
是否需要 Critic✅ 是❌ 否
是否需要 Ref Model✅ 是✅ 是(计算 KL)
优化目标奖励最大化让 chosen 优于 rejected
优势训练更细致,可控性强更简单,训练效率高
劣势架构复杂、训练成本高对排序数据质量依赖更高

🎯 面试高频问题押题

  1. DPO 和 PPO 的本质区别是什么?它们都优化什么?
  2. DPO 为什么不需要奖励模型?是不是等价于奖励是隐含的?
  3. DPO 为什么更容易训练,在哪些场景比 PPO 更适合?
  4. 如何构造 DPO 的训练数据?它的损失函数原理是什么?
  5. 你会如何选择用 PPO 还是 DPO?

如果你想我给你画个 对比图 或者给出一段 DPO 的代码 demo 示例,也可以告诉我~
是否需要我再帮你把这个知识点总结成简明版笔记?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值