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)
  • 书籍
  • 代码仓库
  • 论文
  • 论坛/问答
  • 多语言语料

但不是直接全喂。要经过多轮清洗:

  1. 去重(防止重复样本过多)
  2. 去低质量(乱码、广告、SEO 垃圾页)
  3. 去敏感/违法内容
  4. 语言检测与比例控制

数据质量比数据量更关键。


三、训练规模直觉

模型参数量训练 token
GPT-2 XL1.5B~40B
GPT-3175B300B
Llama 370B15T

量级是”万亿 token”。这也是为什么训练一次要几千万到上亿美元级别成本。


四、SFT:让模型学会”按指令回答”

预训练后的模型会续写文本,但不一定会听指令。

4.1 SFT 数据格式

用户: 请用一句话解释什么是黑洞。
助手: 黑洞是引力强到连光都无法逃逸的天体区域。

训练时通常只对”助手回答部分”计算损失,用户问题部分做 mask。

4.2 SFT 的作用

  • 学会对话格式
  • 学会按指令执行
  • 学会安全/拒答策略
  • 提升可用性和稳定性

可以把它理解为:

  • 预训练 = 学”语言和世界知识”
  • SFT = 学”如何当一个助手”

五、从预训练到后训练

现代流程通常是:

预训练 (Pretraining)
  → SFT
  → RL 后训练 (RLHF / GRPO / OAPL ...)

下一章我们会讲推理阶段(温度、Top-p、KV Cache)。 再下一章会系统讲 RL 后训练。


本章总结

  1. 预训练目标始终是”下一个 token 预测”
  2. 交叉熵损失衡量预测好坏
  3. 数据清洗和去重极其关键
  4. SFT 用高质量指令数据把模型变成可用助手
  5. 预训练学知识,SFT学行为,RL学策略

下一篇:09. 生成策略与推理优化