硬件基础:分布式的“高速公路”
分布式训练/推理的核心瓶颈,从来不是算力,而是通信——显卡之间、服务器之间的数据传输速度,直接决定了算力利用率(你提到的40%就是行业平均水平,通信开销占了大头)。先把硬件互联讲透,这是运维选型的第一步。
单机多卡:一台服务器内的多卡互联
核心场景:单台服务器插多张GPU(比如8张A100),模型/数据拆分到这些卡上,是目前企业训练/推理的主流场景。
三种互联总线(性能从低到高):
- PCIe(通用但带宽有限)
- NVLink(NVIDIA专用高速互联)
- NVSwitch(支持全互联拓扑,实现所有GPU两两直连)
运维必知硬件名词补充:
- DGX:NVIDIA官方推出的“一站式训练服务器”,预装NVSwitch、InfiniBand网卡、优化好的训练环境,开箱即用,是大厂训练的首选,但价格极高;
- 算力利用率40%:行业真实平均水平——即使是NVLink全互联的8卡A100服务器,训练时也有60%的时间在等通信(梯度同步、数据传输),只有40%的时间在真正计算,这是分布式训练的核心痛点,也是运维调优的重点。
多机多卡:多台服务器的跨机互联
核心场景:模型极大(比如175B GPT-3)、数据极多,单台服务器装不下/算不完,需要多台服务器(比如8台×8卡A100=64卡)联合训练。
两种互联网络(性能从高到低):
- InfiniBand(IB):高带宽、低延迟,专为高性能计算设计;
- 以太网(Ethernet):通用但延迟高、带宽受限,需配合RoCE等技术优化。
运维核心实操要点:
- 多机多卡训练,网络带宽是第一优先级,宁可少买2张卡,也要把IB网络配满;
- 通信吞吐量监控:必须用
nvidia-smi topo(单机)、ibstat/ib_write_bw(多机)监控互联带宽,低于理论值80%就要排查硬件/配置问题;
- 多机多卡的算力利用率一般只有20%~30%,比单机多卡更低,通信开销是最大瓶颈。
分布式训练策略:怎么拆模型、拆数据
分布式训练的核心逻辑,就是解决两个问题:
- 单卡能放下模型,但batch_size太小,训练太慢→用数据并行;
- 单卡放不下模型→用模型并行(层间/层内拆分)。
先把这两个核心策略讲透,再讲混合并行。
数据并行(Data Parallelism, DP):最常用、最简单
适用场景:单卡能放下整个模型,但想通过增大batch_size来加快训练速度(比如7B模型,单卡能放下,但batch_size只能设8,训练太慢,想设到64,就用数据并行)。
核心工作原理(人话版):
- 每个卡都放完整的模型:比如8卡A100,每张卡都存一份完整的7B模型;
- 数据拆分:把一个大的mini-batch(比如64条数据),拆成更小的micro-batch(比如8条/卡),分给8张卡;
- 前向传播:每张卡用自己的8条数据,独立计算预测结果和损失;