预训练全流程:数据、算力、Scaling Law 实战拆解
预训练全流程:数据、算力、Scaling Law 实战拆解
《大模型知识与部署》系列 · No.06 / 35(训练与微调篇开篇)
适合人群:AI 工程师、后端开发
阅读时间:约 25 分钟

写在前面
入门认知篇五篇走完,我们建立起了大模型工程的基础心智模型。从这一篇开始,我们正式进入训练与微调篇(第 6-10 篇)。
第一站是预训练。
很多 AI 工程师会说:「我又不会从零训大模型,看这个干嘛?」
这句话的前半句基本正确——能从零训 70B 以上模型的团队全国不超过两位数。但后半句"看这个干嘛",是一个昂贵的误判。
预训练是整个 LLM 工程栈的地基。即便你不亲自训练,你也需要懂它,因为:
- 选模型时——同一规模下,为什么 Qwen 中文好、DeepSeek 推理强、Llama 通用?答案在训练数据配方和算力配置里
- 做 SFT 时——你能微调出什么效果,80% 取决于基座。基座的能力边界来自预训练
- 看技术新闻时——DeepSeek V3 用 557 万美元做出顶级模型,背后的工程细节决定了你接下来能不能复用同样的红利
- 做继续预训练(Continued Pretraining)时——这就是 SFT 之外的另一条"领域适配"路径,工程师亲自上手的概率非常高
- 判断闭源价格趋势时——训练成本变化直接决定 API 价格
读完本文,你将能:
- 用工程语言讲清预训练的"数据、算力、算法"三大支柱
- 看懂一个大模型训练报告里的关键数字(数据量、算力、配比、训练目标)
- 理解 Scaling Law 与 Chinchilla 定律对工程决策的指导意义
- 拆解 DeepSeek V3「557 万美元」背后的具体工程优化
我们开始。
一、预训练在整个 LLM 工程栈的位置
回顾第 1 篇我们画过的全景图:
预训练 → SFT → 对齐 → 推理优化 → 部署服务化 → 应用
这一系列里,预训练是第一步,也是成本最高的一步。
| 阶段 | 算力占比 | 工程师参与度 |
|---|---|---|
| 预训练 | 90%+ | 极少(一线 SOTA 团队) |
| SFT | 5-8% | 中等(业务团队) |
| 对齐(RLHF/DPO) | 1-3% | 中等 |
| 推理 | 持续,累积超过训练 | 高 |
虽然工程师参与度不高,但预训练决定了后续所有工作的上限。你训出的模型有多大能力空间、能不能在多语言、代码、数学、推理这些维度有好底子——都是预训练阶段决定的。
这就是为什么"模型选型"在工程上等价于"判断别人的预训练做得怎么样"。下面我们就来看,预训练到底是什么决定了什么。
二、预训练的三大支柱
预训练这件事,可以用三个词概括:数据、算力、算法。
我们一个一个看。
2.1 数据:决定模型"知道什么"
数据量:万亿 Token 级别
主流大模型预训练数据量级(约略):
| 模型 | 训练数据 | 备注 |
|---|---|---|
| GPT-3 (2020) | 0.5T tokens | 当时震撼 |
| LLaMA-1 (2023) | 1.4T | 开启开源 |
| Llama 2 (2023) | 2T | 商用开源 |
| Llama 3 (2024) | 15T | 大量代码 + 多语言 |
| Qwen 3 (2025) | ~18T | 中文 + 代码 + 推理 |
| DeepSeek V3 (2024) | 14.8T | 配方精细化 |
15T tokens 意味着什么?粗略估算:
- 互联网上所有公开文本:~20T tokens(CommonCrawl 全量)
- 维基百科全语种 ≈ 30 B tokens
- 英文 + 中文图书:~10T tokens
业界现状:高质量数据接近"枯竭",未来增量主要来自——合成数据、私有数据、多模态数据。
数据质量:第一护城河
经过 LLaMA 系列的反复验证,行业的共识是:
数据质量比数据量更重要。
Phi 系列就是一个极端例子——3.8B 参数,用微软精心合成的"教科书级数据"训练,能力超过早期 7B-13B 模型。
数据清洗 Pipeline
工业级预训练数据 pipeline 通常包括 5 步:
原始爬取 → 去重 → 质量过滤 → 安全过滤 → 个人信息脱敏
↓
训练数据
1. 去重:MinHash / SimHash / FuzzyDedup。CommonCrawl 中 50%+ 内容是重复的,不去重训练效率极低。
2. 质量过滤:
- Rule-based:长度、特殊字符、HTML 残留、乱码
- Perplexity 过滤:用小模型给文本打 PPL 分,剔除"看着像噪声"的内容
- 分类器过滤:训一个"是否高质量"的分类器(Llama 3 这么做)
3. 安全过滤:色情、暴力、自我伤害等内容剔除。
4. PII 脱敏:身份证、手机号、邮箱等个人信息替换或删除。
5. 数据配比:决定模型偏科还是均衡。
数据配比:决定模型「偏哪边」
不同模型的训练数据配比天差地别,直接决定了模型在不同任务上的强弱:
| 模型 | 英文 | 中文 | 代码 | 数学 / 推理 | 其他语言 |
|---|---|---|---|---|---|
| Llama 3 | 80%+ | <5% | 10%+ | 部分 | 5-10% |
| Qwen 3 | ~50% | ~30% | 15% | 5% | 少量 |
| DeepSeek V3 | ~60% | ~20% | 15%+ | 显著加强 | 少量 |
| Phi-4 | 主合成 | 少量 | 大量 | 大量 | 几乎无 |
关键认知:
- Qwen 中文好:因为训练数据中文占比是 Llama 的 6 倍以上
- DeepSeek 数学/代码强:训练数据里数学和代码占比刻意加重
- Phi 数学强:合成大量数学练习题作为训练数据
- Llama 通用但中文弱:数据配比英文为主
这也是为什么"选模型"几乎等于"选训练数据配方"——模型在某类任务上的天花板,预训练阶段就已经定了。
👉 数据工程细节详见 系列第 10 篇:训练数据工程。
2.2 算力:决定模型「能多大」
算力的量级
预训练算力消耗以 GPU 小时(GPU·hour) 计量。主流大模型公开数据:
| 模型 | 训练算力 | 折算成本(@ $2/H100 小时) |
|---|---|---|
| GPT-3 (175B) | ~3.5K A100·年 | ~$5M(按当时算力价) |
| Llama 2-70B | ~1.7M H100·小时 | ~$3.4M |
| Llama 3-70B | ~6.4M H100·小时 | ~$13M |
| Llama 3-405B | ~30M H100·小时 | ~$60M |
| DeepSeek V3 (671B) | 2.79M H800·小时 | $5.6M |
| GPT-4 (估算) | ~50M H100·小时 | ~$100M |
可以看出,模型规模上去后,训练算力呈现指数级增长。
GPU 集群规模
主流大模型的训练规模:
| 团队 | 集群规模 | 主要芯片 |
|---|---|---|
| OpenAI | 50K+ H100 | H100 / H200 |
| Anthropic | 30K+ Trainium / H100 | TPU / H100 |
| 50K+ TPU v5p/v6e | TPU | |
| Meta | 60K+ H100 (Llama 4) | H100 |
| 阿里 / 字节 | 万卡级 | H800 / 910B |
| DeepSeek | 2K H800 (V3 训练) | H800 |
⚠️ 注意 DeepSeek V3 的特殊性:它只用了 2 千卡就训完了 671B 模型——这是工程极致优化的结果。
集群网络
万卡集群的瓶颈不是 GPU 算力,而是 网络带宽:
- 节点内(一台机器 8 卡):NVLink,900 GB/s
- 节点间(机器互联):InfiniBand 400Gb/s 或 RoCE
- 跨机房(多机房训练):DCN(Data Center Network),通常 100Gb/s
集群网络拓扑设计是大模型训练的一门独立工程学科。网络好不好直接决定了万卡能不能开到 90%+ 的实际利用率。
国产卡:另一条路
| 芯片 | 厂商 | FP16 算力 | 显存 | 备注 |
|---|---|---|---|---|
| H100 SXM | NVIDIA | 989 TFLOPS | 80 GB | 行业基准 |
| H200 | NVIDIA | 989 TFLOPS | 141 GB | 长上下文友好 |
| B200 | NVIDIA | 2.25 PFLOPS | 192 GB | 2024 最新 |
| Ascend 910B | 华为 | ~376 TFLOPS | 64 GB | 国产主力 |
| Ascend 910C | 华为 | ~700 TFLOPS | 128 GB | 2024-2025 新版 |
👉 GPU 详细对比见 系列第 21 篇:GPU 选型指南。
2.3 算法:Scaling Law 决定「怎么花算力」
数据和算力是"资源",Scaling Law 是花资源的"规则"。
Kaplan Scaling Law(2020)
OpenAI 在 GPT-3 论文中提出:
模型 Loss 随参数量 N、数据量 D、算力 C 呈幂律下降:
L ∝ N^-0.076 · D^-0.095 · C^-0.05
这意味着:
- 把模型参数翻倍,Loss 下降幅度可预测
- 算力投入越多,效果越好
- 没有看到"收益拐点"
这条 Law 给了行业极大信心——只要继续堆参数堆数据,模型就会继续变强。GPT-4、Claude、Gemini 都建立在这个信念上。
Chinchilla 定律(DeepMind 2022)
DeepMind 团队进一步实验后发现:
算力固定时,最优的训练数据量 ≈ 20 × 参数量。
这就是 Chinchilla 定律,也被称为「20×token 法则」。
它纠正了 Kaplan Law 的一个偏差——以前业界倾向于"模型很大,数据相对小",Chinchilla 证明这其实是算力浪费。
Chinchilla 给出的"性价比最优"配方:
给定算力 C:
最优参数量 N ≈ √(C / 120)
最优数据量 D ≈ 20 × N
训练总 FLOPS ≈ 6 × N × D
实操对照:
- 想做 7B 模型?至少喂 140B tokens
- 想做 70B 模型?至少喂 1.4T tokens
- 想做 671B 模型?至少喂 13.4T tokens(DeepSeek V3 用 14.8T,符合 Chinchilla)
"过度训练"成为新趋势
2024 年之后,很多模型主动超过 Chinchilla 比例——Llama 3-8B 用了 15T tokens,相当于 1875×参数比。
为什么?因为推理成本远高于训练成本:
- 训练成本:一次性
- 推理成本:随业务量持续
把训练阶段多花的钱(多喂数据)换成"模型小一点但能力相当",推理阶段省回来。这就是 Llama 3-8B 能干掉 Llama 2-70B 的核心原因之一。
涌现能力(Emergent Ability)
Scaling Law 描述的是"平滑"的提升,但实际中观察到一个奇特现象:某些能力在模型超过某个规模后突然出现。
| 能力 | 涌现阈值(估算) |
|---|---|
| In-Context Learning | ~10B |
| 数学多步推理 | ~30B |
| 代码生成 | ~7B (有专门训练) |
| 复杂指令遵循 | ~30B |
| 长程推理 | ~70B / R1 等推理模型 |
涌现的"突然性",至今没有完美的理论解释。这是大模型工程的一个不可预测要素——你训了一个 5B 模型可能效果一般,训到 7B 突然某项能力起飞。
三、预训练的完整流程
理论讲完了,下面看一次完整训练在工程上是什么样的。
3.1 整体流程
┌──────────────────────────────────────────────────────────┐
│ 1. 数据准备(数月) │
│ 爬取 → 去重 → 质量过滤 → 配比 → tokenize → 打包 │
├──────────────────────────────────────────────────────────┤
│ 2. 模型设计(数周) │
│ L, d, num_heads, FFN, MoE 比例 决策 │
├──────────────────────────────────────────────────────────┤
│ 3. 分布式训练(数周-数月) │
│ DP / TP / PP / ZeRO 组合 → 启动训练 → Checkpoint │
├──────────────────────────────────────────────────────────┤
│ 4. 训练监控与调优 │
│ Loss 曲线 / 梯度健康 / Token throughput / OOM 检测 │
├──────────────────────────────────────────────────────────┤
│ 5. Checkpoint 选择与评估 │
│ Val Loss / MMLU / HumanEval / GSM8K / 内部 bench │
├──────────────────────────────────────────────────────────┤
│ 6. 进入 SFT / 对齐 阶段 │
└──────────────────────────────────────────────────────────┘
3.2 模型架构决策
设计大模型有 7 个核心变量,每个都有"惯例值"和"trade-off":
| 变量 | 典型值(70B 规模) | trade-off |
|---|---|---|
| 层数 L | 60-80 | 深 = 表达力强但训练慢 |
| 隐藏维度 d | 6K-12K | 宽 = 参数多但激活内存多 |
| 注意力头数 | 32-64 | 多头 = 多视角 |
| KV 头数 (GQA) | 8 | 少 KV 头省显存 |
| FFN 倍数 | 2.6× (SwiGLU) | 大 = 模型容量大 |
| 词表大小 | 100K-200K | 大 = 多语言友好 |
| 是否 MoE | Dense / 8-256 expert | MoE 算力省、显存贵 |
主流模型的实际配置:
| 模型 | L | d | heads | KV | FFN | Vocab |
|---|---|---|---|---|---|---|
| Llama 3-8B | 32 | 4096 | 32 | 8 | 14336 | 128K |
| Llama 3-70B | 80 | 8192 | 64 | 8 | 28672 | 128K |
| Qwen 3-32B | 64 | 5120 | 64 | 8 | 27648 | 151K |
| DeepSeek V3 | 61 | 7168 | 128 | 128 (MLA) | + MoE | 129K |
注:DeepSeek 用的是 MLA(Multi-head Latent Attention),比 GQA 更省 KV Cache,是 V2 之后的关键创新。
3.3 训练超参的「经验配方」
预训练 70B 规模模型的常见超参(仅供参考):
# 优化器
optimizer: AdamW
betas: [0.9, 0.95]
weight_decay: 0.1
grad_clip: 1.0
# 学习率
lr_schedule: cosine_with_warmup
peak_lr: 3.0e-4
warmup_steps: 2000
min_lr: 3.0e-5
total_steps: 200000
# Batch
global_batch_size: 4M tokens # 全局
micro_batch_size: 4 # 单卡
seq_len: 4096 # 单序列
# 训练目标
loss: causal_lm # 标准下一个 token 预测
mtp_loss: false # 是否启用 MTP(DeepSeek V3 特色)
# 精度
dtype: bfloat16
fp8_training: true # DeepSeek V3 / 部分 H100 训练用
gradient_dtype: fp32 # 主权重保 FP32
几个关键设计点:
- Warmup:训练前 2000 步线性升 LR,避免初期不稳定
- Cosine 衰减:训练后期 LR 平滑下降到峰值的 10%
- Global batch 4M tokens:业界共识,太小训练不稳,太大效率下降
- bfloat16 + FP32 主权重:精度 + 稳定性的标准组合
- FP8 训练:H100 时代的新选项,DeepSeek V3 把 FP8 训练做到生产可用——节省 30%+ 训练成本
3.4 分布式训练策略
70B 模型训练显存占用:
权重 (BF16): 140 GB
梯度 (BF16): 140 GB
AdamW 状态 (FP32×2): 560 GB
激活值 (重计算后): ~100 GB
────────────────────────────
合计: ~940 GB
单卡 80 GB 完全装不下。必须分布式。
主流并行策略:
| 策略 | 切什么 | 优点 | 缺点 |
|---|---|---|---|
| DP (Data Parallel) | 切数据 | 简单 | 显存不省 |
| ZeRO / FSDP | 切优化器状态 / 梯度 / 权重 | 显存省、容易上手 | 通信开销 |
| TP (Tensor Parallel) | 切单层算子 | 显存均匀 | 要求高速互联 |
| PP (Pipeline Parallel) | 切层 | 跨节点友好 | bubble 浪费 |
| EP (Expert Parallel) | 切 MoE 专家 | MoE 专用 | 复杂 |
| CP (Context Parallel) | 切序列 | 长上下文 | 通信开销 |
工业级 70B 训练的典型配置:
DP × TP × PP = 8 × 8 × 4 = 256 GPUs
数据并行 8 路(不同 batch)、张量并行 8 路(同节点内)、流水线并行 4 路(跨节点)。
DeepSeek V3 创新引入 DualPipe —— 把"前向计算"和"反向梯度"在 pipeline 中交错执行,把 PP 的 bubble 时间几乎降到 0。
👉 详见 系列第 20 篇:分布式推理 - TP/PP/EP。
3.5 训练稳定性:万卡集群的"日常崩溃"
万卡集群训练大模型,每天都会有 GPU 故障。
Llama 3 训练报告里有一个数字:
在 16K H100 的训练中,平均每 3 小时有一张卡硬故障。完整训练期内停机时间占总时间的 9%+。
工业级训练系统必须做的工程基建:
- 高频 Checkpoint:每 30 min 全量保存一次(节省 70% 损失)
- 冗余资源:5-10% 的卡作为热备
- 故障检测:实时监控温度、功耗、ECC 错误
- 自动恢复:检测到故障 → 切换冗余卡 → 加载最近 ckpt → 继续训练
- Loss spike 处理:自动 rollback 到上次稳定点,调小 LR 重试
这些不是"训练的细节",这些就是训练。能不能把万卡稳定跑下来,是大模型团队的核心竞争力。
四、案例拆解:DeepSeek V3 的「557 万美元」
DeepSeek V3 是 2024 年 12 月发布的大模型,它的训练成本震撼了整个行业:
671B 总参数 / 37B 激活,14.8T tokens 训练,仅花 557 万美元。
作为对比,Llama 3-70B 训练成本约 1300 万美元,规模只有 V3 的 1/10。这背后的工程细节,是预训练优化的最佳教材。
4.1 V3 的训练数字
| 指标 | 数值 |
|---|---|
| 总参数 | 671B |
| 激活参数 | 37B |
| MoE 专家数 | 256(每 token 选 8 个) |
| 训练数据 | 14.8T tokens |
| 训练算力 | 2.788M H800·小时 |
| 训练时长 | ~2 个月 |
| GPU 集群 | ~2048 H800 |
| 训练成本 | $5.576M(按 $2/小时) |
对比基准(同规模能力下的训练成本):
- Llama 3-70B:~$13M
- GPT-4(估算):~$100M+
- Claude 3 Opus(估算):~$70M+
DeepSeek V3 把成本压到了同等能力模型的 1/10 - 1/20。
4.2 三大工程优化
V3 之所以这么便宜,靠的是三个层面的极致优化:
优化 1:架构层 - MLA + MoE
- MLA(Multi-head Latent Attention):把 KV Cache 压缩成低维隐变量,显存占用降到 GQA 的 1/4。意味着可以训更长 context、并发更多
- 细粒度 MoE:256 个专家、每 token 激活 8 个、加上 1 个共享专家。激活比例 8/256 + 共享 = ~4%
- 专家负载均衡:用 auxiliary loss-free 方法保证专家激活均匀,避免"专家死亡"
优化 2:训练层 - FP8 + DualPipe
- FP8 训练:权重 + 激活 + 梯度全部 FP8,比 BF16 节省 30-50% 算力和显存。这是工业上首次大规模成功
- DualPipe:双向流水并行,PP bubble 几乎降到 0
- 跨节点 All-to-All 优化:自研通信库,比 NCCL 默认快 30%
优化 3:数据层 - 配方精细
- 14.8T 高质量 tokens,其中数学和代码占比明显高于一般预训练
- MTP(Multi-Token Prediction):每次预测多个 token 而非一个,提高数据利用率
- 数据课程学习:先简单后复杂,加速收敛
4.3 工程启示
DeepSeek V3 给行业的几个启示:
- 算法 × 工程 同等重要——光堆 GPU 不行,工程优化能差 5-10 倍
- FP8 训练时代正式到来——后续大模型应该都会跟进
- MoE 是工程红利——同样的训练算力可以做更大模型
- 创新可以来自任何团队——不是只有 OpenAI / Anthropic / Google 才能做出突破
👉 MoE 工程细节见 系列第 31 篇:MoE 架构深度解析。
五、扩展话题与下一篇预告
5.1 预训练之后做什么
预训练出的模型叫 Base 模型——它只会"接话",不会"对话"。要让它好用,还要经过:
Base 模型 → SFT(监督微调)→ DPO/RLHF(对齐)→ 可用的 Chat 模型
👉 详见 系列第 7 篇:SFT 微调实战 和 第 8 篇:RLHF 与 DPO。
5.2 Continued Pretraining:工程师能上手的"预训练"
完整预训练对绝大多数团队不现实,但 Continued Pretraining(继续预训练) 是可行的:
- 在一个已有 Base 模型上,用领域数据继续训练
- 算力需求:几十到几百 H100 小时
- 适合场景:法律、医疗、金融等垂直领域
👉 详见 系列第 9 篇:垂直领域大模型微调。
5.3 合成数据:下一个数据红利
由于公开互联网数据接近枯竭,合成数据成为新的数据来源:
- Phi 系列:用 GPT-4 合成"教科书级数据"
- DeepSeek R1 蒸馏:用 R1 输出训练小模型
- 数学/代码场景:用规则生成 + 验证
合成数据的核心挑战是不能"近亲繁殖"——用同一个模型生成数据再训自己,效果会快速崩溃。工业上的做法是多模型混合、多步过滤。
5.4 推理时 Scaling:算力的新去向
回到第 1 篇我们提过的 o1/R1 现象:推理时 Scaling。
传统 Scaling Law 是"训练投更多算力",推理时 Scaling 是"推理时多想几步"。
未来 1-2 年的趋势:
- 训练算力继续涨但增速放缓
- 推理算力指数级涨
- 模型参数量增速放缓,推理深度(思考链长度)成为新维度
👉 详见 系列第 32 篇:推理模型原理。
结语:理解预训练,是理解大模型工程的起点
读完本文你应该明白:
- 预训练 = 数据 × 算力 × 算法,三者缺一不可
- 数据配方决定模型偏向(Qwen 中文好 = 中文占比高)
- Scaling Law 是花算力的规则(Chinchilla 20× 法则)
- 万卡训练的核心是稳定性,不是峰值算力
- DeepSeek V3 证明算法 + 工程优化能让成本降一个数量级
虽然你可能不会亲自训大模型,但理解预训练能让你做出更明智的模型选型、SFT、应用决策。
下一篇我们进入工程师真正能上手的部分:
- 第 7 篇:SFT 微调实战 - LoRA / QLoRA / 全参微调对比 —— 这是 80% AI 工程师在日常工作中会做的事。我们会讲清三种方法的工程权衡,给出可运行的微调脚本。
之后是 RLHF / DPO(第 8 篇)、垂直领域大模型(第 9 篇)、训练数据工程(第 10 篇),训练与微调篇 5 篇连成完整路径。
我们下篇见。
📮 关于「码海寻道」
这里是一个聚焦 AI 工程化、大模型部署、后端架构实战的技术专栏。
写最一线的踩坑经验,做最务实的技术拆解。如果这篇文章对你有启发,欢迎点赞、转发、关注。我们下篇见。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)