【机器学习深度学习】强化学习与监督学习SFT、RL、RLHF、PPO、DPO
目录
一、理解SFT、RL、RLHF、PPO、DPO
1.1 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)
1.2 关系梳理(概念层面)
1.3 PPO和DPO对比
1.4 30秒记住
1.5 类比理解
1️⃣ SFT:教他照着菜谱做(监督微调)
2️⃣ RL:奖励驱动学习(强化学习)
3️⃣ RLHF:加“人类反馈”的强化学习
4️⃣ PPO:防止厨师“改过头”的训练技巧
5️⃣ DPO:不用奖励模型与试菜流程的简化训练
二、总结理解关系
三、SFT、RL、RLHF、PPO、DPO 的关系
四、SFT、RL、RLHF、PPO、DPO之间的逻辑顺序和作用
① 预训练 → 获得基础知识
② SFT → 学“正确示范”和格式
③ RLHF → 学“人类喜欢什么”
④ PPO → RLHF 中最经典的训练技术
⑤ DPO → RLHF 的“简化升级版”
五、训练形式
5.1 SFT(监督微调)
1️⃣ SFT 的核心目标
2️⃣ SFT 训练数据格式
3️⃣ SFT 的训练流程
4️⃣ SFT 训练特点
5️⃣ 小结
5.2 RL(Reinforcement Learning,强化学习)
1️⃣ RL 的基本概念
2️⃣ RL 的训练循环
3️⃣ RL 在大模型中的应用(RLHF)
4️⃣ RLHF 训练循环图示
5️⃣ RL 与 SFT 的区别
✅ 总结一句话
六、总结

一、理解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. 在环境中执行 A3. 获得奖励 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)
