并行策略总览:六个维度各切什么、怎么通信

并行策略总览:六个维度各切什么、怎么通信

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

本文介绍大模型并行训练的核心概念,将DP、TP、SP、PP、EP、CP六种并行方式按切分维度、显存减少、通信开销和等待关系列表对比。并行本质是切分模型并引入通信代价,优化关键在于减少等待。实际训练常组合使用,如TP用于节点内、PP跨节点、DP外层,MoE和长上下文则需EP和CP,具体选择依模型和集群而定。

🔎

延伸解读

并行切分维度与通信代价

文章将六种并行方式按切分维度、显存减少和通信开销进行对比,指出DP不减少每卡显存,TP/SP通信最频繁,PP通信最少但产生气泡,EP和CP分别针对MoE和长上下文。理解这些差异有助于根据模型和硬件选择合适的并行策略。

等待关系是优化关键

每种并行都涉及等待,优化核心在于识别等待方并减少等待时间。例如,流水线气泡可通过填充其他计算来缓解,EP负载不均可用冗余专家平衡,TP的all-reduce可与矩阵乘重叠。这些策略都是围绕减少等待展开的。

组合使用的典型模式

实际训练中并行方式常组合使用,典型分配为TP在节点内、PP跨节点、DP在外层。MoE模型需加EP,长上下文需加CP。具体选择取决于模型形状和集群拓扑,如Kimi K3因非expert参数少而采用EP而非TP。

Q&A

大模型并行训练中,DP、TP、SP、PP、EP、CP分别切分模型的哪个维度?

DP切分batch;TP切分矩阵的行或列;SP切分序列(配合TP);PP切分层;EP切分MoE的expert;CP切分序列(注意力内部)。

为什么数据并行(DP)不能单独使用?

因为DP不减少每张卡的显存占用,每卡仍持有完整模型副本,所以必须与其他并行方式(如TP、PP)结合,或使用ZeRO将优化器状态、梯度、参数分片。

张量并行(TP)和流水线并行(PP)在通信开销和适用场景上有什么不同?

TP切分层内部,通信频繁,需要高带宽(如NVLink),通常限制在节点内;PP切分层间,通信量小(只传激活),但会产生气泡,适合跨节点。

在并行训练中,如何理解“优化=减少等待”?

每种并行都会引入等待,如DP中快的卡等慢的卡,PP中前面的段等后面的段。优化就是找到等待的一方,通过填充计算(如填气泡)、负载均衡(如冗余expert)或通信重叠(如all-reduce与矩阵乘重叠)来减少等待时间。

实际训练中如何组合多种并行方式?请举例说明。

常见组合:TP放在节点内(通信密集),PP跨节点(通信量小),DP放最外层(用ZeRO-1切优化器状态)。有MoE时加EP,通常与DP共用卡;长上下文时加CP。例如Kimi K3预训练使用PP(虚拟段)、EP、ZeRO-1 DP、Pipeline ZeRO-2和CP,未用TP。

为什么Kimi K3的预训练没有使用张量并行(TP)?

因为Kimi K3每层的非expert参数只有几亿,而主要参数是2.7T的routed expert,使用EP切分expert比TP更自然,因此未用TP。

🏷️

标签

➡️

继续阅读