按层段切开模型
流水并行把模型的层段切到不同卡或不同节点上,卡间只在层段边界通信,通信量比张量并行小,适合跨机扩展。代价是流水气泡:各段要轮流工作,批次不够时算力就空转。实践里常见的组合是机内用张量并行、跨机用流水并行,各承担一个维度。
基本信息
| 适用平台 | Linux 单机多卡与多机部署 |
|---|---|
| 切分对象 | 模型的层段 |
| 通信位置 | 层段边界,频率低于张量并行 |
| 参数组合 | 流水并行度乘张量并行度等于总卡数 |
| 主要代价 | 流水气泡,低并发下利用率下降 |
组合启动(示意)
组合启动(示意)
vllm serve <模型路径> --pipeline-parallel-size 2 --tensor-parallel-size 4
# 总卡数 = 2 × 4 = 8,组合前先核对可用卡数与拓扑典型使用场景
- 跨机扩展:单机卡数不够时,用层段切分把模型摊到多台机器
- 显存受限:权重与缓存都放不下时,按层段拆分降低单卡占用
- 延迟优化:气泡大时改用更大批次或减少分段数
- 容量评估:分段数增加后,单实例可承载的并发会变化
- 故障域考虑:分段越多,参与的机器越多,恢复复杂度上升
- 升级验证:并行配置变更后必须重跑基准,确认延迟与吞吐没有退化
与张量并行对照
| 维度 | 张量并行 | 流水并行 |
|---|---|---|
| 切分对象 | 单层内部 | 层段 |
| 通信频率 | 每层每步 | 层段边界 |
| 主要代价 | 通信开销 | 流水气泡 |
| 适配场景 | 机内高速互联 | 跨机扩展 |
单机内优先用张量并行吃高速互联;需要跨机扩展时再叠加流水并行承担节点维度。
气泡观察:低并发下对照不同分段数的设备利用率差异,气泡比例大时优先加并发或减少分段。
并行配置要与部署模板绑定:同一模型在单机与多机形态下的参数不同,混用会直接导致启动失败。