【机器学习&深度学习】强化学习与监督学习SFT、RL、RLHF、PPO、DPO - 实践
目录
1️⃣ SFT(Supervised Fine-Tuning,监督微调)
2️⃣ RL(Reinforcement Learning,强化学习)
3️⃣ RLHF(Reinforcement Learning from Human Feedback)
4️⃣ PPO(Proximal Policy Optimization)
5️⃣ DPO(Direct Preference Optimization)
四、SFT、RL、RLHF、PPO、DPO之间的逻辑顺序和作用
5.2 RL(Reinforcement Learning,强化学习)

一、理解SFT、RL、RLHF、PPO、DPO
一句话记忆口诀
SFT 教模型会做题,RLHF 让模型做得更符合人类喜欢,而 PPO 是 RLHF 的训练工具,DPO 是不用PPO的更简单偏好训练方法。
1.1 SFT、RL、RLHF、PPO、DPO概念
1️⃣ SFT(Supervised Fine-Tuning,监督微调)
是什么:
用人工编写的高质量示例对模型进行监督式训练,让模型学会“正确回答的格式和内容”。
解决的问题:
让模型能按照“我们希望的风格和方式”输出,而不是胡乱生成。
关键点: 模仿学习(Learn from demonstrations)
常规的一问一答(QA)训练数据,比如:
| 问题(Prompt) | 答案(Response) |
|---|---|
| 今天天气怎么样? | 今天晴,最高温25℃,最低温18℃ |
| 写一个短诗 | 春风拂柳绿,花开满园香 |
这种输入-输出对,就是典型的 SFT 数据。
2️⃣ RL(Reinforcement Learning,强化学习)
是什么:
让模型通过“奖励机制”学习,输出更符合目标的结果。
解决的问题:
让模型不仅能模仿,还能通过试错不断改进行为。
关键点: 奖励驱动优化(Reward-based optimization)
3️⃣ RLHF(Reinforcement Learning from Human Feedback)
是什么:
是 RL 的一种应用形式,用“人类反馈”作为奖励信号,让模型更符合人类价值与偏好。
解决的问题:
让模型变得更有用、更安全、更符合人类常识与伦理,而不是只追求得分。
关键点: 用人类偏好作为奖励来训练模型
RLHF = SFT + 人类反馈奖励模型 + RL 优化
4️⃣ PPO(Proximal Policy Optimization)
是什么:
是训练 RLHF 时最常用的一种优化算法,用于稳定地更新模型参数。
一种 RL(强化学习)优化算法,用于训练策略模型(Policy Model)。
在 RLHF 中,它是核心工具,用来根据奖励信号更新模型参数。
作用:
保证模型训练稳定,不会因为一次更新过大而破坏原有能力。
逐步让模型输出更符合奖励(通常是人类偏好评分)。
解决的问题:
防止模型在强化学习训练中“更新过度”,从而破坏原有能力。
关键点: 稳定和限制模型更新幅度
PPO 不是一种训练目标,而是一种训练技术(RLHF里的优化方法)
特点
| 特点 | 描述 |
|---|---|
| 类型 | 优化算法(RL方法的一种) |
| 输入 | 模型生成回答 + 奖励分数 |
| 输出 | 更新后的策略模型 |
| 核心 | 控制更新幅度,稳定训练 |
总结一句话:
PPO 是 RLHF 的训练工具,用来让模型“稳步学习高奖励回答”。
5️⃣ DPO(Direct Preference Optimization)
是什么:
是 RLHF 的一种更简单替代训练方法,不需要奖励模型、不需要RL算法,直接使用偏好数据训练模型。
RLHF 的简化版本。
不用奖励模型(Reward Model)、也不用 RL/PPO 算法。
直接用偏好对数据(哪一个回答更受人喜欢)来训练模型。
作用
解决的问题:
把人类偏好直接转化为训练信号,让模型更受人类喜欢,同时成本更低。
关键点: 用偏好对(A优于B)直接训练模型,而非通过奖励和试错
DPO = 无需奖励模型的轻量级 RLHF 替代方案
特点
特点 | 描述 |
|---|---|
类型 | 偏好训练方法 |
输入 | 偏好对(A比B更好) |
输出 | 模型参数更新,使高偏好回答概率更大 |
核心 | 直接用偏好对优化模型,无需奖励模型或RL算法 |
总结一句话:
DPO 是 RLHF 的轻量替代方案,用偏好对直接训练模型,而不需要复杂的 RL/PPO 流程。
1.2 关系梳理(概念层面)
SFT 是基础:先教模型“会说话、有格式、有基本能力”
RL 是方法论:通过奖励改进行为,不局限于语言模型
RLHF 是用 RL 来对齐人类价值的方案
PPO 是 RLHF 常用的优化算法
DPO 是更简单的一种“偏好学习”,可替代 PPO 方式的 RLHF
SFT → RLHF → PPO (训练优化工具)
↘
DPO(直接用偏好对训练,无需PPO)
1.3 PPO和DPO对比
| 对比 | PPO | DPO |
|---|---|---|
| 是否 RL 算法 | ✅ 是 RL 算法 | ❌ 不是 RL 算法 |
| 是否用奖励模型 RM | ✅ 需要 | ❌ 不需要 |
| 是否用偏好对数据 | 可用,但通常先训练 RM | ✅ 必须 |
| 训练复杂度 | 高 | 低 |
| 训练稳定性 | 高(PPO稳定更新) | 中等(但比RLHF简单) |
1.4 30秒记住
| 名称 | 核心概念 | 是否需奖励模型 | 是否需RL算法 |
|---|---|---|---|
| SFT | 模仿示范 | ❌ | ❌ |
| RL | 奖励驱动学习 | ✅ | ✅ |
| RLHF | 用人类反馈作为奖励 | ✅ | ✅ |
| PPO | 稳定RL训练的优化算法 | ✅(PPO 用于 RLHF) | ✅ |
| DPO | 直接学偏好,无需奖励模型 | ❌ | ❌ |
1.5 类比理解
你想培养一个 AI 厨师,让他做菜好吃、符合大众口味。
1️⃣ SFT:教他照着菜谱做(监督微调)
你给厨师一堆标准菜谱 + 示例菜,让他模仿:
番茄炒蛋这样做
宫保鸡丁这样做
面条要这样煮
本质:模仿示范
SFT训练后,厨师能做菜,但只是模仿,味道不一定讨喜。
2️⃣ RL:奖励驱动学习(强化学习)
你不再给菜谱,而是说:
做得好吃:奖励 100
难吃:扣 100
厨师不断试、吃反馈、改进,自己摸索变厉害。
本质:靠奖励不断试错提升能力
3️⃣ RLHF:加“人类反馈”的强化学习
问题来了:
光用奖励,厨师可能做出奇怪但“高分”的菜。
于是引入人类品尝评分:
人类吃了觉得好吃 → 加分
太咸、太辣、不健康、违反规定 → 扣分
目标:让模型输出符合人类喜欢 + 合规
4️⃣ PPO:防止厨师“改过头”的训练技巧
厨师改一次菜谱,可能改太多导致:
原本会的菜突然不会做了(模型崩坏)
PPO 的作用就像一个规则:
每次改一点点,不准一下改太多!
PPO = RLHF里的稳定训练方法
5️⃣ DPO:不用奖励模型与试菜流程的简化训练
RLHF 很费钱,需要很多人不断吃菜打分。
DPO的思路:
不用评分,不用反复试,只需要告诉模型:
“这两个菜里,人类更喜欢哪一个。”
例如:
A 菜 vs B 菜
人类更喜欢 A → 训练模型更像 A
DPO = 直接教模型学习偏好,而不用 RL/PPO 试错
二、总结理解关系
| 方法 | 类比 | 记忆 |
|---|---|---|
| SFT | 教厨师照菜谱做菜 | 模仿示范 |
| RL | 靠奖励不断试出更好做法 | 试错进步 |
| RLHF | 人类品尝反馈 + 奖励改进 | 让模型符合人类价值 |
| PPO | 防止厨师一次改太多的规则 | 稳定训练方法 |
| DPO | 不用评分、不用试错,直接学偏好 | 更简单便宜的偏好训练 |
三、SFT、RL、RLHF、PPO、DPO 的关系
大模型训练路线(从基础能力 → 人类价值对齐)
预训练
↓
SFT ——→(可直接上线基础版本)
↓
RLHF(基于人类反馈的强化学习)
├── 使用 RM 打分 + RL 方法训练模型
├── 常用优化算法:PPO
└── 问题:训练复杂、昂贵、不稳定
↓
DPO(对标 RLHF 的更简单替代方案)
不用 RM、不用 PPO
各自是什么,一句话总结
| 名称 | 全称 | 它是什么?一句话总结 |
|---|---|---|
| SFT | Supervised Fine-Tuning | 监督微调,教模型先学会“像人一样回答” |
| RL | Reinforcement Learning | 强化学习,用奖励驱动模型学会更好的策略 |
| RLHF | RL with Human Feedback | 用人类偏好做奖励的 RL,让模型符合人类价值与偏好 |
| PPO | Proximal Policy Optimization | 一种 RL 的训练算法,用来稳定更新模型策略,避免训崩 |
| DPO | Direct Preference Optimization | 去掉奖励模型 & 去掉 PPO 的 RLHF替代方案,让偏好训练更简单 |
四、SFT、RL、RLHF、PPO、DPO之间的逻辑顺序和作用
① 预训练 → 获得基础知识
模型学习语言、世界知识、推理能力。
② SFT → 学“正确示范”和格式
用人类写的优质回答训练模型,修正模型的表达方式:
像学生先看标准答案做例题。
模型变得:更听指令、更像助手、更有条理。
③ RLHF → 学“人类喜欢什么”
SFT只是模仿,但人类更喜欢有温度、清晰、有用的回答。
RLHF加入“好坏评分”引导模型:
不只是能答对,还要答得让人喜欢。
④ PPO → RLHF 中最经典的训练技术
RLHF需要一个 RL 算法,而 PPO是最常用的:
让模型逐步变好
防止训练过头、破坏原能力
⑤ DPO → RLHF 的“简化升级版”
DPO动机:RLHF太麻烦,能不能不用奖励模型和PPO也达到类似效果?
DPO实现:
不用训练Reward Model
不用PPO或任何RL算法
直接用偏好对数据训练
结果:
✅ 便宜!简单!好训!
⚠️ 有时效果略弱于完整 RLHF
五、训练形式
5.1 SFT(监督微调)
1️⃣ SFT 的核心目标
让模型学会“在给定输入下输出正确的答案”,即模仿人类示范。
特点:
输入:问题或指令(prompt)
输出:对应的示例答案(human-written response)
训练方式:监督学习,直接对比模型输出与标准答案
换句话说,SFT就是在告诉模型:
“遇到这个问题,请像示范一样回答。”
2️⃣ SFT 训练数据格式
典型的数据集通常是 问答对或指令-响应对,例如:
| Prompt(输入) | Response(标准输出) |
|---|---|
| 今天天气怎么样? | 今天晴,最高温25℃,最低温18℃ |
| 写一个简短的中文诗 | 春风拂柳绿,花开满园香 |
训练时,模型会学习根据 Prompt 生成 Response。
3️⃣ SFT 的训练流程
训练流程大致如下:
for each training step:
1. 将输入 Prompt 转成模型的 Token 序列
2. 模型生成输出 Token 序列(预测下一个词的概率分布)
3. 计算损失(Loss):
- 常用交叉熵(Cross-Entropy Loss):
Loss = - Σ (target_token_i * log(predicted_prob_i))
- 损失衡量模型生成输出与标准答案的差距
4. 反向传播(Backpropagation)
- 通过梯度下降优化模型参数
核心思路:让模型输出尽可能接近标准答案。
4️⃣ SFT 训练特点
| 特点 | 描述 |
|---|---|
| 模仿学习 | 学习人类示范的回答风格和内容 |
| 监督信号明确 | 每条训练样本都有明确正确答案 |
| 可控性高 | 可训练模型输出特定风格或企业定制风格 |
| 局限性 | 只能模仿训练数据,不保证回答符合偏好或安全规则 |
5️⃣ 小结
SFT 是 直接用人类示范教模型做题
训练方法是 标准监督学习,用交叉熵损失优化
训练结果是 一个基础能力模型,能按照指令生成合理回答,但不一定符合人类偏好或价值观
5.2 RL(Reinforcement Learning,强化学习)
1️⃣ RL 的基本概念
强化学习核心思想:
智能体(Agent)在环境中试错,通过奖励信号学习如何行动,从而最大化长期收益。
对应要素:
| 元素 | 大模型对应 |
|---|---|
| Agent(智能体) | 模型(Policy Model) |
| State(状态) | 当前输入/上下文 |
| Action(动作) | 模型生成的下一个 token 或回答 |
| Reward(奖励) | 奖励函数评估输出质量 |
| Environment(环境) | 任务或生成场景 |
2️⃣ RL 的训练循环
强化学习训练是一个循环过程,不同于一次性监督学习。流程如下:
初始化策略模型 π(Policy Model)
循环:
1. 根据策略 π 生成动作 A(模型生成回答)
2. 在环境中执行 A
3. 获得奖励 R(Reward Model 打分或自定义奖励函数)
4. 更新策略 π,使高奖励动作的概率增加
核心:试 → 得分 → 调整 → 再试,重复多次。
3️⃣ RL 在大模型中的应用(RLHF)
对于语言模型,RLHF 就是用 RL 的形式,让模型“输出更符合人类偏好”。
训练流程:
步骤 1:SFT 初始化模型
先用监督学习(SFT)让模型有基础回答能力。
因为 RLHF 直接训练一个未调教的模型会很难稳定。
步骤 2:训练奖励模型(Reward Model)
人类打分(或偏好对)训练一个模型,能给每个回答打分。
例如:
Prompt | 回答A | 回答B | 人类偏好 |
|---|---|---|---|
写一首诗 | 诗A | 诗B | 喜欢B |
奖励模型 RM 学会预测哪个回答更受偏好。
步骤 3:用 RL 优化主模型(Policy Model)
主模型生成回答 → 奖励模型评分 → 根据奖励更新模型参数
通常用 PPO(Proximal Policy Optimization) 这种算法:
防止一次更新过大破坏模型原能力
保证训练稳定
4️⃣ RLHF 训练循环图示
┌───────────┐
│ Prompt │
└─────┬─────┘
▼
┌─────────────┐
│ Policy Model│ ←— 被更新
└─────┬───────┘
▼ 生成回答
┌───────────┐
│ Answer │
└─────┬─────┘
▼
┌────────────────┐
│ Reward Model RM│ → 给奖励
└────────────────┘
▼
用 PPO 更新 Policy Model
5️⃣ RL 与 SFT 的区别
| 特点 | SFT | RL(RLHF) |
|---|---|---|
| 样本来源 | 人类示范 | 模型自己生成(再评估奖励) |
| 学习信号 | 正确答案 | 奖励分数(偏好/价值) |
| 训练目标 | 模仿示范 | 最大化奖励 |
| 风险 | 过拟合 | 模型漂移、不稳定 |
| 优势 | 稳定、简单 | 对齐人类偏好,输出更安全/合规 |
✅ 总结一句话
RL训练就是让模型不断生成回答 → 得到奖励 → 更新策略 → 输出更优的回答。
SFT 教会模型“会回答”,RL(RLHF)教模型“回答得更好、更符合人类偏好”。
六、总结
SFT(Supervised Fine-Tuning)
类型:监督学习
训练信号:标准答案(人类示范)
目标:让模型学会“会回答”“按示范输出”
特点:稳定、简单,但不能保证输出符合偏好或安全规则
RL / RLHF / PPO / DPO
类型:强化学习(或偏好优化)
训练信号:奖励信号(R)、人类偏好对
目标:让模型输出更符合人类偏好、更安全、风格更合适
特点:试错优化,有探索性,可能不稳定,需要技巧(PPO)
▲层次关系
┌─────────────┐ │ 监督学习 │ ← SFT │(模仿示范) │ └─────────────┘ │ ▼ ┌─────────────┐ │ 强化学习 / RL│ ← RLHF │ (奖励驱动) │ └─────────────┘ ┌──────────────┐ │ PPO / DPO │ ← RLHF训练方法 │ (优化算法) │ └──────────────┘
SFT:教模型基础能力 → “会说话”
RLHF(用PPO):让模型“会说得更好、更符合偏好”
DPO:RLHF 的简化版本 → “直接学偏好,无需RL/PPO”
✅ 核心理解
SFT = 监督学习(模仿人类示范)
RL / RLHF = 强化学习(用奖励或偏好优化输出)
PPO / DPO = 强化学习的训练方法(PPO 稳定RLHF,DPO轻量替代RLHF)
浙公网安备 33010602011771号