先说结论
基座模型通过预测下一个 token 学会了语言的统计规律,指令模型在此基础上经过 SFT 和偏好对齐(RLHF/DPO)学会按人类期望的方式使用这些知识。
为什么我会单独记这一篇
一个训练好的基座模型(如 LLaMA-3-8B)虽然"知道"很多,但不会按人的期望行事。你问"What is the capital of France?"它可能接着写"What is the capital of Germany?"(续写),而不是回答"Paris"。这带来了三个核心问题:
- 可控性问题:如何让模型遵循指令而非随意续写?
- 安全性问题:如何防止模型生成有害、偏见或虚假内容?
- 实用性问题:如何让模型以对话格式交互,而非单向文本补全?
这三个问题合在一起被称为 Alignment(对齐)——让模型的行为与人类意图和价值观对齐。
先把核心脉络捋清楚
Base Model(基座模型)
- 训练阶段:仅经过预训练(Pretraining)
- 训练目标:下一个 token 预测(CLM)
- 行为特征:
- 续写文本而非回答问题
- 没有安全约束
- 输出不可预测
- 能力"潜在"但不可控
- 命名惯例:通常没有后缀,如
meta-llama/Llama-3-8B - 用途:作为下游微调的起点,或用于研究
Instruct Model(指令模型 / 聊天模型)
- 训练阶段:Pretraining → SFT → Preference Alignment
- 行为特征:
- 遵循指令回答问题
- 有基本的安全约束
- 以对话格式交互
- 输出更可预测和可控
- 命名惯例:通常带
Instruct、Chat后缀,如meta-llama/Llama-3-8B-Instruct
三阶段训练管线
Stage 1: Pretraining(预训练)
- 参见 预训练目标
- 产出 Base Model
- 训练数据:万亿级 token 的网页/书籍/代码混合语料
- 损失函数:标准交叉熵
Stage 2: Supervised Fine-Tuning(SFT / 监督微调)
- 数据:高质量的 (prompt, response) 对,通常数万到数十万条
- 来源:人工标注、GPT-4 生成(蒸馏)、开源数据集(如 Open-Orca, Alpaca)
- 训练:标准 fine-tuning,教模型"怎么回答问题"
- 关键:数据质量 >> 数据数量,少量高质量数据效果远胜大量低质量数据
- 格式:使用 chat template 格式化,参见 分词器
Stage 3: Preference Alignment(偏好对齐)
RLHF(Reinforcement Learning from Human Feedback)
- 收集偏好数据:对同一个 prompt 生成多个 response,由人类标注者排序
- 训练 Reward Model(RM):学习预测人类偏好得分
- 用 RL 优化策略模型:用 PPO(Proximal Policy Optimization)最大化 RM 分数,同时加 KL 散度惩罚防止偏离 SFT 模型太远
流程:Base Model → SFT → SFT Model → (收集偏好数据 → 训练 RM → PPO 优化) → Instruct Model
DPO(Direct Preference Optimization)
- Rafailov et al. (2023) 提出
- 核心创新:跳过 RM 训练,直接用偏好数据优化策略模型
- 数学直觉:在 RLHF 的理论框架中,最优策略有一个解析解。DPO 直接利用这个解析解,将 RL 问题转化为简单的分类损失
- 优势:
- 实现更简单(不需要训练 RM)
- 训练更稳定(不涉及 RL 的 reward hacking)
- 计算成本更低
- 已成为 2024 年的主流选择:Llama 3、Mistral、Qwen 等都用 DPO 或其变体
其他对齐方法
| 方法 | 特点 |
|---|---|
| RLOO | RLHF 的改进变体,更稳定的方差缩减 |
| KTO | 只需要好/坏标签而非成对偏好 |
| ORPO | 将 SFT 和对齐合并为一步 |
| RLHAIF | 用 AI 反馈替代人类反馈(constitutional AI) |
| Constitutional AI (CAI) | Anthropic 提出的用 AI 自我批评和对齐 |
原理拆开看
为什么 Base Model 不会"回答问题"?
Base Model 的训练目标是 P(x_t | x_1, ..., x_{t-1}),即无条件地预测下一个 token。当输入是 "What is the capital of France?" 时,模型看到的只是一个以问号结尾的句子。在训练数据中,以问号结尾的句子后面跟着的内容多种多样——可能是另一个问题、一段解释、一个换行。模型学到的是这种边际分布,而非"回答问题"。
SFT 做的事情是条件化:通过在 (instruction, response) 对上微调,模型学会了在"以指令开头的上下文"中,合适的条件分布是什么。
RLHF 的数学框架
RLHF 的目标是最大化:
maximize E[R(x, y)] - β * KL[π_θ || π_ref]
- R(x, y):Reward Model 给出的奖励
- π_θ:当前策略
- π_ref:SFT 模型(参考策略)
- β:KL 惩罚系数
KL 惩罚防止策略模型偏离 SFT 模型太远(避免 reward hacking)。
DPO 的核心等价关系
DPO 的关键数学洞察是:RLHF 的最优策略可以显式地表示为:
π*(y|x) ∝ π_ref(y|x) * exp(r(x,y) / β)
将 reward 表示为两个策略的比值代入后,DPO 的损失函数变为:
L_DPO = -E[log σ(β * (log π_θ(y_w|x)/π_ref(y_w|x) - log π_θ(y_l|x)/π_ref(y_l|x)))]
其中 y_w 是偏好数据中的优选响应,y_l 是较差响应。
放到工程里怎么落
典型的 Instruct Model 训练管线(以 Llama 3 为例)
Pretraining (15T tokens)
↓
SFT (数万条高质量对话数据)
↓
DPO/RLHF (数十万条偏好数据,多轮迭代)
↓
Safety Alignment (红队测试 + 安全微调)
↓
Instruct Model 发布
实际工程考虑
- SFT 数据质量至关重要:Lima (Zhou et al., 2023) 证明 1000 条高质量数据可能优于 5 万条普通数据
- 偏好数据需要多样性:覆盖不同任务类型、难度和回答风格
- 多轮对齐:Llama 3 报告中进行了多轮 SFT → DPO → SFT 的迭代
- 数据混合:对齐阶段也需要混入通用能力数据,防止 catastrophic forgetting
与相邻概念的区别
| 概念 | 区别 |
|---|---|
| 预训练目标 | 预训练产出 Base Model,SFT/RLHF 产出 Instruct Model |
| 后训练新趋势 | CPT 是在 base model 上继续预训练,不涉及对齐 |
| Domain-Specific Fine-Tuning | 在 Instruct Model 上做领域微调,保留对齐能力 |
设计时真正要权衡什么
| 取舍 | 分析 |
|---|---|
| Base vs Instruct 作为微调起点 | Base 灵活但需自己处理对齐;Instruct 保留安全约束但可能遗忘 |
| RLHF vs DPO | DPO 更简单稳定,RLHF 上限可能更高(但更难调) |
| SFT 数据量 | 1000 条高质量 > 50000 条低质量(Lima 结论) |
| 对齐强度 vs 能力保留 | 过度对齐可能"阉割"模型能力(过度安全 = refusals 太多) |
| 是否用模型蒸馏 | 用 GPT-4 生成 SFT 数据高效但可能引入 GPT-4 的偏见 |
容易踩的坑
- 把 Base Model 当 Instruct Model 用:输出不可控、续写而非回答、无安全约束
- 把 Instruct Model 当 Base Model 微调:在 Instruct Model 上做大量领域微调可能破坏对齐
- SFT 数据质量低:模型学到错误格式或低质量回答模式
- Reward Hacking(RLHF 中):策略模型找到 RM 的漏洞,生成高分但无意义的回答
- 过度对齐(Over-alignment):模型变得过度保守,对正常问题也拒绝回答
- 忽略 Chat Template:用错误的格式化方式导致模型困惑
工程落地时我会怎么做
- 部署给终端用户必须用 Instruct Model,Base Model 只用于研究和下游微调
- 领域适配优先考虑 Instruct Model + 轻量微调(如 LoRA),而非从头训练
- SFT 数据投入 80% 精力在质量审核上,而非数量
- 用 DPO 作为对齐的默认选择,除非有特殊原因必须用 RLHF
- 定期做红队测试(red-teaming):尝试让模型生成有害内容,评估安全边界
- 关注 refusal rate:对齐后模型是否对正常问题也过度拒绝
如果要对外讲,可以怎么概括
Base Model 和 Instruct Model 的区别在于后训练管线。Base Model 只做了预训练(CLM),善于续写文本但不会"回答问题"。Instruct Model 经历了 Pretraining → SFT → DPO/RLHF 三阶段。SFT 教模型以对话格式回应指令,DPO/RLHF 通过人类偏好数据让模型的回答更符合期望。关键 trade-off 是对齐强度 vs 能力保留——过度对齐会让模型变得"胆小"。当前工程实践中,DPO 因其简单性和稳定性已基本取代 RLHF 成为默认选择。
最后记几条
- Base Model 续写,Instruct Model 回答——本质区别
- 三阶段管线:Pretraining → SFT → Preference Alignment
- DPO 已取代 RLHF 成为 2024 主流——更简单、更稳定
- SFT 数据质量 >> 数量:1000 条精心标注 > 5 万条自动生成
- 过度对齐是新风险:模型变得过度保守,对正常问题也拒绝回答
延伸阅读
-
预训练目标 — Base Model 的预训练目标
-
分词器 — Chat Template 是 Base 和 Instruct 的格式桥梁
-
后训练新趋势 — 另一种 Base Model 的后训练路径
参考资料
- Ouyang et al., "Training language models to follow instructions with human feedback" (InstructGPT, NeurIPS 2022)
- Rafailov et al., "Direct Preference Optimization: Your Language Model is Secretly a Reward Model" (NeurIPS 2023)
- Zhou et al., "Lima: Less Is More for Alignment" (NeurIPS 2023)
- Bai et al., "Training a Helpful and Harmless Assistant with RLHF" (Anthropic, 2022)
- Bai et al., "Constitutional AI: Harmlessness from AI Feedback" (Anthropic, 2022)
- Dubey et al., "The Llama 3 Herd of Models" (Meta, 2024)
---