预训练全流程:数据、算力、Scaling Law 实战拆解

《大模型知识与部署》系列 · No.06 / 35(训练与微调篇开篇)
适合人群:AI 工程师、后端开发
阅读时间:约 25 分钟


在这里插入图片描述

写在前面

入门认知篇五篇走完,我们建立起了大模型工程的基础心智模型。从这一篇开始,我们正式进入训练与微调篇(第 6-10 篇)

第一站是预训练。

很多 AI 工程师会说:「我又不会从零训大模型,看这个干嘛?」

这句话的前半句基本正确——能从零训 70B 以上模型的团队全国不超过两位数。但后半句"看这个干嘛",是一个昂贵的误判。

预训练是整个 LLM 工程栈的地基。即便你不亲自训练,你也需要懂它,因为:

  1. 选模型时——同一规模下,为什么 Qwen 中文好、DeepSeek 推理强、Llama 通用?答案在训练数据配方和算力配置里
  2. 做 SFT 时——你能微调出什么效果,80% 取决于基座。基座的能力边界来自预训练
  3. 看技术新闻时——DeepSeek V3 用 557 万美元做出顶级模型,背后的工程细节决定了你接下来能不能复用同样的红利
  4. 做继续预训练(Continued Pretraining)时——这就是 SFT 之外的另一条"领域适配"路径,工程师亲自上手的概率非常高
  5. 判断闭源价格趋势时——训练成本变化直接决定 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
Google 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%+。

工业级训练系统必须做的工程基建:

  1. 高频 Checkpoint:每 30 min 全量保存一次(节省 70% 损失)
  2. 冗余资源:5-10% 的卡作为热备
  3. 故障检测:实时监控温度、功耗、ECC 错误
  4. 自动恢复:检测到故障 → 切换冗余卡 → 加载最近 ckpt → 继续训练
  5. 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 给行业的几个启示:

  1. 算法 × 工程 同等重要——光堆 GPU 不行,工程优化能差 5-10 倍
  2. FP8 训练时代正式到来——后续大模型应该都会跟进
  3. MoE 是工程红利——同样的训练算力可以做更大模型
  4. 创新可以来自任何团队——不是只有 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 工程化、大模型部署、后端架构实战的技术专栏。
写最一线的踩坑经验,做最务实的技术拆解。

如果这篇文章对你有启发,欢迎点赞、转发、关注。我们下篇见。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐