2023年9月2日

基座模型 vs 指令模型

基座模型通过预测下一个 token 学会了语言的统计规律,指令模型在此基础上经过 SFT 和偏好对齐(RLHF/DPO)学会按人类期望的方式使用这些知识。

知识库大模型训练与对齐llmpretrainingbase-modelinstructalignmentRLHFDPO

先说结论

基座模型通过预测下一个 token 学会了语言的统计规律,指令模型在此基础上经过 SFT 和偏好对齐(RLHF/DPO)学会按人类期望的方式使用这些知识。

为什么我会单独记这一篇

一个训练好的基座模型(如 LLaMA-3-8B)虽然"知道"很多,但不会按人的期望行事。你问"What is the capital of France?"它可能接着写"What is the capital of Germany?"(续写),而不是回答"Paris"。这带来了三个核心问题:

  1. 可控性问题:如何让模型遵循指令而非随意续写?
  2. 安全性问题:如何防止模型生成有害、偏见或虚假内容?
  3. 实用性问题:如何让模型以对话格式交互,而非单向文本补全?

这三个问题合在一起被称为 Alignment(对齐)——让模型的行为与人类意图和价值观对齐。

先把核心脉络捋清楚

Base Model(基座模型)

  • 训练阶段:仅经过预训练(Pretraining)
  • 训练目标:下一个 token 预测(CLM)
  • 行为特征
    • 续写文本而非回答问题
    • 没有安全约束
    • 输出不可预测
    • 能力"潜在"但不可控
  • 命名惯例:通常没有后缀,如 meta-llama/Llama-3-8B
  • 用途:作为下游微调的起点,或用于研究

Instruct Model(指令模型 / 聊天模型)

  • 训练阶段:Pretraining → SFT → Preference Alignment
  • 行为特征
    • 遵循指令回答问题
    • 有基本的安全约束
    • 以对话格式交互
    • 输出更可预测和可控
  • 命名惯例:通常带 InstructChat 后缀,如 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)

  1. 收集偏好数据:对同一个 prompt 生成多个 response,由人类标注者排序
  2. 训练 Reward Model(RM):学习预测人类偏好得分
  3. 用 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 发布

实际工程考虑

  1. SFT 数据质量至关重要:Lima (Zhou et al., 2023) 证明 1000 条高质量数据可能优于 5 万条普通数据
  2. 偏好数据需要多样性:覆盖不同任务类型、难度和回答风格
  3. 多轮对齐:Llama 3 报告中进行了多轮 SFT → DPO → SFT 的迭代
  4. 数据混合:对齐阶段也需要混入通用能力数据,防止 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 的偏见

容易踩的坑

  1. 把 Base Model 当 Instruct Model 用:输出不可控、续写而非回答、无安全约束
  2. 把 Instruct Model 当 Base Model 微调:在 Instruct Model 上做大量领域微调可能破坏对齐
  3. SFT 数据质量低:模型学到错误格式或低质量回答模式
  4. Reward Hacking(RLHF 中):策略模型找到 RM 的漏洞,生成高分但无意义的回答
  5. 过度对齐(Over-alignment):模型变得过度保守,对正常问题也拒绝回答
  6. 忽略 Chat Template:用错误的格式化方式导致模型困惑

工程落地时我会怎么做

  1. 部署给终端用户必须用 Instruct Model,Base Model 只用于研究和下游微调
  2. 领域适配优先考虑 Instruct Model + 轻量微调(如 LoRA),而非从头训练
  3. SFT 数据投入 80% 精力在质量审核上,而非数量
  4. 用 DPO 作为对齐的默认选择,除非有特殊原因必须用 RLHF
  5. 定期做红队测试(red-teaming):尝试让模型生成有害内容,评估安全边界
  6. 关注 refusal rate:对齐后模型是否对正常问题也过度拒绝

如果要对外讲,可以怎么概括

Base Model 和 Instruct Model 的区别在于后训练管线。Base Model 只做了预训练(CLM),善于续写文本但不会"回答问题"。Instruct Model 经历了 Pretraining → SFT → DPO/RLHF 三阶段。SFT 教模型以对话格式回应指令,DPO/RLHF 通过人类偏好数据让模型的回答更符合期望。关键 trade-off 是对齐强度 vs 能力保留——过度对齐会让模型变得"胆小"。当前工程实践中,DPO 因其简单性和稳定性已基本取代 RLHF 成为默认选择。

最后记几条

  1. Base Model 续写,Instruct Model 回答——本质区别
  2. 三阶段管线:Pretraining → SFT → Preference Alignment
  3. DPO 已取代 RLHF 成为 2024 主流——更简单、更稳定
  4. SFT 数据质量 >> 数量:1000 条精心标注 > 5 万条自动生成
  5. 过度对齐是新风险:模型变得过度保守,对正常问题也拒绝回答

延伸阅读

参考资料

  • 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)

---