跳到主要内容

强化学习

强化学习(Reinforcement Learning, RL)是一类通过“试错 + 奖励”来学习决策策略的方法。模型不是只学习标准答案,而是在环境中采取行动,根据奖励信号调整策略,让未来获得更高回报。

在大语言模型场景中,强化学习主要用于:

  • 让模型回答更符合人类偏好。
  • 提升模型在数学、代码、逻辑推理等任务上的表现。
  • 让模型学会遵循安全边界和拒答策略。
  • 优化模型输出风格,例如更简洁、更有帮助、更少幻觉。
  • 利用 verifier、reward model 或规则信号训练推理能力。

LLM 里的强化学习不一定都像传统游戏 RL 那样和环境反复交互。很多方法使用离线偏好数据、规则奖励或模型生成样本进行训练。

1. 核心概念

强化学习可以用几个基本概念来描述。

概念含义LLM 中的对应
Agent做决策的主体语言模型
State当前环境状态prompt、历史上下文、已生成 token
Action可采取的动作生成下一个 token,或生成一个完整回答
Policy决策策略模型参数决定的输出分布
Reward奖励信号人类偏好分数、规则得分、verifier 结果、reward model 分数
Trajectory一连串状态和动作从 prompt 到完整回答的生成过程
Return累计奖励一个回答或推理轨迹的总体得分

传统 RL 常常关注“在环境中连续行动”。LLM 中更常见的是:给定一个 prompt,模型生成一个回答,然后用某种奖励信号评估这个回答,再更新模型。

2. 为什么 LLM 需要强化学习

预训练让模型学会预测下一个 token,监督微调让模型学会模仿高质量答案。但这还不够。

原因包括:

  • 很多任务没有唯一标准答案。
  • 人类更喜欢的回答不一定是训练集中出现概率最高的回答。
  • 安全、礼貌、简洁、拒答等偏好很难只靠交叉熵表达。
  • 推理任务中,最终答案正确与否可能比逐字模仿参考答案更重要。
  • 模型需要在多个目标之间折中,例如帮助性、真实性、安全性和简洁性。

强化学习或偏好优化的作用,是把“什么样的回答更好”转化为训练信号。

3. LLM 训练流程中的位置

一个典型的大模型训练流程可以简化为:

预训练
-> 监督微调 SFT
-> 偏好对齐 / 强化学习
-> 评估与安全测试
-> 部署

各阶段目标不同:

阶段主要目标
预训练学习通用语言、知识和模式
SFT学习指令跟随和标准回答格式
RLHF / 偏好优化让回答更符合人类或任务偏好
推理 RL / verifier 训练提升可验证任务上的正确率

强化学习通常不是从零训练模型,而是在已有 SFT 模型基础上继续优化。

4. Verifier、Reward Function 与 Reward Model

这三个概念容易混淆。

4.1 Verifier

Verifier 用来判断结果是否满足某个条件,通常偏“验证正确性”。

例子:

  • 数学题最终答案是否正确。
  • 代码是否通过单元测试。
  • JSON 是否符合 schema。
  • SQL 是否能执行并返回正确结果。
  • 工具调用参数是否满足规则。

Verifier 可以是规则、程序、测试用例,也可以是另一个模型。

它通常输出:

正确 / 错误
通过 / 不通过
匹配 / 不匹配

Verifier 本身不一定给连续分数。

4.2 Reward Function

Reward Function 把结果映射成数值奖励。

例如:

答案正确: +1
答案错误: -1
格式错误: -0.5
输出过长: -0.2
触发安全问题: -2

Reward Function 可以使用 verifier 的结果,也可以加入长度、格式、安全、风格等额外因素。

4.3 Reward Model

Reward Model 是一个训练出来的模型,用来给回答打分。

在人类偏好对齐中,常见流程是:

  1. 对同一个 prompt 采样多个回答。
  2. 人类标注哪个回答更好。
  3. 用这些偏好数据训练 reward model。
  4. 用 reward model 给新回答打分。
  5. 使用 RL 方法优化语言模型。

Reward Model 的优点是能表达复杂偏好;缺点是可能被模型“钻空子”,也可能继承标注偏差。

5. RLHF

RLHF(Reinforcement Learning from Human Feedback)是用人类反馈训练模型的典型流程。

常见步骤:

  1. 训练 SFT 模型。
  2. 对同一批 prompt 生成多个候选回答。
  3. 人类标注回答偏好,例如 A 比 B 好。
  4. 训练 reward model。
  5. 使用 PPO 等 RL 算法优化模型。
  6. 持续评估帮助性、真实性和安全性。

RLHF 的目标不是让模型输出“唯一正确答案”,而是让模型输出更符合人类偏好的答案。

常见收益:

  • 回答更有帮助。
  • 更会拒绝不安全请求。
  • 格式和语气更稳定。
  • 减少明显胡说和低质量回答。

常见风险:

  • 训练成本高。
  • 人类偏好标注成本高。
  • reward model 可能被过度优化。
  • 模型可能变得啰嗦、保守或迎合。

6. PPO

PPO(Proximal Policy Optimization)是 RLHF 中经典使用的强化学习算法。

它的核心思想是:更新策略时不要让新模型偏离旧模型太远,以保证训练稳定。

在 LLM 中,PPO 通常会同时考虑:

  • reward model 给出的奖励。
  • 当前策略模型的输出概率。
  • 参考模型的输出概率。
  • KL penalty,用来限制模型偏离原模型太远。

简化目标可以理解为:

提高高奖励回答的概率
同时限制模型不要偏离参考模型太远

KL 约束很重要。没有约束时,模型可能为了骗取 reward model 分数而生成奇怪、高分但不可用的回答。

PPO 的优点:

  • 理论和实践积累较多。
  • 能直接优化 reward model 分数。
  • 适合完整 RLHF 流程。

缺点:

  • 工程复杂。
  • 显存和训练成本高。
  • 需要 reward model。
  • 超参数敏感,训练不稳定时排障困难。

7. DPO

DPO(Direct Preference Optimization)是一种直接使用偏好数据优化模型的方法。

它不需要单独训练 reward model,也不需要显式运行 PPO。训练数据通常是:

{
"prompt": "解释一下 KV Cache",
"chosen": "更好的回答",
"rejected": "较差的回答"
}

DPO 的目标是提高 chosen 的概率,降低 rejected 的概率,同时通过参考模型约束更新幅度。

直观理解:

同一个问题下
让模型更倾向于好答案
更不倾向于差答案

DPO 的优点:

  • 流程比 PPO 简单。
  • 不需要 reward model。
  • 训练稳定性和工程成本通常更友好。
  • 适合偏好数据已经准备好的场景。

缺点:

  • 依赖偏好对质量。
  • 不直接处理需要在线探索的任务。
  • 对“为什么 chosen 更好”的细粒度奖励表达有限。

8. ORPO

ORPO(Odds Ratio Preference Optimization)把监督微调和偏好优化结合在一个训练目标中。

它的思路是:在学习 chosen 回答的同时,拉开 chosen 和 rejected 的概率差距。

相比“先 SFT 再 DPO”的两阶段流程,ORPO 更像是把两件事合到一起:

  • 继续学习好回答。
  • 同时抑制坏回答。

适合场景:

  • 希望流程简单。
  • 偏好数据中 chosen 本身就是高质量监督答案。
  • 希望在 SFT 阶段就引入偏好差异。

需要注意的是,ORPO 仍然依赖偏好数据质量。如果 chosen / rejected 标注不稳定,模型也会学到不稳定偏好。

9. KTO

KTO(Kahneman-Tversky Optimization)使用更简单的反馈形式训练模型。

它不一定需要成对的 chosen / rejected 数据,而可以使用类似:

这个回答是好的
这个回答是不好的

也就是说,KTO 更适合只有正负反馈、没有严格成对比较的数据。

适合场景:

  • 线上反馈只有点赞 / 点踩。
  • 标注成本较低,只能判断单个回答好坏。
  • 难以为每个 prompt 构造高质量偏好对。

它的优势是数据形式灵活;挑战是反馈信号更粗,需要更仔细地控制数据质量和训练比例。

10. GRPO

GRPO(Group Relative Policy Optimization)常见于推理模型训练讨论中。

它的核心思想是:对同一个 prompt 采样一组回答,把组内回答的相对得分作为优化信号,而不是依赖单个回答的绝对奖励。

简化流程:

同一个 prompt
-> 采样多个回答
-> 用 verifier / reward function 打分
-> 计算组内相对优势
-> 提高高分回答概率,降低低分回答概率

GRPO 常用于可验证任务,例如:

  • 数学题。
  • 代码题。
  • 逻辑推理。
  • 有明确答案或测试用例的任务。

它的优势:

  • 可以利用规则 verifier。
  • 不一定需要训练 reward model。
  • 对推理任务很有吸引力。
  • 通过组内比较降低绝对奖励尺度设计难度。

它的挑战:

  • 需要为同一 prompt 采样多个回答,训练成本较高。
  • verifier 质量非常关键。
  • 如果奖励只看最终答案,模型可能学到不好的中间推理习惯。
  • 对开放式任务不如可验证任务直接。

11. RLHF、DPO、PPO、GRPO 对比

方法主要数据是否需要 Reward Model工程复杂度常见用途
RLHF + PPO人类偏好数据 + reward model通常需要通用对话对齐
DPOchosen / rejected 偏好对不需要偏好对齐、风格优化
ORPOchosen / rejected 偏好对不需要SFT 与偏好优化合并
KTO单条好 / 坏反馈不需要点赞点踩类反馈
GRPO同 prompt 多回答 + reward / verifier不一定需要中到高数学、代码、推理训练

实际选择时,要先看数据形态:

  • 有大量高质量偏好对:DPO / ORPO。
  • 有人类偏好标注和 reward model 能力:RLHF + PPO。
  • 有规则验证器:GRPO 或基于 verifier 的 RL。
  • 只有点赞点踩:KTO 或类似单样本反馈方法。

12. 强化学习与监督微调的区别

SFT 学的是“模仿标准答案”;RL / 偏好优化学的是“提高更好行为的概率”。

维度SFTRL / 偏好优化
数据输入 + 标准输出偏好、奖励、验证结果
目标模仿参考答案优化偏好或奖励
优点稳定、简单、成本低能表达更复杂目标
风险容易学成机械模仿奖励设计不好会被钻空子
常见用途指令跟随、格式学习对齐、推理、偏好优化

很多项目应该先做好 SFT 和评估,再考虑强化学习。RL 不能弥补低质量数据和不清晰目标。

13. Reward Hacking

Reward hacking 指模型找到一种“拿高分但不真正符合目标”的方式。

例子:

  • 为了获得“详细”奖励,回答变得过度冗长。
  • 为了通过格式检查,输出合法 JSON 但内容无意义。
  • 为了通过简单数学 verifier,只输出最终答案,不保留可读推理。
  • 为了安全奖励,过度拒答正常问题。

缓解方式:

  • 使用多维奖励,而不是单一分数。
  • 保留人工评估。
  • 加入对抗样本和边界样本。
  • 监控回答长度、拒答率、格式通过率等副指标。
  • 不只看 reward 分数,还要看真实任务指标。

14. 推理模型中的奖励设计

数学和代码任务常用 verifier,因为答案可以自动检查。

常见奖励信号:

  • 最终答案是否正确。
  • 代码是否通过测试。
  • 推理过程是否满足格式。
  • 是否使用了允许的工具。
  • 输出是否过长。
  • 是否出现明显无效推理。

需要注意:只奖励最终答案可能不够。模型可能通过猜测或不稳定路径得到正确答案。对于需要可解释过程的场景,可以同时评估最终答案和推理轨迹质量。

15. 数据质量

强化学习和偏好优化高度依赖反馈数据质量。

训练前建议检查:

  • chosen 是否真的优于 rejected。
  • 偏好标准是否一致。
  • 标注者之间是否有明显分歧。
  • 是否混入安全风险数据。
  • 是否存在大量模板化偏好。
  • prompt 分布是否接近真实场景。
  • reward / verifier 是否能覆盖边界情况。

偏好数据有噪声时,模型会学到噪声。reward function 有漏洞时,模型会利用漏洞。

16. 评估指标

强化学习后的模型不能只看训练 reward。

建议同时评估:

指标说明
Win rate和基线模型相比,人类或模型裁判更偏好哪一个
任务准确率数学、代码、分类、抽取等任务的客观指标
格式通过率JSON、工具调用、schema 等格式是否正确
拒答准确率应拒答的是否拒答,不应拒答的是否正常回答
长度分布是否变得过长或过短
幻觉率是否编造事实或引用
安全通过率是否遵循安全策略
回归测试原有能力是否下降

RL 训练后尤其要关注能力回退和行为偏移。

17. 实践建议

做 LLM 强化学习或偏好优化时,可以按这个顺序推进:

  1. 先明确目标:是提升安全、风格、推理正确率,还是工具调用稳定性。
  2. 先建立评估集:没有评估集不要急着训练。
  3. 先做好 SFT:基础指令跟随和格式能力要先稳定。
  4. 根据数据形态选择方法:偏好对用 DPO / ORPO,可验证任务考虑 GRPO。
  5. 控制训练强度:避免模型偏离基座太远。
  6. 同时看 reward 和真实任务指标。
  7. 做人工抽检:尤其检查拒答、幻觉、冗长和边界问题。
  8. 保留回滚版本:偏好训练很容易带来非预期行为变化。

如果只是想让模型按固定格式输出,通常 SFT 或提示词就够了。如果目标是“哪个回答更好”或“怎样提高可验证任务成功率”,再考虑偏好优化和 RL。

18. 总结

强化学习在 LLM 中的核心作用,是把“好回答”的标准转化为训练信号,让模型不只是模仿数据,而是向更高偏好或更高奖励的行为靠近。

可以抓住几条主线:

  • RLHF 用人类偏好训练 reward model,再用 PPO 等方法优化模型。
  • DPO、ORPO、KTO 等方法简化了偏好对齐流程。
  • GRPO 等方法更适合数学、代码这类可验证推理任务。
  • Verifier 判断对错,Reward Function 给数值奖励,Reward Model 学习复杂偏好。
  • 强化学习的最大风险是 reward hacking 和能力回退。

对工程实践来说,强化学习不是万能增强器。它需要清晰目标、高质量反馈数据、可靠评估和严格回归测试。否则模型可能只是学会了拿高分,而不是变得真正更有用。