一文搞懂 PPO、DPO、GRPO、KTO、ORPO 的核心原理与区别

一、为什么需要对齐训练?

大模型预训练完成后,就像一个“知识渊博但不懂规矩的天才”。它能续写文章、回答问题,但可能输出有害内容、不遵循指令、或带有偏见。

对齐训练的目标:让模型的输出符合人类的偏好和价值观。

目前主流的对齐方法分为两类:

基于强化学习:PPO、GRPO

基于对比学习:DPO、KTO、ORPO


二、PPO(Proximal Policy Optimization)

PPO 是 OpenAI 提出的强化学习算法,被 ChatGPT 采用作为核心对齐技术。

2.1 三个模型的分工

模型 是否可训练 作用
ref_model 固定 提供参考logits,计算KL散度
policy_model 训练 生成回复,输出logits和value(ref_model + Value(Critic) Head)
reward_model 单独训练 对回复打分(ref_model变体,最后一层dense(hidden_dim,1))

2.2 第一阶段:Reward Model 训练

数据格式:每条数据为(prompt+chosen, score)和(prompt+rejected, score),score 是人工预打分。

模型结构:同ref_model,主体架构+一层dense(hidden_dim, 1)

模型训练:

prompt + chosen response (拼接) → reward_model → s0
prompt + rejected response (拼接)→ reward_model → s1
Loss = -log σ(s0 - s1)

损失函数:

Loss = -log σ(s_chosen - s_rejected)

让好回答的分数明显高于坏回答。

2.3 第二阶段:Policy Model 训练

2.3.1 阶段一:采样(收集经验)

目标:获得advantage和returns。

advantage:实际累积奖励(Reward)与状态价值(Value)估计的差值;
returns: 模型输出(Values)上 + 奖励模型真实的反馈(Reward),综合当前收益和全局收益计算出的输出

流程:

1. prompt 同时送入 ref_model 和 policy_model
2. ref_model生成ref_logits
3. policy_model 生成 policy_logits、response 和 value 值
4. (prompt+response) 送入 reward_model 得到 reward_score
5. 计算 KL = β × (ref_logits - policy_logits)
6. final_reward = reward_score - KL
7. final_reward 和 value 送入 GAE,输出 Advantage 和 returns

核心公式:

KL_penalty = β × (ref_logits - policy_logits)
final_rewards = rewards - KL_penalty

GAE 核心:

  • γ(gamma,如 0.99):折扣因子
  • λ(lambda,如 0.95):平衡偏差与方差

Advantage = 实际获得价值 − 预期价值,正数代表这一步比预期好

2.3.2阶段二:训练

损失函数

ratio = exp(ref_logits - policy_logits)
clipped_ratio = clip(ratio, 0.8, 1.2)
policy_loss = -min(ratio × advantage, clipped_ratio × advantage)
value_loss = MSE(returns, values)
Loss = policy_loss + 0.5 × value_loss

2.4 训练流程


三、DPO(Direct Preference Optimization)

PPO 中的 reward_model 可以用一个闭式解直接表达,从而省去强化学习过程。

3.1 模型结构

模型 作用
ref_model 固定,提供基准概率
policy_model 可训练,直接优化偏好

无需 value head,无需 reward_model。

3.2 数据格式

每条数据为(prompt, chosen_response, rejected_response),只需要人类标注哪个更好。

3.3 损失函数

Loss = -log σ(
β × (policy_chosen_logps - ref_chosen_logps) -
β × (policy_rejected_logps - ref_rejected_logps)
)

直观理解:让好回答相对于 ref_model 的概率提升,坏回答的概率降低,差距越大越好。

3.4 训练流程


四、GRPO(Group Relative Policy Optimization)

GRPO 由 DeepSeek 提出,核心改进是去掉 Critic Model(Value Head),改用组内相对奖励来计算 Advantage。

4.1 训练流程

  1. 输入一个 prompt,生成8 个不同回答(不同 temperature)

  2. 通过规则对每个回答打分(如数学题:答案正确性 + 步骤完整性)

  3. 计算 Advantage(组内归一化)

Advantage 公式
mean_r = 平均分
std_r = 标准差
advantage_i = (r_i - mean_r) / std_r

举例:三个回答得分 [100, 65, 45],mean=70,std≈22.5

回答1 advantage = +1.33(好)
回答2 advantage = -0.22(略差)
回答3 advanage = -1.11(差)

4.2 损失函数

ratio = π_θ(a|s) / π_old(a|s)
loss = -min(ratio·adv, clip(ratio, 1-ε, 1+ε)·adv) + β·KL(π_θ || π_ref)

4.3 训练流程


五、其他方法简介

5.1 KTO

只需要二元标签(好/坏),不需要成对比较,数据获取成本更低。

5.2 ORPO

不需要 ref_model,在 SFT loss 基础上增加赔率比(Odds Ratio = p/(1-p))惩罚,简单高效。


六、方法对比总结

方法 所需模型 是否需要奖励模型 数据需求 训练复杂度
PPO 3 个 打分
DPO 2 个 成对偏好
GRPO 2 个 规则打分
KTO 2 个 二元标签
ORPO 1 个 成对偏好

七、选型建议

场景 推荐方法 原因
有高质量打分 + 充足算力 PPO 效果最稳定
有成对偏好数据,追求效率 DPO 无需强化学习
有明确对错规则(数学 / 代码) GRPO 无需训练 reward_model
只有 “好 / 坏” 标签 KTO 数据需求最低
资源极度受限 ORPO 只需一个模型

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐