大语言模型训练范式:从 GPT 到 Llama 的 RLHF 演进
本文整理自一次关于大语言模型训练范式的学习笔记,结合 GPT 系列与 Llama 2/3 的训练流程,梳理预训练、SFT、Reward Model、RLHF、DPO 等核心概念,并辨析自监督学习与无监督学习的关系。
一、为什么大语言模型需要"多阶段训练"?
大语言模型(LLM)并不是一次性训练完成的。如果只进行预训练,模型虽然具备强大的语言建模能力,但并不会乖乖地按照人类期望的方式回答问题;如果直接用人类标注数据进行端到端训练,又难以获得通用的世界知识和语言理解能力。
因此,现代 LLM 的训练通常被拆分为几个阶段:
- Pretrain(预训练):学习语言和世界知识,构建通用基座。
- SFT(有监督微调):让模型学会"按指令回答问题"的格式和风格。
- Reward Model / RLHF:让模型的输出对齐人类偏好,变得更"有用、无害、诚实"。
下面分别展开 GPT 和 Llama 两大家族的训练范式。
二、GPT 训练范式:Pretrain → SFT → RM → PPO
OpenAI GPT 系列(尤其是 GPT-3、InstructGPT、ChatGPT 的早期版本)的训练流程可以概括为四个阶段:
1. Pretrain:自监督预训练
预训练阶段使用大规模无标注文本,通过自回归方式训练模型:给定前 n 个 token,预测第 n+1 个 token。
训练目标可以形式化为最大化序列的联合概率:
\max_{\theta} \sum_{x \in \mathcal{D}} \log P_\theta(x_1, x_2, ..., x_T)
通过这种方式,模型在数万亿 token 的"自问自答"中,学会了语法、语义、常识、推理能力等。注意,这里的"自监督"意味着数据本身既是输入,又是标签——不需要人工标注,模型自己预测下一个 token 即可。
2. SFT:有监督微调
预训练后的模型虽然能续写文本,但不一定能按照用户的指令给出高质量回答。因此,需要用小规模的"一问一答"人工标注数据对模型进行微调。
SFT 的训练目标很简单:对于输入 prompt x 和期望输出 y,最大化 P_\theta(y|x)。可以理解为让模型模仿人类给出的优质回答。
3. Reward Model:奖励模型(更像"评委")
SFT 之后,模型已经能给出像样地回答,但质量参差不齐。此时需要引入一个奖励模型(Reward Model, RM)来评分。
训练 RM 的典型做法是:
- 用 SFT 后的模型对同一问题生成 4 个不同答案;
- 让人类标注员对这 4 个答案进行排序或打分;
- 用这些偏好数据训练一个独立的评分模型。
关键点:RM 不是生成模型,也不是 LLM 的"对抗对手",而是一个独立的评分器/评委。它学会的是"人类更喜欢哪种回答"。
4. PPO:基于 RLHF 的强化学习优化
有了 RM 后,就可以用强化学习来进一步训练 LLM。OpenAI 使用的是PPO(Proximal Policy Optimization),一种稳定、高效的策略梯度算法。
RLHF(Reinforcement Learning from Human Feedback)= 强化学习(RL)+ 人类反馈(HF)。RM 是 RLHF 的核心组件:它为 LLM 生成的回答打分,引导 LLM 生成人类更喜欢的回答。
三、Llama 训练范式:Pretrain → SFT → RM → Rejection Sampling → RLHF → DPO
Meta 的 Llama 系列在 GPT 范式基础上做了扩展,尤其是 Llama 2 引入了Rejection Sampling(拒绝采样)环节,Llama 3 又加入了DPO(Direct Preference Optimization)。
1. Pretrain
与 GPT 类似,使用大规模文本进行自回归预训练,学习通用表示能力。
2. SFT
使用高质量指令数据进行有监督微调,让模型学会对话和指令遵循能力。
3. Reward Model
训练一个奖励模型,用于评估模型输出的质量。
4. Rejection Sampling:拒绝采样生成高质量 SFT 数据
这是 Llama 2 相比 GPT 的一个重要区别。它的核心思想是:用已经训练好的 RM,自动生成更多高质量的"问答对",再回喂给 SFT。
具体流程:
- 针对一个 prompt,让当前模型采样生成 K 个候选回答;
- 用 RM 对每个候选回答打分;
- 选出分数最高的那个回答(best-of-K);
- 将这个 (prompt, best\_answer) 对加入 SFT 训练数据,再次微调模型。
注意:Rejection Sampling 必须在训练好 RM 之后才能进行,否则没有评分依据。
5. RLHF:Rejection Sampling + PPO
Llama 2 的 RLHF 阶段结合了 Rejection Sampling 和 PPO,让模型在探索与利用之间取得平衡,持续提升输出质量。
6. DPO(Direct Preference Optimization):Llama 3 的新加入
Llama 3 在 RLHF 之后进一步加入了DPO(直接偏好优化)。
DPO 是一种不依赖显式奖励模型的对齐方法。它直接使用人类偏好数据,通过对比"被偏好的回答"和"不被偏好的回答"来优化策略模型。相比 PPO,DPO 更简单高效,训练更稳定,近年来被广泛应用于开源模型对齐。
四、关键概念辨析
1. SFT 和 RL 的区别
| 维度 | SFT(有监督微调) | RL(强化学习) |
|---|---|---|
| 训练数据 | 一问一答的成对数据 | 奖励信号 / 偏好信号 |
| 优化目标 | 让模型输出尽可能接近标准答案 | 让模型输出获得更高的奖励分数 |
| 学习方式 | 模仿学习 | 探索-反馈-优化 |
| 典型算法 | 交叉熵损失 | PPO、DPO、RLHF |
简单来说:SFT 是"照着答案学",RL 是"根据评分自己摸索更好答案"。
2. 自监督学习与无监督学习的区别
这是很多人容易混淆的一对概念。
无监督学习(Unsupervised Learning)的核心假设是:数据本身在空间中具有分布规律,算法不需要知道样本的类别标签,只需要衡量样本之间的相似度或距离,进行聚类、降维、密度估计等。
自监督学习(Self-supervised Learning)的精妙之处在于:把无监督问题转化为监督学习的架构。它通过构造"预训练任务(Pretext Task)",让数据自己生成标签:
- 在 NLP 中,典型做法是Mask Language Model或Next Token Prediction:遮住文本的一部分,让模型预测被遮住的内容;
- 在 CV 中,典型做法包括预测图像旋转角度、拼图顺序、掩码像素等。
训练完成后,模型学到的通用表征能力可以迁移到各种下游任务(Downstream Task),只需要少量标注数据进行微调即可取得出色效果。
关系总结:自监督学习可以看作是无监督学习的一种延伸或特殊形式——它同样不需要人工标注,但巧妙地通过数据自身构造了监督信号。近年来的大模型(如 GPT、BERT、Llama)正是靠自监督预训练,才获得了海量的通用知识。
五、总结
大语言模型的训练是一个由浅入深、由通用到对齐的过程:
- Pretrain让模型"懂语言、懂世界";
- SFT让模型"学会回答问题的格式";
- Reward Model让模型知道"什么是好回答";
- RLHF / PPO / DPO让模型主动优化,对齐人类偏好;
- Rejection Sampling则提供了一条自动生成高质量训练数据的路径。
理解这些训练范式,不仅能帮助我们更好地使用 LLM,也能在构建自己的 Agent 应用时,做出更合理的选型与优化决策。
参考:
- OpenAI InstructGPT / ChatGPT 相关论文与技术博客
- Llama 2 / Llama 3 技术报告
- RLHF、PPO、DPO 相关论文
本文为个人学习整理,如有疏漏,欢迎指正。