预训练
预训练 (Pre-training)
一句话定义
预训练 = 在海量未标注文本上做 next-token prediction,让模型学习语言的联合概率分布。消耗整个训练 pipeline 90%+ 算力,产出”什么都懂一点但不听话”的基座模型 (Base Model)。
在训练 Pipeline 的位置
[数据采集] → [预训练] → [SFT] → [RLHF / DPO] → [对齐/红队] → 部署
~90% 算力 5% 3% 2%
预训练之后的所有阶段总和不到 10% 算力,但决定了模型”会不会听话、好不好用”。
数据 mix:现代主流配方
不同实验室的 mix 都是商业机密,但公开数据点(Llama-3 / DCLM / RedPajama / SmolLM2)的近似比例:
| 来源 | 占比 | 作用 |
|---|---|---|
| Web crawl(去重清洗) | 50–70% | 通用语言覆盖、世界知识广度 |
| Code(GitHub) | 10–25% | 推理能力、结构化思维 |
| Books / arXiv / papers | 5–15% | 长文本推理、专业知识 |
| Math(StackExchange、OpenWebMath) | 2–8% | 数学推理 |
| 多语言 | 5–20% | 跨语言能力(中文模型会显著提高占比) |
| 合成数据 | 0–30%(2024 起激增) | 弥补数据墙、特定能力补强 |
关键经验:code 占比与最终模型的推理能力强相关——这是为什么 Llama-3 / DeepSeek-V3 都把 code 数据拉到 25%+。
训练栈
| 层级 | 主流选项 |
|---|---|
| 硬件 | NVIDIA H100/H200/B200,TPU v5/v6 |
| 分布式策略 | FSDP(PyTorch 原生)、Megatron-LM(NVIDIA)、DeepSpeed ZeRO |
| 并行维度 | TP(Tensor)+ PP(Pipeline)+ DP(Data)+ SP(Sequence) |
| 优化器 | AdamW(主流),Lion / Sophia / Adam-mini(实验) |
| 学习率调度 | Linear warmup + Cosine decay(主流),WSD(warmup-stable-decay)2024 后兴起 |
| 精度 | BF16 训练 + FP32 累加,FP8 训练 2024 起进入主流(H100+) |
| Tokenizer | SentencePiece / BPE / Tiktoken(见 Tokenization) |
Loss 曲线与涌现
预训练 loss 曲线遵循 Scaling Laws 的幂律下降,但能力曲线不是 loss 曲线:
- Loss 平滑下降:可预测,可外推
- 能力可能阶跃涌现:算术、CoT 推理、in-context learning 等能力在某临界算力处突现
- Loss spike:训练不稳定时 loss 突跳,通常需要回退 checkpoint 重训或调小 LR;2024 起常用 z-loss、QK-norm 等技巧缓解
三阶段 Curriculum(现代实践)
| 阶段 | 数据特征 | 上下文长度 | 占比 |
|---|---|---|---|
| Phase 1: 通用预训练 | 高吞吐、多样性、低质量门槛 | 4K–8K | 85% |
| Phase 2: 高质量精训 | 高质量子集、教科书风格、合成数据 | 8K–32K | 10% |
| Phase 3: 长上下文扩展 | 长文档、code repo、合成长链路 | 128K–1M | 5% |
Llama-3 / Phi-4 / DeepSeek-V3 都采用类似的 staged curriculum。Phase 3 的存在意味着原始预训练 ≠ 长上下文能力——长上下文是单独训出来的。
重复 (Epochs) 边界
- 1 epoch:主流默认;高质量数据池足够大时无需重复
- 2–4 epochs:可接受,过拟合可控
-
4 epochs:质量开始下降,多样性损失
- 同一数据无限重复 → 模型坍塌的特殊形式
数据墙时代(c15),多 epoch + 合成数据成为必然组合。
失败模式
- Loss spike:训练不稳定 → 回退 + 调 LR + 加 z-loss/QK-norm
- 数据污染:评估集泄漏到预训练数据 → benchmark 虚高(c14 评估陷阱)
- 偏见放大:某些语料过度代表 → 输出偏见(性别、地区、政治倾向)
- 语种灾难性遗忘:某语种占比过低 → 该语种能力衰退
- 训练发散:超大模型 + 不当超参 → loss 完全无法收敛,损失千万美元算力
- 能力倒退:Phase 2/3 不当时 → 通用能力下降换取专用能力
与后续阶段的关系
- 预训练决定上限(知识广度、推理潜力、世界模型)
- SFT 决定形式(指令遵循、输出格式、风格)
- RLHF / DPO 决定偏好(拒绝、安全、有用性 trade-off)
- 详见 c04 模型训练 Pipeline
范式 转移
Test-Time Compute 把算力从预训练转向推理——预训练不再吞噬全部 budget,推理时投入更多计算做深度思考成为新维度。
PM 决策启示
- 理解供应商基座模型:是 Llama-3 / Qwen-2 / DeepSeek 哪一支?训了多少 tokens?code 占比?决定后训练上限
- 评估”长上下文”宣称:8K 模型外推到 128K 与原生 128K 训练完全是两个量级的产品;问是否走过 Phase 3
- 多语言能力:中文/小语种能力直接挂钩预训练 mix,不是 SFT 能补的
- 从头训 vs 续训:续训别人的 base 几乎总是更便宜更好;从头训只在你拥有独家高价值数据时合理
相关章节
关联概念
Scaling Laws·合成数据·SFT·RLHF·Tokenization·基座模型·数据墙