训练与推理基础设施
显存决定你能训多大的模型,通信决定你要花多久;算力本身往往不是瓶颈
定义
训练与推理基础设施是为大规模神经网络提供算力、显存与通信的软硬件系统。它由加速器(GPU/TPU)、互连网络(NVLink/InfiniBand)、并行策略(数据并行、张量并行、流水线并行)与显存优化技术(ZeRO、混合精度、激活重计算)共同构成,决定了模型能否被训练、以什么成本训练,以及能否被高效地服务。
直观理解
把一次大模型训练想成一支施工队盖一栋楼:算力是工人的干活速度,显存是工地能堆放多少材料,而通信是工人们彼此喊话、对齐进度的开销。真正的瓶颈常常不是工人手不够快,而是工地放不下材料,或者工人们花在沟通上的时间超过了干活本身——加人手并不能解决场地不够的问题。
并行策略的分层:越靠层内的并行通信越频繁,实际训练通常是多种并行叠加的 3D 组合
7B 参数模型在混合精度 Adam 下的显存构成(示意量级):优化器状态一项就超过参数本身,ZeRO 分片逐级把总量压回单卡可承受的范围
- DDP 全量复制
- ZeRO-2
- ZeRO-3
工作原理
- 01
分片:先让模型塞得进显存
一张卡放不下整个模型时,第一步是把它切开——按层切、按权重矩阵切、按张量维度切。混合精度 Adam 训练每个参数约需 16 字节(权重、梯度、优化器状态各占若干份),一个 7B 模型的优化器状态一项就超过参数本身,因此分片几乎是必选项。
- 02
并行:把切开的碎片分配到多卡
数据并行把批次切成多份、每卡一份完整副本;张量并行把单层内部的矩阵切到多卡;流水线并行把不同层放到不同卡上。三者可以叠加,形成 3D 并行。越靠层内的并行,通信频率越高、网络要求越苛刻。
- 03
省显存:ZeRO 与混合精度
ZeRO 依次把优化器状态、梯度、参数分片存储,用通信换显存,把单卡占用近似除以卡数。混合精度(BF16 计算 + FP32 主权重)在保持数值稳定的同时把计算与存储减半。激活重计算则用一次额外前向换回一层激活的显存。
- 04
通信:让传输藏在计算背后
大规模训练的时间常常花在同步而非计算上。工程上通过计算-通信重叠、梯度累积、更好的拓扑(NVLink、分层 All-Reduce)来把通信开销藏进计算窗口,这也是为什么“再加一倍卡”经常换不回“快一倍”。
应用场景
- 预训练:用数千张加速器集群训练千亿参数模型,容量与调度决定可行性
- 微调与适配:在少量卡上用 LoRA、FSDP 适配下游任务
- 推理服务:KV Cache 与批处理共同决定单机可以同时服务多少用户
- 成本核算与容量规划:估算训练一次的算力账单与推理的每千 token 成本
常见误区
- 更多 GPU 不等于更快。当通信、同步或数据加载成为瓶颈时,增加设备只会等比例增加等待时间,利用率反而下降。
- 显存的大部分并不属于参数。在混合精度 Adam 下,优化器状态与梯度可能比参数本身占用更多空间,只盯着参数量会严重低估显存需求。
- 混合精度不是“免费加速”。BF16 的动态范围大但精度低,某些数值敏感的运算仍需回退到 FP32,否则会出现溢出或缓慢的发散。
关键术语
- 加速器
- 以 GPU/TPU 为代表的高吞吐并行计算单元
- 张量并行
- 把单层内部的大矩阵切到多张卡上
- 流水线并行
- 把不同的层放到不同的设备,用微批次填空
- ZeRO
- 分片优化器状态、梯度与参数以降低单卡显存