AI 训练 vs 推理 —— 硬件视角的根本差异

很多人以为”AI 服务器 = GPU 服务器”——但训练集群和推理集群在硬件配置上完全不同。本文讲清差异,帮助理解为什么 H100 训练强、MI300X 推理强、Groq 是推理专用。

一张对比

维度 训练 推理
主要瓶颈 算力 + 集群带宽 显存 + 单卡延迟
计算类型 大批量稠密矩阵乘 小批量 + KV-Cache 取数
精度 BF16 / FP8(少量 FP32 主权重) FP8 / FP4 / INT8
单卡显存压力 中(梯度 + 优化器状态) 极高(KV-Cache)
集群规模 几百-几万卡 几卡-几十卡
对 NVLink 依赖 极强(梯度 AllReduce) 弱(除张量并行)
对 InfiniBand 依赖
单作业时长 数天-数月 毫秒-秒级
并发任务 极少(一作业占满) 高(多用户同时请求)
容错要求 checkpoint + 恢复 实时性要求

训练的工作负载特征

graph TB
  D[训练数据] --> F[Forward: 计算 loss]
  F --> B[Backward: 计算梯度]
  B --> AR[AllReduce: 跨卡聚合梯度]
  AR --> O[Optimizer: 更新参数]
  O --> F

训练为什么吃算力

1
2
3
4
5
6
7
8
9
10
11
12
13
单步训练计算量 = 2 × 6 × P × T
P:模型参数量
T:训练 token 数
系数 6 = 1(forward)+ 2(backward)+ 3(其他)

举例:Llama 3 70B 用 15T token:
6 × 70B × 15T = 6.3e24 FLOPs

H100 峰值 BF16:1 PFLOPS = 1e15 FLOP/s
理想训练时间:1.75 万小时
实际 30-40% MFU(Model FLOP Utilization):
→ 4-5 万 GPU·小时
→ 1024 卡 H100 × 2 个月

FLOPs 是训练的硬通货——必须靠 Tensor Core 拼算力。

训练为什么吃带宽(集群)

每次 backward 后要做 AllReduce 同步梯度——大模型梯度规模和模型参数同量级(GB 级别):

1
2
3
4
Llama 70B BF16 梯度:~140 GB
1000 卡 AllReduce 一次:要在几百毫秒内完成
→ 每卡每秒搬运几十 GB 跨节点
→ 需要 NVLink + InfiniBand 双层网络

这就是为什么 NVL72 + 400G IB 是训练集群的标配。

训练为什么吃显存(但不极端)

1
2
3
4
5
6
7
8
9
10
11
Llama 70B 训练显存预算(单卡):
权重(FP16): 140 GB
梯度(FP16): 140 GB
Optimizer state(FP32 Adam):560 GB
Activation: ~50 GB
─────────────────────────────
总计: ~890 GB

不可能塞进一卡——必须 ZeRO/FSDP/TP/PP 切分
→ 一般每卡持有 1/N 模型分片
→ 单卡显存压力反而不是首要矛盾

训练显存可以”用集群空间”换——这是为什么训练对单卡显存没那么敏感。

推理的工作负载特征

graph TB
  REQ[用户请求
prompt + 历史 token] REQ --> PRE[Prefill 阶段
处理 prompt] PRE --> KV[KV-Cache
常驻显存] KV --> DEC[Decode 阶段
逐 token 生成] DEC --> KV DEC --> OUT[输出 token]

推理的两个阶段

1
2
3
4
5
6
7
8
9
10
11
Prefill:处理用户输入 prompt
- 大量并行计算(compute-bound)
- 把 prompt 走一遍 forward
- 生成初始 KV-Cache
- 1 次

Decode:逐 token 生成
- 每次只算 1 个 token
- 要从 HBM 读全部权重 + 历史 KV-Cache
- 几乎纯 memory-bound
- 每个输出 token 1 次

Decode 阶段是 memory-bound——这是推理硬件的核心矛盾。

推理为什么吃显存

1
2
3
4
5
6
7
8
9
10
KV-Cache 大小 = 2 × num_layers × num_heads × head_dim × seq_len × dtype × batch
= 2 × seq_len × hidden_size × dtype × batch(GQA 简化)

Llama 70B FP16,序列 4096,batch 64:
KV-Cache ≈ 2 × 4096 × 8192 × 2 × 64 ≈ 8 GB

权重 FP16:140 GB
KV-Cache 64 batch × 4K 序列:8 GB
→ 总共 148 GB,1× H100 80GB 装不下
→ 需要 2 卡或 H200 141GB 才能单卡

更恐怖的是 128K context 场景:

1
2
3
4
Llama 70B FP16,序列 128K,batch 1:
KV-Cache ≈ 2 × 128K × 8192 × 2 ≈ 4 GB / 请求
10 个并发 → 40 GB
100 个并发 → 400 GB(多卡)

KV-Cache 直接决定推理服务的并发能力——这是为什么 H200/MI300X 的”大显存”在推理上很值钱。

推理为什么吃带宽(HBM)

Decode 阶段每生成 1 token,要把全部权重从 HBM 读一遍:

1
2
3
4
5
6
7
Llama 70B FP16 权重:140 GB
H100 HBM 带宽:3 TB/s
理论最高 token 速度:3 TB/s ÷ 140 GB ≈ 21 token/s

实际 batch 越大,HBM 复用越好:
batch=1:~20 token/s
batch=32:~500 token/s(每 token 摊到带宽更少)

推理吞吐 = HBM 带宽 / 模型大小 × batch 复用率——HBM 带宽是推理的硬通货

1
2
3
4
H100 HBM3:     3 TB/s
H200 HBM3e: 4.8 TB/s
MI300X HBM3: 5.3 TB/s
B200 HBM3e: 8 TB/s

带宽每涨 50%,推理速度也涨 50%——这是 HBM3e 上量的根本驱动力。

精度的演化

graph LR
  FP32[FP32
训练默认
2010+] --> FP16[FP16
训练加速
2017] FP16 --> BF16[BF16
训练稳定
2020] BF16 --> FP8[FP8
训练翻倍
2022] FP8 --> FP4[FP4
推理极致
2024]

训练精度

1
2
3
4
5
2017 之前:     FP32 全精度
2017-2020: FP16 + Loss Scaling(混合精度训练)
2020+: BF16(Brain Float 16,范围像 FP32)
2022+: FP8(H100 Transformer Engine)
2025+: FP6 / 微缩 FP(B200 + 等)

主权重通常仍保留 FP32 / BF16——不是所有计算都能 FP8

推理精度

1
2
3
4
INT8:传统量化路线(仍有用)
FP8:H100/MI300X,质量几乎无损
FP4:B200 + 适当 calibration,对推理友好
INT4 / GPTQ / AWQ:开源圈用得多

FP4 推理是 B200 时代的”杀手锏”——同样硬件能装 2× 模型。

量化的本质

1
2
3
4
5
6
7
8
FP32 → INT8:4× 显存压缩,4× 算力(理论)
FP16 → FP8:2× 显存,2× 算力
FP16 → FP4:4× 显存,4× 算力(B200)

但精度不是"无脑降":
- 注意力得分(softmax 输入)很敏感
- LayerNorm 通常保留 FP16/FP32
- 某些层的权重稀有但重要——要"per-channel" / "per-tensor" scale

H100 的 Transformer Engine 就是把这些自动化的硬件 + 编译器协同方案。

训练硬件的关键指标

graph TB
  T1[FP16/BF16/FP8 算力
越高越快] T2[NVLink 带宽
梯度 AllReduce] T3[InfiniBand 带宽
跨节点 AllReduce] T4[显存(中等需求)
容纳模型分片] T5[checkpoint 写入带宽
NVMe / 分布式存储]

训练集群的”贵”主要花在:

1
2
3
4
GPU 本身:60-70%
NVLink/NVSwitch:5-10%
IB 网卡 + 交换机:10-15%
NVMe 存储 + 散热 + 机柜:剩余

推理硬件的关键指标

graph TB
  R1[HBM 容量
装得下模型 + KV-Cache] R2[HBM 带宽
decode 阶段瓶颈] R3[FP8/FP4 算力
prefill 阶段] R4[NVLink
大模型张量并行用] R5[网络 中等]

推理服务器的预算分布:

1
2
3
4
GPU 本身:80%+
显存大 = 价值高(H200 比 H100 贵 30-40%)
NVLink/IB 需求中等
存储/网络比训练低

训练 vs 推理的卡选择

卡型号 训练 推理
H100 80GB ⭐⭐⭐⭐⭐ ⭐⭐⭐
H200 141GB ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
B200 192GB ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
MI300X 192GB ⭐⭐⭐ ⭐⭐⭐⭐⭐
MI325X 256GB ⭐⭐⭐ ⭐⭐⭐⭐⭐
Gaudi 3 ⭐⭐⭐ ⭐⭐⭐
TPU v5p ⭐⭐⭐⭐⭐(GCP) ⭐⭐⭐⭐
Trainium 2 ⭐⭐⭐⭐(AWS) ⭐⭐⭐
Groq ⭐⭐⭐⭐⭐(极致延迟)

部署层面的差异

训练集群

1
2
3
4
5
6
拓扑:     大规模、紧耦合、低延迟
机柜: NVL72 整机柜液冷
网络: InfiniBand NDR 400G + RoCE
存储: PB 级共享文件系统(GPFS / Lustre / WekaFS)
持续时间: 数月不断电不断网
故障容忍: checkpoint 每小时保存,故障重启从 checkpoint 继续

推理服务

1
2
3
4
5
6
7
拓扑:     分散、多副本、就近用户
机柜: 普通 4U 服务器 8 卡 / 节点也行
网络: 普通 100G 以太网即可
存储: 模型加载用本地 NVMe,无大数据集
持续时间: 7×24 在线
扩缩容: 分钟级横向扩/缩
SLA: P99 延迟 < 几百 ms

训练像跑马拉松,推理像便利店——这两种工作负载对硬件的诉求完全不同。

MFU 和推理吞吐的两种”利用率”

1
2
3
4
5
6
7
8
训练:MFU(Model FLOP Utilization)
= 实际算力 / 理论算力
H100 BF16 训练 Llama 70B:MFU ~40%
好的优化能到 50-55%

推理:HBM 带宽利用率
= 实际 token 速度 × 模型大小 / HBM 带宽
good vLLM + Continuous Batching:~80%

两者都是想方设法把 GPU 喂满——但喂的是不同维度。

成本视角

1
2
3
4
5
6
7
8
9
训练 Llama 3 70B(15T token):
约 4-5 万 GPU·小时
H100 云价格 $3-4/小时 → ~$15-20 万
+ 数据准备和工程 → 实际 $50-100 万 - 数百万美元

推理 Llama 3 70B:
H100 单卡 ~30 token/s (batch=32 时摊算)
$3 / 小时 ÷ 30 × 3600 ≈ $0.03 / 1K token
vs OpenAI GPT-4:$10-30 / 1M token = $0.01-0.03 / 1K token

训练是一次性大额投入,推理是持续运营成本——所以推理硬件追”省钱 / 单位 token 成本”,训练追”绝对算力”。

MoE 模型的特殊性

DeepSeek、Mixtral 这类 MoE(Mixture of Experts)模型 在硬件上有独特挑战:

1
2
3
4
5
6
7
DeepSeek-V3 671B 总参数,但每次只激活 37B:
- 训练显存压力 = 总参数(671B)
- 推理显存压力 = 总参数(要装得下所有专家)
- 推理算力压力 = 激活参数(37B)

→ 单 token 算力低但显存压力高
→ MoE 推理特别看重 HBM 容量

这就是为什么 MI300X 192GB / MI325X 256GB 对 MoE 推理友好——装得下专家就能跑

推理优化的几个核心技术

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
KV-Cache 优化:
- PagedAttention(vLLM):把 KV-Cache 分页管理,减碎片
- Sliding Window:丢弃远端 KV-Cache
- GQA / MQA:减少 KV head 数

Continuous Batching:
- 不等 batch 凑齐,新请求随时加入
- 大幅提升吞吐

Speculative Decoding:
- 用小模型猜 N 个 token,大模型校验
- 单请求延迟减少 2-3×

量化:
- GPTQ / AWQ:权重 4-bit
- SmoothQuant:激活也 8-bit
- FP8 / FP4 硬件支持

Prefix Cache:
- 重复 system prompt 不重算
- chatbot 场景大幅提速

一些查询数字

1
2
3
4
5
6
H100 SXM5 训练 Llama 70B:~30% MFU = 300 TFLOPS BF16 持续
H100 SXM5 推理 Llama 70B:bs=1 ~20 tok/s, bs=32 ~500 tok/s
H200 推理 Llama 70B: bs=1 ~30 tok/s
MI300X 推理 Llama 70B: 单卡装下,~25 tok/s
B200 推理 Llama 70B FP4:~80-100 tok/s(猜测,待官方验证)
Groq 推理 Llama 70B: ~250-500 tok/s(极致 SRAM)

待补充:B200 实际生产推理数据。

选型决策树

graph TD
  Q1[业务 = 训练 还是 推理?]
  Q1 -- 训练 --> Q2[规模?]
  Q1 -- 推理 --> Q3[模型大小?]
  
  Q2 -- "万卡级 GPT-4 量级" --> N1[NVIDIA NVL72 + IB]
  Q2 -- "千卡级" --> N2[NVIDIA HGX H100/B200]
  Q2 -- "百卡级" --> N3[NVIDIA / TPU / Trainium 都可]
  
  Q3 -- "70B 单卡" --> N4[H200 / MI300X]
  Q3 -- "MoE 670B" --> N5[MI300X / B200 多卡]
  Q3 -- "极致延迟" --> N6[Groq Cloud]
  Q3 -- "成本敏感大量" --> N7[AMD MI300X / Trainium 2]

小结

  • 训练吃算力 + 集群带宽,推理吃显存 + HBM 带宽
  • 训练用 BF16/FP8,推理用 FP8/FP4
  • KV-Cache 是推理显存的”隐形大头”
  • HBM 带宽几乎正比决定推理 decode 速度
  • 训练像马拉松(一次几月),推理像便利店(7×24)
  • MoE 模型推理对显存特别敏感,对 HBM 容量友好的卡有优势

下一篇讲 AI 集群网络——InfiniBand、RoCE 在 AI 训练中的角色。