Skip to content

后训练(Post-training)

预训练让模型学会了大量语言、知识和模式,但它还不一定会按照用户的意图回答问题,也不一定能稳定地完成多步推理。后训练(Post-training),就是在预训练模型的基础上,用更有针对性的数据和优化目标,让模型变得更有用、更可靠。

这篇笔记只做概念层面的梳理,重点介绍四类常见方法:监督微调(SFT)、基于人类反馈的强化学习(RLHF)、直接偏好优化(DPO),以及用于提升推理能力的 Reasoning RL。

可以把一个大语言模型的训练过程粗略分成两段:

  1. 预训练(Pre-training):在海量文本上预测下一个 token,学习语言规律、知识和通用表示。
  2. 后训练(Post-training):使用指令、偏好、验证器或奖励信号,调整模型的行为方式和解决问题的能力。

后训练通常关心这些目标:

  • 能理解用户指令,并按照要求输出;
  • 回答更有帮助、更安全、更符合人类偏好;
  • 在多个候选答案中选择质量更高的答案;
  • 对数学、代码和逻辑问题进行更长、更可靠的推理。

一个常见的路线是:

预训练模型 → SFT → 偏好优化(RLHF / DPO)→ 推理强化学习(Reasoning RL)

这不是固定流水线。实际项目会根据数据、算力和目标选择其中一部分,也可能在不同阶段反复迭代。

SFT(Supervised Fine-Tuning,监督微调)使用“指令—回答”样本训练模型,让模型学习什么样的输入应该对应什么样的输出。

一条训练样本通常类似这样:

{
"instruction": "解释什么是梯度下降",
"input": "面向刚学过导数的读者",
"output": "梯度下降是一种通过沿损失函数下降方向更新参数的优化方法……"
}

训练时,模型根据指令生成回答,并用标准的 next-token cross entropy 计算损失:

其中 是指令, 是示范回答, 是当前模型。简单来说,模型会提高示范回答中每个 token 的概率。

SFT 的优点是简单、稳定、容易调试。只要准备好高质量示范数据,就可以让基础模型快速学会对话格式、工具调用格式或特定领域的写作方式。

它的局限也很明显:

  • 模型只会模仿示范,不一定真正理解什么答案更好;
  • 标注答案往往只有一个,但实际可能存在多个合理答案;
  • 如果示范数据中存在错误、偏见或固定模板,模型也会一起学到。

因此,SFT 更像是“教模型按照范例做事”,通常是后续偏好优化的起点。

三、基于人类反馈的强化学习:RLHF

Section titled “三、基于人类反馈的强化学习:RLHF”

RLHF(Reinforcement Learning from Human Feedback)希望模型不仅模仿示范,还能根据人类偏好主动调整行为。经典流程通常包含三个步骤:

  1. 先用示范数据对基础模型进行 SFT;
  2. 让模型对同一个问题生成多个回答,由人类对回答进行排序;
  3. 用排序数据训练奖励模型,再用强化学习优化语言模型。

奖励模型学习一个分数函数 ,它应该给更受偏好的回答更高分。强化学习阶段则希望最大化奖励,同时限制模型不要偏离参考模型太远:

早期工作常使用 PPO(Proximal Policy Optimization)来完成这一步。

如果只追求奖励模型分数,语言模型可能找到奖励模型的漏洞,生成看起来得分高但实际质量不好的回答,这就是奖励投机(reward hacking)的一种表现。

KL 惩罚鼓励新模型保持在参考模型附近,避免训练过程让语言能力突然退化。不过,KL 系数过大时模型学不到足够多的新行为,过小时又更容易出现偏离和投机。

RLHF 能够直接优化“人更喜欢什么”,适合处理帮助性、表达风格、安全性等很难用单一正确答案衡量的目标。

它的代价是流程复杂:需要偏好标注、奖励模型、强化学习算法和较多的训练调参。奖励模型本身也可能把标注者偏好放大,甚至被模型利用。

DPO(Direct Preference Optimization)使用偏好数据直接优化语言模型,不单独训练奖励模型,也不需要显式运行 PPO。

一条偏好数据包含:

prompt: 解释梯度下降
chosen: 更准确、更清晰的回答
rejected: 含有错误或表达较差的回答

DPO 的目标是让模型相对于参考模型,更倾向于生成 chosen,而不是 rejected。常见形式可以写成:

其中 是 preferred answer, 是 rejected answer, 是 sigmoid 函数。

可以把 DPO 理解为:把奖励模型和策略优化之间的部分数学关系合并进一个分类式损失中,直接利用 chosen/rejected 对训练当前模型。

它的优点是:

  • 训练流程比 RLHF 简单;
  • 不需要单独维护奖励模型;
  • 通常更容易复现和调参;
  • 可以直接使用已有的人类偏好数据。

但 DPO 仍然依赖偏好数据的质量。它更擅长学习“哪个回答更好”,并不天然等价于真正的事实验证或长链路推理。

五、Reasoning RL:让模型学会更可靠地推理

Section titled “五、Reasoning RL:让模型学会更可靠地推理”

普通 SFT 或偏好优化可以让回答更像人、更符合格式,但复杂数学、代码和逻辑问题还需要多步思考。对于这类任务,仅仅模仿一条固定推理过程往往不够,因为:

  • 同一道题可能有多种正确解法;
  • 推理过程可能很长,错误会在中间步骤累积;
  • 最终答案通常可以通过程序、单元测试或数学规则自动验证。

Reasoning RL 使用可验证的结果或过程信号作为奖励,让模型通过尝试不同的推理路径,逐渐学会哪些思路更容易得到正确结果。

GRPO(Group Relative Policy Optimization)是 Reasoning RL 中常被讨论的一种方法。它对同一个问题采样一组回答,然后在组内比较它们的奖励,而不是为每条回答训练一个单独的 value model。

假设同一个问题采样得到 条回答,奖励分别为 。一种直观的相对优势计算是:

奖励更高的回答获得正优势,奖励更低的回答获得负优势。策略更新会提高前者的概率,降低后者的概率。

Reasoning RL 的关键不是“把强化学习套上去”,而是要有可靠的奖励来源:

  • 数学题:检查最终答案是否正确;
  • 代码题:运行测试用例,检查程序是否通过;
  • 结构化输出:验证 JSON、SQL 或工具调用格式;
  • 推理过程:使用过程奖励模型检查中间步骤。

如果奖励规则不可靠,模型可能会钻验证器的空子。因此,验证器的覆盖范围、边界案例和防作弊能力通常比算法名字更重要。

方法主要数据主要目标优点主要风险
SFT指令—回答示范学会任务格式和基本行为简单稳定、容易开始过度模仿,无法表达偏好差异
RLHF人类排序偏好优化帮助性、安全性和表达质量目标直接贴近人类偏好流程复杂,奖励投机
DPOchosen/rejected 偏好对直接学习偏好排序实现简单、训练稳定依赖偏好数据,事实性不一定提升
Reasoning RL可验证奖励或过程奖励提升多步推理和问题求解能探索多条解题路径验证器设计困难,训练成本高

一个实用的选择顺序是:

  1. 先用 SFT 让模型学会任务格式;
  2. 有人类偏好数据时,可以选择 DPO 快速对齐;
  3. 需要更复杂的人类偏好建模时,再考虑 RLHF;
  4. 数学、代码等有明确验证器的任务,可以加入 Reasoning RL。
  • SFT 解决“按照示范完成任务”;
  • RLHF 解决“让模型的行为更符合人类偏好”;
  • DPO 用更直接的方式学习 chosen 和 rejected 之间的偏好差异;
  • Reasoning RL 通过可验证奖励,鼓励模型探索更可靠的推理路径。

它们不是互相排斥的四种技术,而是可以组合使用的训练工具。真正决定效果的,通常是数据质量、奖励或验证器设计,以及对模型行为的评估方式。

实践案例:GSM8K 上的 SFT 数据规模实验

Section titled “实践案例:GSM8K 上的 SFT 数据规模实验”

想把上面的 SFT 概念对应到真实训练代码和评估曲线,可以继续阅读 SFT 理论与实现要点。这篇笔记聚焦 SFT 的理论、关键张量操作、损失实现、LoRA/QLoRA 和训练评估方法,不重复博客中的实验结果。