抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一文读懂大模型后训练(Post-Training)

预训练给了模型”知识”,后训练给了模型”灵魂”。


目录

  1. 什么是后训练?
  2. 后训练的整体流程
  3. 监督微调(SFT)
  4. 奖励模型(Reward Model)
  5. 强化学习对齐(RLHF / PPO)
  6. 直接偏好优化(DPO)
  7. 拒绝采样微调(RFT)
  8. GRPO 与推理模型训练
  9. 各方法横向对比
  10. 工程实践要点
  11. 前沿趋势

一、什么是后训练?

大模型的训练分为两个阶段:

1
2
3
4
5
6
7
预训练(Pre-training)          后训练(Post-training)
──────────────────── ──────────────────────────
海量无标注文本 人工标注 + 偏好数据 + 规则信号
学习语言规律和世界知识 学习"怎么回答才是好答案"
目标:预测下一个 token 目标:对齐人类意图和价值观
成本:数百万美元 成本:数万~数十万美元
产出:Base Model 产出:Chat / Instruct Model

一句话理解: 预训练让模型”博览群书”,后训练让模型”知道怎么说话”。

没有后训练的 Base Model 会续写任何输入——包括有害内容、胡乱补全指令等。后训练的核心目标是让模型做到:

  • 有用(Helpful):能准确理解并完成用户指令
  • 无害(Harmless):拒绝有害、违法、不道德的请求
  • 诚实(Honest):不编造事实,承认不确定性

这三个目标合称 3H 对齐原则,是 Anthropic、OpenAI 等公司的核心研究方向。


二、后训练的整体流程

现代大模型后训练通常分三步走:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Base Model


┌─────────────────────────────┐
│ Step 1: 监督微调 (SFT) │ ← 教模型"格式"和"风格"
│ 用高质量问答对微调 │
└─────────────┬───────────────┘


┌─────────────────────────────┐
│ Step 2: 奖励建模 (RM) │ ← 训练一个"打分官"
│ 学习人类的偏好排序 │
└─────────────┬───────────────┘


┌─────────────────────────────┐
│ Step 3: 强化学习 (RLHF) │ ← 用分数反复优化模型
│ 最大化奖励模型的分数 │
└─────────────┬───────────────┘


Chat Model ✓

不同公司/项目的具体路线有所差异,但大体遵循这一框架。后文会逐一拆解每个步骤。


三、监督微调(SFT)

是什么

Supervised Fine-Tuning,用人工标注的高质量(指令, 回答)对,对 Base Model 进行有监督训练。

数据长什么样

1
2
3
4
5
6
7
{
"instruction": "用简单的语言解释什么是黑洞",
"input": "",
"output": "黑洞是宇宙中一种引力极强的天体,强到连光都无法逃脱。
它由大质量恒星死亡后坍缩形成。黑洞的边界叫做「事件视界」,
一旦越过这条线,任何物质都会被永久吸入..."
}

数据集通常包含:

  • 指令跟随:翻译、总结、改写、分类
  • 知识问答:事实性问题
  • 代码生成:写代码、调试、解释代码
  • 多轮对话:角色扮演、聊天
  • 安全拒绝:对有害请求给出正确的拒绝回复

训练目标

和预训练一样是语言模型的 Next Token Prediction(NTP),但只计算 output 部分的 loss:

1
Loss = -Σ log P(output_token_i | instruction, output_token_1...i-1)

instruction 部分的 token 不参与梯度计算,只作为上下文。

关键超参数

参数 典型值 说明
Learning Rate 1e-5 ~ 5e-5 远小于预训练,防止遗忘
Epochs 1 ~ 3 太多容易过拟合
Batch Size 64 ~ 256 视显存而定
Max Length 2048 ~ 8192 覆盖长对话

SFT 的局限

SFT 教会了模型”格式”,但不能区分哪个回答更好。如果给定同一问题有两个答案 A 和 B,SFT 无法让模型偏好更好的那个。这就需要引入奖励模型。


四、奖励模型(Reward Model)

为什么需要奖励模型

人类无法对每一条模型输出打分,但可以比较两个回答哪个更好。奖励模型(RM)就是学习这种相对偏好的裁判。

数据构造

收集人类偏好数据的流程:

1
2
3
4
5
同一个 prompt

├──► 模型回答 A:"地球是宇宙的中心..." ← 标注员选择:B 更好

└──► 模型回答 B:"地球是太阳系中的一颗行星..." ✓

最终得到三元组:(prompt, chosen, rejected)

训练目标

使用 Bradley-Terry 模型,最大化”好回答得分高于差回答”的概率:

1
2
3
4
5
6
7
Loss = -E[log σ(r(x, y_w) - r(x, y_l))]

其中:
r(x, y) = 奖励模型对 prompt x、回答 y 的打分
y_w = 人类偏好的回答(winner)
y_l = 人类不偏好的回答(loser)
σ = sigmoid 函数

架构

奖励模型通常基于 SFT 模型,去掉语言模型头,换成一个线性层输出单个标量分数:

1
2
3
4
5
6
7
[SFT Model Backbone]

最后一层 hidden state

Linear(d_model → 1)

标量分数 r ∈ (-∞, +∞)

奖励黑客(Reward Hacking)

奖励模型并不完美,策略模型可能会学会”欺骗”它——生成能得高分但实际质量差的回答(比如:回答特别长、充斥恭维语气等)。

这是 RLHF 最核心的挑战之一,后文的 KL 惩罚项就是为了缓解这个问题。


五、强化学习对齐(RLHF / PPO)

整体框架

RLHF(Reinforcement Learning from Human Feedback)是将强化学习引入大模型对齐的关键技术,由 OpenAI 在 InstructGPT 论文中系统提出。

系统中有四个模型同时运行:

1
2
3
4
5
6
7
8
┌──────────────────────────────────────────────────────┐
│ RLHF 训练系统 │
│ │
│ Actor Model ← 被优化的主模型(SFT 初始化) │
│ Critic Model ← 预测期望奖励(价值函数) │
│ Reward Model ← 给回答打分(固定,不更新) │
│ Reference Model ← SFT 模型副本(固定,提供 KL 基准) │
└──────────────────────────────────────────────────────┘

PPO 训练目标

1
2
3
4
5
6
maximize  E[r_θ(x, y)] - β · KL[π_θ(y|x) || π_ref(y|x)]

其中:
r_θ(x, y) = 奖励模型给出的分数
KL(...) = 当前策略与参考策略的 KL 散度(距离惩罚)
β = KL 惩罚系数(通常 0.01 ~ 0.1)

KL 惩罚的作用:防止模型为了追求高奖励而偏离 SFT 模型太远,变成奇怪的分布(奖励黑客)。

训练流程(每次迭代)

1
2
3
4
5
6
7
8
9
10
11
1. Actor 对 prompt 采样生成回答

2. Reward Model 对回答打分

3. Reference Model 计算 KL 散度

4. Critic 估计每个 token 的优势函数(Advantage)

5. PPO-clip 更新 Actor 和 Critic 的参数

6. 重复

PPO 的痛点

PPO 虽然效果好,但工程复杂度极高:

  • 需要同时维护 4 个模型,显存压力大
  • 超参数敏感,调参困难
  • 训练不稳定,容易崩溃
  • 采样效率低

这些问题催生了更简洁的替代方案——DPO。


六、直接偏好优化(DPO)

核心思想

DPO(Direct Preference Optimization,2023)是斯坦福大学提出的方法,绕过了奖励模型和强化学习,直接从偏好数据中优化策略。

它证明了:RLHF 的最优解可以用一个封闭形式表达,进而将 RL 问题转化为一个普通的分类损失

训练目标

1
2
3
4
5
6
Loss_DPO = -E[log σ(β · log(π_θ(y_w|x)/π_ref(y_w|x))
- β · log(π_θ(y_l|x)/π_ref(y_l|x)))]

直觉理解:
增大 好回答(y_w) 相对于参考模型的概率
减小 差回答(y_l) 相对于参考模型的概率

DPO vs RLHF 对比

1
2
3
4
5
6
7
8
RLHF/PPO                          DPO
──────────────────── ──────────────────────
需要奖励模型 不需要奖励模型
需要 4 个模型并行 只需要 2 个模型(policy + reference)
强化学习优化(复杂) 监督学习优化(简单)
超参敏感、不稳定 训练稳定
计算成本高 计算成本低
效果上限高 效果略低于精调的 PPO

数据格式

1
2
3
4
5
6
{
"prompt": "如何学习机器学习?",
"chosen": "建议从数学基础开始,学习线性代数、概率统计,
然后学习 Python,再学 sklearn、PyTorch...",
"rejected": "你可以去 B 站搜索视频,随便看看就行了。"
}

DPO 的局限

  • 对参考模型(π_ref)依赖强,参考模型质量差则效果有限
  • 难以进行在线学习(需要固定的偏好对)
  • 在极复杂推理任务上效果不如 PPO

七、拒绝采样微调(RFT)

是什么

Rejection Sampling Fine-Tuning,又称 Best-of-N 微调,是一种简单而有效的方法:

1
2
3
4
5
对每个 prompt:
1. 让模型采样生成 N 个回答(N = 10 ~ 100)
2. 用奖励模型对 N 个回答打分
3. 只保留分数最高的那个
4. 用这些"精选回答"做 SFT

为什么有效

模型自己已经具备生成好答案的能力,只是概率不高。RFT 通过”精选”把高质量样本的权重放大,相当于提纯训练数据

适用场景

RFT 特别适合有明确正确答案的任务:

  • 数学题(答案对错可验证)
  • 代码(能运行且通过测试用例)
  • 结构化输出(格式是否符合 schema)

Meta 在 Llama 系列、DeepSeek 在数学推理模型中都大量使用了 RFT。


八、GRPO 与推理模型训练

推理模型的新范式

以 OpenAI o1、DeepSeek-R1 为代表的推理模型,引入了 Chain-of-Thought(思维链) 强化学习训练:

1
2
普通模型:                推理模型:
prompt → answer prompt → <think>长思考过程</think> → answer

模型在回答前先进行”内部推理”,显著提升了数学、代码、逻辑推理能力。

GRPO 算法

Group Relative Policy Optimization(DeepSeek 提出)是专门为推理模型设计的 RL 算法,简化了 PPO 中的 Critic 模型:

PPO 的优势函数估计:需要单独训练一个 Critic 网络

GRPO 的做法:对同一 prompt 采样一组回答(Group),用组内相对排名代替 Critic:

1
2
3
4
5
6
7
8
9
10
11
12
# 对同一 prompt 采样 G 个回答
responses = [model.generate(prompt) for _ in range(G)]

# 用规则/奖励模型打分
scores = [reward_fn(r) for r in responses]

# 组内归一化得到优势值
mean_score = sum(scores) / G
advantages = [(s - mean_score) / std(scores) for s in scores]

# 用归一化后的优势值更新策略
# 不再需要 Critic 网络!

奖励函数设计

推理模型的奖励函数通常是可验证的规则,而非神经网络:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def reward_fn(response, ground_truth):
rewards = []

# 格式奖励:是否有思考标签
if "<think>" in response and "</think>" in response:
rewards.append(0.1)

# 正确性奖励:答案是否正确
extracted_answer = extract_answer(response)
if extracted_answer == ground_truth:
rewards.append(1.0)
else:
rewards.append(0.0)

return sum(rewards)

这种基于规则的验证奖励完全绕开了奖励模型,避免了奖励黑客问题。


九、各方法横向对比

维度 SFT RLHF/PPO DPO RFT GRPO
数据类型 (指令, 回答) (prompt, chosen, rejected) (prompt, chosen, rejected) prompt + 验证器 prompt + 验证器
是否需要奖励模型 是(或规则) 否(或规则)
训练复杂度
计算成本
训练稳定性
效果上限 中高 中高 高(推理任务)
适用场景 通用能力 通用对齐 通用对齐 可验证任务 推理/数学/代码
代表模型 所有模型必经 InstructGPT Zephyr、Llama3 Llama2、DeepSeek DeepSeek-R1

实际工程中往往组合使用,典型流程:

1
Base Model → SFT → DPO/RLHF → RFT(数学/代码) → Chat Model

十、工程实践要点

数据质量 > 数据数量

后训练对数据质量极度敏感。业界经验:

  • 1000 条高质量数据 >> 100000 条低质量数据
  • 数据去重、清洗比扩充数量更重要
  • 需要人工抽检,防止标注错误污染模型

防止灾难性遗忘

微调时模型可能”忘记”预训练的知识,常见对策:

1
2
3
4
5
6
7
8
9
# 1. 小学习率
optimizer = AdamW(lr=1e-5) # 远小于预训练的 1e-4

# 2. 混入预训练数据(通常占 5%~10%)
dataset = mix(sft_data, pretrain_data, ratio=0.1)

# 3. LoRA 微调(只更新少量参数)
from peft import LoraConfig
lora_config = LoraConfig(r=16, lora_alpha=32, target_modules=["q_proj", "v_proj"])

LoRA 微调

对于资源有限的场景,LoRA(Low-Rank Adaptation)是主流选择:

1
2
3
4
5
全量微调:更新所有参数(7B 模型 = 280GB 梯度显存)
LoRA:只更新低秩矩阵(额外参数量 < 1%)

原始权重 W(d×d) → W + ΔW = W + A(d×r) × B(r×d)
其中 r << d,A B 是可训练的低秩矩阵

评估体系

后训练效果评估需要多维度:

1
2
3
4
5
6
7
8
9
10
自动评估:
- MT-Bench:多轮对话能力(GPT-4 打分)
- MMLU、HumanEval:知识和代码能力
- TruthfulQA:诚实性评估
- BBH:复杂推理能力

人工评估:
- 胜率(Win Rate):A/B 对比两个模型
- 绝对质量打分(1~5 分)
- 安全性红队测试(Red Teaming)

安全对齐(Constitutional AI)

Anthropic 提出的 **CAI(Constitutional AI)**方法:

1
2
3
4
5
1. 定义一套"宪法"(一组原则,如"不能帮助制作武器")
2. 让模型先生成回答
3. 让模型用宪法批判自己的回答
4. 让模型修改回答
5. 用修改后的数据做 SFT 和 RL

这种方法减少了对大量人工标注的依赖,Claude 系列模型使用了这一方法。


十一、前沿趋势

合成数据崛起

人工标注成本高、速度慢。2024 年起,业界大量使用更强的模型(如 GPT-4、Claude)生成训练数据:

1
2
3
4
5
6
7
强教师模型生成高质量回答

弱学生模型学习(蒸馏/SFT)

学生模型能力提升后再生成数据

自我迭代提升(Self-Play / Self-Improvement)

Meta 的 Llama3、阿里的 Qwen 系列都大量使用了合成数据。

长思维链训练(Long CoT)

DeepSeek-R1、Kimi k1.5 等模型证明:通过 RL 训练更长的思维链可以显著提升推理能力,且涌现出类人的”顿悟”行为(自我反思、回溯、验证)。

多模态后训练

视觉语言模型(VLM)的后训练逐渐成熟,图文理解、图文生成的对齐方法正在快速发展。

过程奖励模型(PRM)

传统的结果奖励(ORM)只看最终答案对不对,过程奖励模型(PRM)对推理的每一步打分:

1
2
3
4
ORM:最终答案正确 → +1,错误 → 0
PRM:每一步推理正确 → +0.1,错误 → -0.2

PRM 提供更密集的学习信号,对复杂推理任务效果更好

总结

1
2
3
4
5
6
7
后训练技术演进路线:

SFT(2020)
└─► RLHF/PPO(InstructGPT, 2022)
└─► DPO(2023)──► 工程简化,效果接近
└─► RFT(2023)──► 可验证任务的利器
└─► GRPO + Long CoT(DeepSeek-R1, 2025)──► 推理能力突破

后训练是让大模型从”会说话”到”会做事”、从”知识库”到”智能助手”的关键一跳。随着合成数据、过程奖励、推理时计算扩展等方向的发展,后训练仍是当前大模型研究中最活跃的领域之一。


参考资料

评论