推理并行
当模型太大无法放入单卡时,推理并行技术将模型拆分到多GPU上协同工作。
推理加速·阅读时间:约12分钟
01张量并行
基本思想
将大的权重张量切分到多个GPU上,每个GPU负责一部分计算,通信协作。
如何切分
行切分
将矩阵按行切分到不同GPU
列切分
将矩阵按列切分到不同GPU
层内并行
每一层都在多GPU上并行计算
通信需求
- 需要频繁的AllReduce通信
- 对GPU间带宽要求高
- NVLink能显著提升效率
- 通信开销随GPU数量增加
适用场景
- 中等规模模型(70B以下)
- 有高速GPU互连(NVLink)
- 单机多卡环境
- 追求低延迟推理
02流水线并行
基本思想
将不同层放到不同GPU上,按流水线方式执行,减少单卡显存压力。
工作流程
阶段
GPU 0: 层1-10 → GPU 1: 层11-20 → GPU 2: 层21-30 → GPU 3: 层31-40
特点
- 显存效率高:每个GPU只存部分层
- 通信少:只有相邻GPU需要通信
- 有气泡:流水线填充和排空有延迟
- 可扩展性好:可以扩展到更多GPU
推理vs训练
推理的流水线并行比训练简单,因为只有前向传播,不需要反向。
适用场景
- 超大规模模型(70B+)
- 多机环境或无NVLink
- 批量推理,可摊销气泡开销
03混合策略
TP + PP
结合张量并行和流水线并行,在单机内用TP,机器间用PP。
专家并行(MoE)
特点
混合专家模型中,不同专家放到不同GPU上
优势
通信需求通常比TP低
实际建议
| 模型规模 | 推荐方案 |
|---|---|
| < 13B | 单卡 / 简单量化 |
| 13B-70B | 量化 + 张量并行(2-4卡) |
| 70B-175B | 张量并行 + 流水线并行 |
| > 175B | 完整的分布式策略 |
工具和框架
- TensorRT-LLM:NVIDIA官方,支持TP
- vLLM:支持分布式推理
- Text Generation Inference:支持多种并行策略
- DeepSpeed:推理并行支持
- vLLM:分布式推理能力
最佳实践
- 优先尝试量化,不行再考虑多卡
- 尽量使用有NVLink的机器做TP
- 平衡延迟和成本,不要过度设计
- 充分测试不同配置,找到最佳方案