大模型训练并行技术理解-DP/TP/PP/SP/EP 单个GPU卡内存有限从而引发的各种问题可分为两个维度来看数据维度对于小模型而言虽然单卡能放下一个模型但没法放下一个batch所要的全部数据所以数据得切分到不同卡上计算最终汇总从而引入数据并行DP模型维度对于大模型而言单卡无法放下一个模型必须将模型切分到多张卡上由此引入了除DP之外的各种并行TP/PP/EP/SP可统称为模型并行换句话而言如果模型又小单个batch数据不多一张卡跑就够了也不需要各种并行。如果模型一张卡能放下但单个batch的数据放不下那只需要DP这样计算效率最高。在这种情况下再加入其他并行策略反而拖累训练效率。只有在模型单卡也放不下的时候这时才必须考虑DP之外的并行。不同的并行策略根据模型结构的不同采取的策略也不一样。DP/TP/PP/EP/SP都可以同时开启EP依赖于DP只有DP开启的情况下才可能开启EPSP依赖于TP只有在TP开启的情况下才能用SP。以上摘抄自https://zhuanlan.zhihu.com/p/1904506837543420662用做饭流水线通俗讲清 DP、TP、PP做大份红烧肉套餐一共切肉、炖肉、调酱汁、装盘四道工序客人有很多份订单。 GPU 厨师多张 GPU 多个厨师。1. DP 数据并行最简单所有厨师每个人都会完整做完一整份红烧肉。 订单太多把客人分成 4 批厨师 1 做第 1 批客人厨师 2 做第 2 批各自独立从头做到尾。 做完之后统一核对调味标准同步梯度。特点 每个人手里都有全套配方完整模型只分工客人互相很少交流。 对应 AI每张 GPU 存完整模型只拆分训练图片 / 文本适合单纯提速。2. PP 流水线并行分层分工把做菜步骤拆开每人只干固定一步 厨师 1只切肉 厨师 2只炖肉 厨师 3只调酱汁 厨师 4只装盘肉切好递给下一个人不用所有人互相传东西只传给隔壁。 对应 AI把模型几十层拆开A 卡算前几层B 卡算中间几层只把中间结果传给隔壁卡。特点同一时间只和隔壁一张卡通信对带宽要求很低。3. TP 张量并行拆同一道工序最吃带宽现在有一道工序特别复杂一锅超大红烧肉一个厨师根本忙不过来必须 4 个人同时处理同一锅肉。 厨师 1 切一半肉厨师 2 切另一半厨师 3 熬一半酱汁厨师 4 熬另一半。 做完之后四个人必须把自己手里半成品全部交换给所有人拼出完整一份肉和酱汁。 四个人互相来回递食材所有人之间都要频繁传递东西非常考验传递速度对应 xGMI 带宽。对应 AI一层神经网络权重太大一张卡装不下把这一层拆开分给多张卡计算完所有卡互相交换数据。大模型五大并行 DP / TP / PP / SP / EP厨师类比完整版润色通顺 补充对比表格统一设定GPU 厨师完整模型 全套做菜菜谱训练样本 客人订单张量 / 激活 半成品食材梯度 口味修正意见高速互联 xGMI/NVLink 厨师间快速传菜通道一、DP 数据并行 Data Parallelism核心逻辑所有 GPU 都保存完整模型只拆分输入训练数据每张卡独立跑一批样本。做饭类比4 位厨师每个人都掌握全套做菜流程店里订单爆单把订单平均分成 4 份厨师各自独立做完自己手里所有订单。全部烹饪完成后所有人交换口味修正意见梯度统一调整做菜配方标准保证味道一致。核心特点卡间仅同步梯度修正意见梯度--本次做题错在哪、该怎么微调模板的误差信号传输数据极少普通网卡就能满足不需要高速互联硬性限制单卡显存必须放下完整模型超大模型无法单独只用 DP作用扩大单次训练样本总量加速训练收敛。二、PP 流水线并行 Pipeline Parallelism核心逻辑纵向切割模型按网络层拆分每张 GPU 固定负责连续几层网络。做饭类比完整做菜流程分 4 道工序洗菜→切菜→翻炒→装盘4 名厨师分工固定岗位。厨师 1 洗完食材只传给隔壁厨师 2厨师 2 切完仅传给厨师 3全程只和相邻一人传递半成品不用和其他厨师交流。核心特点单卡只存储模型一小部分能放下极深的百层大模型通信仅发生在相邻两张卡带宽需求是五种并行里最低缺陷流水线气泡部分厨师空闲等待算力存在浪费适用层数极深的稠密 Transformer 大模型。三、TP 张量并行 Tensor Parallelism核心逻辑横向切分单层权重矩阵单层权重体积过大单卡承载不下多张 GPU 协同计算同一层网络。做饭类比需要熬一锅巨型酱汁一个人处理不完4 位厨师同时协作制作这一锅酱汁每人只负责一半配料。各自完成加工后必须把半成品发给其余所有厨师拼凑出完整酱汁才能进入下一步。核心特点同 TP 组内所有 GPU 两两高频互传中间张量通信压力极大必须依赖 xGMI、NVLink 高速直连带宽对应你之前 MI300X 64GB/s 单向链路逻辑专门解决 Attention、FFN 单层权重爆炸问题TP 规模越大单卡可并行使用的高速链路越多聚合带宽越高。四、SP 序列并行 Sequence Parallelism核心逻辑属于 TP 的配套优化沿文本序列长度维度切分输入分摊超长文本带来的激活显存开销。做饭类比一份超大量套餐一盘放不下4 位厨师各自分装 1/4 份食材分段加工处理完成后拼接成完整套餐。核心特点针对性解决 32k/128k 超长上下文场景激活显存溢出常和 TP 组合使用通信逻辑和 TP 相近但传输数据体量更小仅在长文本大模型中启用短文本场景收益微弱。五、EP 专家并行 Expert ParallelismMoE 稀疏模型专用核心逻辑稠密 LLM 无需使用MoE 模型包含大量独立专家模块把不同专家分散存储到不同 GPU。做饭类比门店备有 10 种特色配菜专家模块4 位厨师每人保管 2~3 种配菜收到客人订单后仅调用订单需要的配菜厨师产出其余厨师闲置待命。核心特点单卡不用存储全部专家大幅降低显存占用支撑万亿稀疏 MoE 模型通信以路由分发数据为主和 TP 全员广播式传输有明显区别是稀疏大模型必备并行策略纯稠密模型不用。一句话速记区分DP人人会全套菜分开接待客人只交换调味修正意见PP每人只干一道工序半成品只传给隔壁厨师TP多人合力完成同一道巨型工序全员互相传递半成品SP超长套餐分段加工缓解食材存放空间不足EPMoE 专属配菜分开存放按需调用对应厨师多维并行组合规则普通稠密大模型三维并行总 GPU 数量 DP × PP × TP示例TP4PP2DP8总卡数 4 × 2 × 8 64 张MoE 稀疏大模型四维并行总 GPU 数量 DP × PP × TP × EP五大并行直观对比表表格并行方式拆分对象通信压力依赖高速互联适用模型DP 数据并行训练样本完整模型每卡一份极小仅传梯度不需要中小模型、提速扩容 batchPP 流水线并行模型网络层纵向切很低仅邻卡传激活可选层数极深的稠密大模型TP 张量并行单层权重矩阵横向切极高全卡互传张量必须 xGMI/NVLink单层权重超大的 TransformerSP 序列并行输入文本序列长度中等低于 TP需要高速互联超长上下文大模型EP 专家并行MoE 专家模块中等路由通信建议高速互联稀疏 MoE 混合专家模型