大模型的预训练、指令微调和对齐分别解决什么问题?
简化版
预训练让模型通过海量文本的下一个 token 预测获得语言与知识能力;指令微调让模型学会按人类指令完成任务;偏好对齐让回答更符合有用、诚实和安全等人类偏好。三者分别解决“会不会”“听不听得懂要求”和“回答是否合适”。
详细版
典型训练流程包括:
- 预训练(Pretraining):使用大规模无标注语料做自监督语言建模,学习语言规律、世界知识和通用模式;
- 监督微调(SFT):使用高质量“指令—回答”样本训练,让模型遵循指令、适应对话格式;
- 偏好对齐:通过 RLHF、RLAIF、DPO 等方法,利用成对偏好或奖励信号,使输出更符合人类期望;
- 可选领域适配:继续预训练或微调专业数据,增强法律、医疗、代码等领域能力。
预训练消耗绝大部分算力,决定能力上限;后训练数据量较小,却会显著改变模型的行为方式。对齐通常不会凭空注入大量知识,过强对齐还可能损害原有能力。
完整版教学
一、预训练为什么不需要人工逐条标注
文本本身就提供监督信号:给出前缀,后面的 token 就是标签。模型最小化预测分布与真实 token 之间的交叉熵。海量数据让它逐渐学习词法、语法、事实关联、代码结构甚至常见推理模式。
预训练模型本质上擅长续写,不一定知道用户是在提问,也不保证按要求输出。它可能续写网页、角色对白或多个问答轮次,这就是后训练存在的原因。
二、SFT 教模型如何响应
SFT 数据通常包含系统指令、用户输入和理想回答。训练仍是 token 级交叉熵,只是损失往往主要计算在助手回答部分。高质量、多样且边界清晰的数据比盲目堆量更重要。
SFT 能教会格式、风格、任务模式和一定的新知识,但数据过窄会造成灾难性遗忘或能力偏科。参数高效微调 LoRA 常用于降低领域 SFT 成本。
三、RLHF 的基本链路
经典 RLHF 包含三步:
- 对同一提示生成多个候选回答;
- 人类标注偏好顺序,据此训练奖励模型;
- 用强化学习优化策略模型,同时约束它不要偏离参考模型太远。
奖励模型把“人更喜欢哪个回答”压缩为分数。强化学习会寻找高分输出,但也可能钻奖励漏洞,所以需要 KL 约束、数据审查和持续评估。
四、DPO 为什么流行
DPO 直接利用“偏好回答优于拒绝回答”的成对数据优化模型,不必单独训练奖励模型并在线跑强化学习。它实现更简单、训练更稳定,但仍高度依赖偏好数据质量,也不是所有场景都优于 RLHF。
RLAIF 则用更强模型或规则提供偏好反馈,可降低人工成本,但会继承评审模型的偏见和盲区。
五、能力与行为要分开看
预训练获得的是底层能力,SFT 和偏好对齐主要塑造能力的调用方式。模型拒答不代表不知道,能流畅回答也不代表事实正确。评估时要分别测知识、推理、指令遵循、安全和风格,不能用单一分数概括。
六、领域数据放在哪个阶段
- 大量原始专业文本:适合继续预训练;
- 高质量任务示例:适合 SFT;
- 回答风格或风险偏好:适合偏好对齐;
- 需要频繁更新、可追溯的知识:更适合 RAG,而不是反复微调。
微调主要改变模型参数中的行为与模式,RAG 则在推理时提供外部证据,两者解决的问题不同。
七、面试拆解算例
预训练题最好落到预算账和稳定性账。假设训练一个 7B 模型,目标 token 数是 1T,按常见粗估 6 × 参数量 × token 数,训练计算量约为 6 × 7e9 × 1e12 = 4.2e22 FLOPs。如果有效集群算力是 1e18 FLOPs/s,理想情况下也要约 42,000 秒;现实还要扣通信、数据加载、checkpoint 和故障恢复的损耗。
training_flops ≈ 6 * N * D
N = 7e9 parameters
D = 1e12 tokens
training_flops ≈ 4.2e22
| 账本 | 关键变量 | 常见瓶颈 | 排查信号 |
|---|---|---|---|
| 数据账 | token 数、重复率、质量分 | 脏数据和污染 | eval 异常偏高 |
| 算力账 | GPU 数、利用率、通信 | MFU 低 | step time 抖动 |
| 显存账 | batch、序列长、优化器状态 | OOM | 激活占用过高 |
| 稳定性账 | 学习率、精度、梯度 | loss spike | overflow/NaN |
语料 -> 清洗去重 -> tokenization -> 分布式训练 -> checkpoint -> 评测
| | | | |
质量 覆盖率 吞吐 可恢复 能力验证
所以回答「大模型的预训练、指令微调和对齐分别解决什么问题?」时,不能只说某个技巧“省显存”或“加速”。要说明它省的是哪一笔账、牺牲了什么、线上训练日志里应该观察哪个信号。
八、常见误区与追问
- 误区:预训练只要堆更多数据和更多 GPU 就行。 数据质量、学习率、并行策略、稳定性监控和断点恢复同样决定训练是否有效。
- 追问:这个阶段最怕什么失败信号? 要能说出 loss 异常、梯度溢出、吞吐下降、数据污染、重复样本或显存碎片等具体风险。
- 误区:训练技巧只影响速度,不影响模型质量。 精度格式、batch 组织、调度策略和数据配比都会改变优化路径,进而影响最终能力。
- 追问:如果资源预算减半,你会先动哪里? 合理答案通常从模型大小、token 数、数据质量、并行切分和训练时长之间权衡,而不是简单砍 batch。
- 误区:离线 loss 下降就代表模型一定更好。 还要看下游评测、长尾能力、安全性、重复率和过拟合迹象,单一曲线不能代表全部效果。
九、加强记忆
预训练像读遍图书馆,建立知识和语言能力;SFT 像做示范课,教它听指令;偏好对齐像行为规范,告诉它什么回答更受欢迎、更安全。