引言
- 文中的公式比较粗糙,建议看原版公式,此处公式仅作为个人理解使用的简化版
1 SFT(Supervised Fine - Tuning,监督微调)
SFT 是在预训练大模型基础上,用高质量标注的输入 - 输出对数据进一步训练模型,使其适配特定任务、遵循人类指令并生成符合预期响应的核心技术,是大模型从通用能力到场景化对齐的关键一步。
最基础的微调,目标是“让模型生成符合指令的回答”,强调准确
SFT 和微调方法的区别:SFT 是 微调 “目标和阶段”,LoRA 是实现 SFT 的 “技术手段” 之一
- SFT ≈ 基础微调方法(LoRA / 全参数 / Prefix-Tuning 等) + SFT 专属数据格式(带角色标识的输入输出对) + SFT 适配训练策略(prompt损失屏蔽 / 低学习率(防止灾难性遗忘) / 生成控制等)
- 基础微调方法是 “工具”,决定了 “用什么方式调参”;
- SFT 数据格式是 “原材料”,决定了 “微调学什么内容”;
- SFT 训练策略是 “施工规范”,决定了 “怎么调参才不让模型向着预期方向调整”
- SFT ≈ 基础微调方法(LoRA / 全参数 / Prefix-Tuning 等) + SFT 专属数据格式(带角色标识的输入输出对) + SFT 适配训练策略(prompt损失屏蔽 / 低学习率(防止灾难性遗忘) / 生成控制等)
SFT 的数据和基础微调方法所用数据的区别:
对比维度 基础微调数据 SFT 数据 数据目标 让模型学会 “分类 / 识别 / 简单匹配” 让模型学会 “理解指令→生成符合人类习惯的自然语言回答” 文本长度 短(输入 / 输出多为短句 / 标签) 长(输入含上下文 / 规则,输出是完整、流畅的自然语言) 损失计算 全输入计算损失 仅计算 assistant(回答)部分的损失(屏蔽 system/user 部分) 多样性要求 侧重覆盖任务类别 侧重覆盖不同指令场景、不同回答风格(符合人类偏好) 关于使用不同的微调方法的时候,数据的格式变化:
- 基础微调(文本分类):“这部电影超好看” → 标签 “正面”
- SFT 微调(对话):
<system>你是影评助手</system><user>这部电影超好看?</user><assistant>看来你很喜欢这部电影呀,能具体说说哪里打动你吗?</assistant> - 如果有些微调方法也是在前缀或者提示词入手,那就需要调整下数据格式,确实是会变的复杂一些,所以选择微调方法的原则顺序:
- 原则 1:优先适配数据格式,而非换微调方法
- 原则 2:如果数据格式极度不规范(如无明确输入输出边界),优先选不需要适配数据格式的方法,如 LoRA
- 原则 3:所有微调方法的核心适配点都是 “明确输入 / 输出边界”—— 哪怕数据格式乱,只要能区分 “模型该学的输入” 和 “模型该生成的输出”,就能用任何微调方法。
关于 prompt(其实指的就是 system 和 user 的信息) 损失屏蔽
- SFT 的核心目标是:让模型看到
system+user的指令后,能生成符合预期的assistant回答。如果计算全部文本的损失,会出现两个问题:- 模型会浪费算力去 “学习重复指令”(比如生成时重复
user的问题); - 模型可能学偏:比如把
system的规则(“你是医疗助手”)当成回答内容输出,而非遵守规则。 - 注:因为最终符合人类习惯的输出,是需要调整 assistant 来输出的,并不需要输出 system 提示和 user 的话,只需要回答即可
- 注:如何只计算 assistant 损失呢?
- 构建一个 “损失掩码(mask)”,让
system+user部分的损失被置为 0(不参与梯度更新),只有assistant部分的损失参与计算。 - 移位预测:大模型是自回归生成,预测第 n 个 token 时用前 n-1 个 token,所以掩码也要对应移位;
- 最后除以有效 token 数:保证损失值的合理性,避免因有效 token 少导致损失值过大。
- 构建一个 “损失掩码(mask)”,让
- 模型会浪费算力去 “学习重复指令”(比如生成时重复
- SFT 的核心目标是:让模型看到
角色标识(system/user/assistant) 是大模型 SFT 特有的,用于区分对话角色和输入输出边界,基础微调不用,因为场景更简单;
eos 的核心含义:End of Sequence,即 “序列结束符”
- eos 是一个特殊的 token(比如 GPT 系列的
<|endoftext|>、Llama 的</s>),作用是告诉模型:“生成到这个 token 就停止,不要再继续输出了”,原因如下- 避免生成冗余,效果反而不好;
- 控制算力成本:生成的 token 越多,推理耗时和算力消耗越大;
- 保证回答聚焦:限制长度能让模型优先输出核心信息,而非无关内容
- eos 是一个特殊的 token(比如 GPT 系列的
实际控制生成结果的参数:
max_new_tokens:只限制 “新生成的回答部分” 长度,不包含输入的 prompt;eos_token_id:指定终止符的 id,模型生成到这个 token 立即停止;temperature:控制生成的随机性(0.7 是常用值,值越小越确定,越大越多样)。
2 PPO (Proximal Policy Optimization 近端策略优化)
RLHF的核心环节,目标是“通过强化学习进一步对齐人类偏好”,强调在线调整和精准匹配人类偏好
PPO 是一种策略梯度强化学习算法**,技术上的核心目标是解决传统策略梯度 “更新幅度过大导致训练崩溃” 的痛点,兼具**TRPO的稳定性和策略梯度的简洁性,是大模型 RLHF(基于人类反馈的强化学习)流程中的核心优化算法。
- 策略梯度简化公式:ln(π(a|α)) * R,策略α下,生成动作 a (对应的 token)的概率,取对数后乘以激励模型(或者环境打分)的打分
- 相乘类似于"生成意愿" * “回答好坏”,如果 R 很大,生成概率π也很大,ln(π)就会慢慢靠近 0,而这才是损失函数的目标,这样就会让模型“朝着奖励高的方向调整参数”**。
- 注:此处的π是函数不是圆周率π,所以π(a|α)是生成概率,那就是 0< π < 1,log(π)在0-1 之间是递增,且数值小于 0
- 相乘类似于"生成意愿" * “回答好坏”,如果 R 很大,生成概率π也很大,ln(π)就会慢慢靠近 0,而这才是损失函数的目标,这样就会让模型“朝着奖励高的方向调整参数”**。
- TRPO(信任域策略优化):给策略调整设 “上限”,规定每次只能在 “信任域” 里小幅度改,确保改完后的策略不会和原来差太远,训练更稳定。
- 简易公式:max(π-n(a | α) / π-o(a | α) * R) 新旧策略的比值,乘以奖励打分的最大值
- 限制条件:π-n(a | α) 和π-o(a | α) 新旧策略的KL 散度不能超过 信任域阈值
- 因为如果还是上面取 log,那如果打分特别大就会导致模型调整过多,纠正过度,使用新旧策略的比值作为重要性权重就是为了不让新策略和旧策略变化太多,让训练更平稳
- 注:但是新旧策略生成 token 概率 KL 散度需要<信任域阈值,这个计算很复杂,所以有了下面的 PPO
- 注:新策略在下一轮迭代训练后就变成了旧策略
- 简易公式:max(π-n(a | α) / π-o(a | α) * R) 新旧策略的比值,乘以奖励打分的最大值
- 策略梯度简化公式:ln(π(a|α)) * R,策略α下,生成动作 a (对应的 token)的概率,取对数后乘以激励模型(或者环境打分)的打分
PPO通常是SFT之后的第二步,业务上目标是让模型生成更符合人类偏好的回答
- 核心思想:通过裁剪的替代目标函数限制新策略与旧策略的差异(保持在可控的 “信任域” 内),允许对采样数据进行多轮小批量更新,提升样本效率
核心架构:Actor-Critic + 参考模型 + 奖励模型
- 补:重要性采样:旧策略和新策略用的是同一批数据,旧策略生成的样本,新策略使用的时候需要对数据进行加权(P_n / P_o P 是概率分布,权重就是新旧策略的概率比)
- 价值模型:给模型的 “生成行为” 打分(判断这个回答好不好)
- 单独训练一个小型模型(比如用 BERT / 小尺寸 LLaMA),专门干 “打分” 的活,输入是 “用户问题 + 模型回答”,输出是 0-10 的分数。
- Actor 和 Critic 用同一个预训练模型主干(比如 LLaMA 7B 的主体部分,本质是隐藏层的输出),只在最后加一个不同的 “输出层”:Actor 的输出层是 “生成 token 的概率”(logits 经过 softmax 的值),Critic 的输出层是 “标量分数”。
- 目标:让模型算准 “平均奖励”
- 共享主干并不是说这俩模型是一个模型干两件事,只是共享主干,然后接入不同下游,价值模型需要和奖励模型配合才能模拟出来"平均奖励"
模型 作用 实现方式 Actor(策略模型) 生成回答(动作),优化目标是最大化累积奖励 通常是使用 LoRA方法SFT 微调后的预训练模型(低秩微调,降低算力成本) Critic(价值模型) 估计状态(文本上下文)的价值,计算优势函数(Advantage) 可以是独立的小型模型,或与 Actor 共享主干(更高效) Reference Model(参考模型) 计算新策略与原始 SFT 策略的 KL 散度(防止模型偏离能力,旧策略) 固定的 SFT 模型(不参与训练) Reward Model(奖励模型) 对 Actor 生成的回答打分,提供人类偏好反馈信号 独立训练的模型,输入为 “prompt + 回答”,输出为标量分数 裁剪损失简化公式:L_clip = min(R_t * R , R_clip * R),(真实情况是用的 A^t 而不是 R)其中 R_t 就是上面 TRPO 中的重要性权重(新旧策略概率比),R_clip 是权重裁剪后的结果:R_clip = max(min(Rt,1+ϵ), 1−ϵ),这样依然可以实现限制损失,控制更新幅度,计算量小很多
新旧策略的 KL 散度通俗讲就是:旧策略(比如 SFT 后的模型)和新策略(PPO 训练中的模型),分别对同一个用户问题生成回答,输出每个 token 的生成概率,KL 散度就是把两个策略的 “token 概率分布” 做对比,算出一个数值,代表两者的 “差异度”
优势估计(Advantage Estimation)
- 目的:衡量当前动作比 “平均期望” 好多少,是策略梯度的核心信号
- 常用GAE(广义优势估计):平衡高方差和高偏差
- 核心作用是:综合 “短期奖励” 和 “长期奖励”,准确判断模型的一个 “生成动作” 到底好不好。
- 下方的 A^t 是单步优势值,GAE 计算是长期的,优化过的优势值
完整 PPO 损失函数:L = L_clip - c1 * L_vf + c2 * L_kl
完整步骤:PPO 训练是一个迭代优化过程,每一轮都包含以下五个步骤:
- 样本采集:Actor(新策略)和 Reference Model(旧策略)对一批 prompt 生成回答,记录 “prompt + 回答 + 旧策略概率”
- 奖励计算:
- Reward Model 对每个回答打分,得到基础奖励 R,使用价值模型得到预估平均奖励 V
- 优势值 A^t = R - V
- Reward Model 对每个回答打分,得到基础奖励 R,使用价值模型得到预估平均奖励 V
- 计算裁剪损失:L_clip = min(R_t * A^t , R_clip * A^t)
- 计算价值损失: L_vf = (V - R )^2
- 计算新策略与 Reference Model 的 KL 散度(作为惩罚项,可选)
3 DPO(Direct Preference Optimization)
- PO 系列:进阶微调,目标是“让模型生成符合人类偏好的回答,简单对齐,离线调整”
- 核心特点是无需额外训练奖励模型(RM)和价值模型(Critic),仅通过SFT 后的模型和人类偏好对数据即可完成优化,兼具简单、稳定、低成本三大优势,是资源有限场景下偏好对齐的首选方案。
- DPO 的核心逻辑可概括为“直接用人类偏好对约束模型的生成概率”:
- 对于同一个问题x,让模型πθ生成好回答y+的对数概率,尽可能大于生成差回答y−的对数概率;
- 以 SFT 后的参考模型πref为基准,避免模型为了迎合偏好而丢失 SFT 阶段学会的基础能力;
- 无需像 PPO 那样通过 “RM 打分→Critic 预估→优势值计算” 的复杂链路,直接通过偏好对数据完成优化。
- L_d = -ln(σ(β * (ln π_θ(y+ | x)- ln π_θ(y- | x)))) 单样本版本
- ln π_θ(y+ | x)- ln π_θ(y- | x) 表示:模型生成好回答的对数概率和,减去生成差回答的对数和
- 作用就是,如果差值如正,说明当前生成好回答的概率大于差的回答,符合偏好,如果差值是负,说明不符合偏好需要继续优化
- 对比就是 PPO 中,需要使用奖励模型打分和优势值的复杂奖励信号,逻辑更简单
- β * (ln π_θ(y+ | x)- ln π_θ(y- | x)) 用温度系数β对 “对数概率差” 进行缩放,控制对差回答的惩罚程度,防止模型过拟合,缺乏泛化能力
- σ(-) 将缩放后的对数概率差,输入 Sigmoid 函数,映射到(0,1)区间。通俗理解就是转化对数概率差为判断模型偏好好回答的概率
- -ln(-) 把偏好好回答的概率转化成可优化的损失值,原因是:
- 如果σ(-)的结果趋近于 1,ln(1)是等于 0 的,也就是损失为 0,说明模型表现好,无需大幅调整参数;
- 防止就是损失为+♾️,需要大幅调整降低损失
- ln π_θ(y+ | x)- ln π_θ(y- | x) 表示:模型生成好回答的对数概率和,减去生成差回答的对数和
- 完整训练流程:
- 数据处理:
- 数据格式:必须是「Prompt x + 好回答 y+ + 差回答 y−」的三元组格式,这是 DPO 的核心数据基础,同时序列长度需要一致
- 通俗比喻就是:问题+ 好回答+查回答
- 数据来源:线上用户反馈,标注人员标注,大模型生成然后人工筛选等方式
- 数据格式:必须是「Prompt x + 好回答 y+ + 差回答 y−」的三元组格式,这是 DPO 的核心数据基础,同时序列长度需要一致
- 模型初始化:
- 加载参考模型,固定其参数(不参与训练),加载与参考模型一样的 SFT模型,作为待优化模型
- 可选:对待优化模型进行微调(参考模型不动),微调只是使用不同的数据和方法进行处理,此处是替换了数据和损失函数,还是用的同样的微调方法,所以是可以使用的,一个是用交叉熵损失,一个用 DPO 损失
- 计算 DPO 损失:按照上面 3 中公式计算批次损失
- 迭代训练:
- 将批次损失传入优化器(如 AdamW),计算损失对模型参数θ的梯度,通过梯度下降更新参数(若用 LoRA,仅更新 LoRA 矩阵);
- 验证与早停:每训练 1 轮(Epoch),用独立的验证集评估模型的偏好对齐效果(如人工抽查、自动评估指标 MT-Bench/AlpacaEval),若验证集损失不再下降,立即停止训练,避免过拟合;
- 保存模型
- 数据处理:
4 GRPO(Group Relative Policy Optimization)
- DeepSeek 提出的无价值模型(Critic-Free)强化学习算法,专为 LLM 大规模偏好对齐与推理能力提升设计,核心动机是解决PPO 的高显存 / 计算成本,同时保留强化学习的精准对齐能力,区别于 DPO 的纯离线偏好优化思路。
- 核心创新:用 “同一 Prompt 下多条回答的组内相对奖励” 替代 PPO 的 Critic 输出,既去掉了 Critic 模型,又保留了 PPO 的稳定更新机制,同时用 KL 约束防止模型偏离 SFT 的基础能力。
- L_g = - (1/ G) * ∑^G_(i= 1) |1 / Yi| ∑^|Yi| _(t=1) min(r_t(θ) * A^i, clip(r_t(θ), 1+ε, 1 - ε) * A^i) −β⋅KL(πθ∥πref)
- 其中 A^i = (Ri - η® ) / (σ® + 1e -8) 表示组内相对优势值
- Ri 表示奖励模型对模型生成的 G 条回答,对应每条回答的真实打分
- η®表示组内奖励均值 σ®表示组内奖励标准差,1e-8 是一个防止分母为零的常数
- r_t(θ) = π_n(θ) / π_o(θ) 新旧策略生成的概率比
- clip(r_t(θ), 1+ε, 1 - ε) 类比 PPO 中裁剪,防止新旧策略差异过大
- 裁剪损失:min(r_t(θ) * A^i, clip(r_t(θ), 1+ε, 1 - ε) * A^i) ,类比 PPO,保证训练平稳
- KL 损失可选,防止模型偏离参考模型
- 其中 A^i = (Ri - η® ) / (σ® + 1e -8) 表示组内相对优势值
- 完整训练流程:
- 准备训练数据
- 数据格式:仅需大量 Prompt(如通用问答、代码、数学题),回答由模型实时生成,无需提前标注;
- 需要和 PPO 一样提前训练好奖励模型,只需 prompt,不需要 DPO 那样的数据格式
- 模型初始化:加载参考模型,待优化模型,奖励模型
- 同样待优化模型可以使用 lora 这些方法轻量化微调
- 组采样和奖励打分
- 对每个 Prompt,用旧策略π_O采样G条不同的回答,组成 1 个 “回答组”;
- 用 RM 给组内每条回答打分,得到奖励分数{r1,r2,…,rG};
- 按公式计算每条回答的组内相对优势值A^i。
- 计算 GRPO 损失(单样本)
- 将组内回答输入新策略πθ,计算每个 token 的新旧策略概率比rt(θ);
- 应用 Clip 操作,计算裁剪损失项min(rt(θ)Ai,clip(rt(θ))Ai);
- 计算新策略与参考模型的 KL 散度,加入 KL 正则项;
- 对批次内所有组的损失取平均,得到批次损失。
- 迭代更新(同 DPO)
- 准备训练数据
5 RLHF(Reinforcement Learning from Human Feedback)
- RLHF 是大模型偏好对齐的经典完整体系,而非单一优化算法,是后续 DPO、GRPO 等轻量化方法的 “鼻祖”。核心逻辑是通过 “人类反馈” 串联起 “监督微调→奖励模型训练→强化学习” 三个阶段,实现模型从 “听懂指令” 到 “符合人类偏好” 的全链路优化。
- 核心思想:
- 第一步(SFT):教学生 “看懂题目,写出正确答案”
- 第二步(RM 训练):教老师 “学会给答案打分(按人类偏好)”
- 第三步(PPO 强化):让学生 “根据老师的打分,不断优化答案(更符合偏好)”
- RLHF 损失的核心公式分为SFT的交叉熵损失和奖励模型(RM)的损失公式和PPO 的损失公式
- SFT 损失 L_s = - E [∑t ln π(θ)]
- 奖励模型损失: L_rm = - E [ln σ(rϕ(x,y+)−rϕ(x,y−))]
- rϕ(x,y)是奖励模型的打分(参数为ϕ),y+是人类偏好的好回答,y−是差回答,σ(⋅)是 Sigmoid 函数(映射到 0~1)。
- 通过差值实现 “给好回答打高分,差回答打低分”
- σ(-),ln(-)函数的意义和 DPO 中是一致的
- RM 的排序损失和 DPO 的偏好损失形式高度相似,但作用不同 ——RM 是 “学打分”,DPO 是 “直接用偏好对优化模型”。
- 关于此部分奖励模型的数据格式,与 DPO 是一致的都是三元组,区别是:
- 不管是 RLHF 的 RM,还是 DPO 的偏好对,都需要先有 “同一 prompt 的多条回答”,再筛选 / 排序出y+和y−,比如:y1>y2>y3,形成的数据格式即:(x,y1,y2)、(x,y1,y3)、(x,y2,y3),这不是 GRPO 的专利
- 与 GRPO 不同的是:
- GRPO 训练时动态生成多条回答,是为了计算组内相对优势值(替代 Critic),直接用于策略优化;
- RM 的数据收集阶段提前生成多条回答,是为了让人类排序,再拆成三元组,用于训练打分模型,不直接优化策略。
- RM 的损失和 DPO 的损失区别在于,DPO 是人类偏好差,RM 是打分差
- PPO 损失:见上 PPO
- 完整训练流程
- 监督微调(SFT)—— 基础指令适配
- 数据准备:收集 “Prompt + 人类标注的正确回答” 数据(如通用问答、代码解释);
- 模型初始化:加载预训练大模型,启用 LoRA/QLoRA 轻量化微调;
- 损失计算:按 SFT 交叉熵损失计算批次损失;
- 迭代更新:梯度下降更新模型参数,得到πSFT(RLHF 的基础模型)。
- 奖励模型(RM)训练 —— 学习人类偏好(核心新环节)
- 数据准备:
- 收集 “同一 Prompt 下的N条不同回答”,让人类按偏好程度排序(如y1>y2>y3,>表示 “更偏好”);
- 转换为成对偏好数据:将排序数据拆分为多个 “好回答 / 差回答” 对(如y1/y2、y1/y3、y2/y3),作为 RM 的训练数据;
- 模型初始化:(第一步的 SFT 模型作为奖励模型的基础模型)
- 改造输出层:将原有的 “词表大小线性层 + Softmax” 替换为输出维度 = 1 的线性层(无激活函数),用于输出标量打分;
- 启用 LoRA 微调(仅训练低秩矩阵,降低成本)。
- 损失计算:
- 将成对数据(x,y+,y−)输入 RM,得到打分rϕ(x,y+)和rϕ(x,y−);
- 按 RM 排序损失公式计算批次损失(对所有成对样本的损失取平均)。
- 迭代更新:
- 梯度下降更新 RM 的参数ϕ,让 RM 的打分越来越符合人类排序;
- 验证:用独立的排序数据评估 RM,若 “RM 打分高低” 与 “人类排序” 的重合度≥90%,则 RM 训练完成。
- 数据准备:
- PPO 强化学习 —— 精准对齐人类偏好
- 模型初始化:
- 加载SFT模型作为PPO 策略模型*πθ*(也叫待优化模型)和参考模型(固定);
- 加载SFT 模型并改造输出层,作为价值模型*Vϕ*(Critic,预估状态价值);
- 加载训练完成的 RM 奖励模型,用于给生成的回答打分;
- 对πθ和Vϕ启用 LoRA 微调(仅训练低秩矩阵)。
- 采样和打分:
- 用旧策略πO对 Prompt 采样生成回答y;
- 用 RM 给回答打分,得到真实奖励r(x,y);
- 计算 token 级的 GAE 优势值A^t
- 损失计算:按 PPO 组合损失公式,计算裁剪损失、价值损失、KL 正则项,得到批次总损失。
- 迭代更新:
- 梯度下降同时更新πθ(策略模型)和Vϕ(价值模型)的参数;
- 定期保存πO(旧策略快照),用于下一轮采样;
- 验证:用 MT-Bench / 人工打分评估对齐效果,损失不再下降则早停。
- 模型初始化:
- 监督微调(SFT)—— 基础指令适配
6 关于不同的优化方法的区别:
| 排序 | 方法 | 核心定位 | 适用场景 | 关键特点 | 数据格式 | 核心对齐方式 |
|---|---|---|---|---|---|---|
| 0 | SFT | 让模型 “听懂指令,生成正确回答” | 「Prompt + 单条回答」 | 监督学习,让模型拟合人类标注的指令回答 | ||
| 1 | PPO | RLHF 经典核心,在线优化标杆 | 资源充足、追求极致对齐效果、需精细调参 | Actor-Critic + 裁剪 + KL 约束;效果强但工程复杂(4 模型协同) | 「Prompt + 回答 + RM 打分」 | 价值模型 + GAE 优势估计(需 RM+ Critic) |
| 2 | DPO | 离线偏好对齐首选,替代 PPO 的主流方案 | 资源有限、快速迭代、数据质量可控,轻量化对齐 | 无 RM/Critic,直接用偏好对优化;训练稳定、算力成本低 70%+ | 「Prompt + 好回答 + 差回答」 | 离线偏好优化,直接用好坏回答对约束模型生成倾向 |
| 3 | GRPO | 无 Critic 的在线优化,PPO 轻量化替代 | 中等算力、需在线更新、不想维护 Critic | 组内相对奖励替代 Critic;去掉价值网络,训练速度提升 50%+(推理任务、长序列生成、大规模模型) | prompt | 在线轻量化强化,用组内相对奖励替代 Critic |
| 4 | RLHF | 大模型偏好对齐领域的经典全链路体系,也是后续所有轻量化对齐方法(DPO/GRPO/KTO)的 “鼻祖”。 | 大厂通用大模型研发,高合规要求的垂直领域,需要动态适配用户偏好的场景 | SFT+RM+PPO | 「Prompt + 回答 + RM 打分」 | 三阶段全链路对齐:SFT→RM 训练→PPO 强化 |
| 5 | KTO | 二元偏好对齐,适合低成本 | 标注标注预算有限、只能获取二元反馈(是 / 否) | 基于前景理论,用二元数据优化;无需排序,标注效率高 | 离线二元偏好优化,用 “好 / 坏” 标签替代成对偏好 | |
| 6 | RLOO | 在线奖励学习 + 策略优化,小众进阶 | 需动态更新奖励、强在线反馈场景,法研究、多场景适配 | 结合在线 RM 训练与策略优化;工程复杂,落地案例少 |
PO 是一类方法的统称(偏好优化,Preference Optimization),不是单独的算法框架,其核心特征是直接用人类偏好数据约束模型生成行为,而 DPO、KTO、ORPO 等都属于PO 家族的具体算法;PPO 不属于 PO 范畴,它是强化学习算法,是 RLHF 体系的核心强化环节。
强化学习算法:RLHF(含 PPO)、GRPO、RLOO 等
- 是否属于强化学习的方法:是否满足「策略模型与环境 / 反馈交互→获取奖励信号→用策略梯度类方法优化模型」的闭环逻辑。
参考
1