AI 基础架构 · 第 06 条 · 负载
训练与推理:两种完全不同的负载
训练和推理听起来是同一件事的两个阶段,但它们对硬件的需求几乎是相反的。这解释了为什么芯片和集群都在分化。
两种负载的差别
| 训练 | 推理 | |
|---|---|---|
| 目标 | 吞吐量(快点学完) | 延迟(快点回答) |
| 批大小 | 越大越好 | 受延迟约束,常常很小 |
| 主要瓶颈 | 算力 + 卡间通信 | 显存带宽 |
| 要不要存梯度 | 要(显存开销大) | 不要 |
| 精度要求 | 较高(否则训不动) | 可以低很多 |
| 负载特征 | 长时间稳定满载 | 波动大,峰谷明显 |
为什么批大小这么关键
训练时,批越大,每一步的梯度估计越准、同样的权重读取能服务更多样本——算术强度高,算力吃得满。
推理时,用户等不了。批太大会让单个请求的响应时间变长,所以低延迟场景只能用很小的批。而小批意味着读一遍权重只生成一个 token,算术强度极低,完全是带宽受限。
这就是为什么同一个模型,训练时能把 GPU 跑满,推理时利用率却很低。不是模型变了,是约束条件变了——一个是「多快学完」,一个是「多快回答」。
由此产生的分化
因为两种负载的特性不同,硬件和架构也在分道扬镳:
- 芯片分化:训练芯片追求算力和互联,推理芯片追求能效和带宽成本比。
- 批处理策略分化:推理常用「连续批处理」(把不同请求动态拼批),既提高吞吐又不牺牲太多延迟。
- 优化手段分化:推理侧大量使用量化、蒸馏、缓存复用;训练侧更关注并行策略和稳定性。
- 集群形态分化:训练集群追求高带宽互联,推理集群更关注部署密度和电力成本。
第三个阶段常被忽略
除了训练和推理,还有一个中间形态:预填充(prefill)和解码(decode)。推理其实分两步——先「读完整段输入」(这步像训练,是计算密集的),再「一个词一个词生成」(这步像典型推理,是带宽密集的)。
这两步的特性不同,所以出现了把它们放在不同硬件上分别处理的做法。这是近年在推理架构上一个明显的方向。
为什么这对理解成本重要
因为单位成本是按推理算的,不是按训练算的。一家公司花多少钱训练模型是一次性的,但推理成本是每一次调用都在发生。
所以「一个 token 多少钱」这个数字,最终由推理侧的效率决定——而推理侧恰恰是最受带宽和延迟约束的那一环。
要点回顾
- 训练追吞吐,推理追延迟;一个吃算力,一个吃显存带宽。
- 推理的低延迟约束迫使批很小,导致算术强度低、GPU 利用率上不去。
- 两种负载的分化:芯片、批处理策略、优化手段、集群形态都在分道扬镳。
- 推理还分预填充(计算密集)和解码(带宽密集)两步,已出现分开部署的做法。
- 单位成本按推理算——训练是一次性的,推理是每次调用都发生的。