很多人以为”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 训练中的角色。