AI Research
08. 预训练与 SFT:模型是如何学会语言的
08. 预训练与 SFT:模型是如何学会语言的
前面我们讲的是模型结构。这一章讲训练流程:先在海量文本上做预训练,再用高质量指令数据做 SFT。
一、预训练目标:下一个 Token 预测
训练目标非常统一:
给定前文 x1, x2, ..., x(t-1)
预测下一个 token xt 的概率
损失函数是交叉熵:
L = -log P(xt | x1, ..., x(t-1))
例子:
输入: "法国的首都是"
真实下一个 token: "巴黎"
模型预测:
P("巴黎") = 0.70
P("伦敦") = 0.10
P("东京") = 0.02
...
损失 = -log(0.70) = 0.357
如果模型更准: P("巴黎") = 0.95
损失 = -log(0.95) = 0.051
训练就是让正确 token 的概率越来越高。
二、训练数据从哪里来
常见来源:
- 网页文本(Common Crawl)
- 书籍
- 代码仓库
- 论文
- 论坛/问答
- 多语言语料
但不是直接全喂。要经过多轮清洗:
- 去重(防止重复样本过多)
- 去低质量(乱码、广告、SEO 垃圾页)
- 去敏感/违法内容
- 语言检测与比例控制
数据质量比数据量更关键。
三、训练规模直觉
| 模型 | 参数量 | 训练 token |
|---|---|---|
| GPT-2 XL | 1.5B | ~40B |
| GPT-3 | 175B | 300B |
| Llama 3 | 70B | 15T |
量级是”万亿 token”。这也是为什么训练一次要几千万到上亿美元级别成本。
四、SFT:让模型学会”按指令回答”
预训练后的模型会续写文本,但不一定会听指令。
4.1 SFT 数据格式
用户: 请用一句话解释什么是黑洞。
助手: 黑洞是引力强到连光都无法逃逸的天体区域。
训练时通常只对”助手回答部分”计算损失,用户问题部分做 mask。
4.2 SFT 的作用
- 学会对话格式
- 学会按指令执行
- 学会安全/拒答策略
- 提升可用性和稳定性
可以把它理解为:
- 预训练 = 学”语言和世界知识”
- SFT = 学”如何当一个助手”
五、从预训练到后训练
现代流程通常是:
预训练 (Pretraining)
→ SFT
→ RL 后训练 (RLHF / GRPO / OAPL ...)
下一章我们会讲推理阶段(温度、Top-p、KV Cache)。 再下一章会系统讲 RL 后训练。
本章总结
- 预训练目标始终是”下一个 token 预测”
- 交叉熵损失衡量预测好坏
- 数据清洗和去重极其关键
- SFT 用高质量指令数据把模型变成可用助手
- 预训练学知识,SFT学行为,RL学策略
下一篇:09. 生成策略与推理优化