ARTICLE
模型并行
模型并行 模型并行(Model Parallelism)是一种分布式训练策略,其核心思想是将一个完整的神经网络模型按结构切分成若干部分,分别部署到不同的计算设备(如 GPU)上,各设备协同完成前向传播与反向传播。与数据并行将数据分片、每个设备持有完整模型副本的做法不同,模型并行解决的是"单卡放不下整个模型"的问题。 主要范式 模型并行在实践中主要有两种实现范
模型并行
模型并行(Model Parallelism)是一种分布式训练策略,其核心思想是将一个完整的神经网络模型按结构切分成若干部分,分别部署到不同的计算设备(如 GPU)上,各设备协同完成前向传播与反向传播。与数据并行将数据分片、每个设备持有完整模型副本的做法不同,模型并行解决的是"单卡放不下整个模型"的问题。
主要范式
模型并行在实践中主要有两种实现范式:
- 张量并行(Tensor Parallelism):将单个层内的权重矩阵或张量运算沿某一维度切分到多个设备上。例如,对一个全连接层的权重矩阵 ,可按列或按行切分,使每个 GPU 仅存储和计算权重的一个子块。前向传播时各设备并行执行本地矩阵乘法,再通过集合通信(如 All-Reduce 或 All-Gather)汇总结果。张量并行的优点是通信与计算可以部分重叠,但对设备间互联带宽要求极高,通常在单机多卡场景(如 NVLink 互联)下效果最佳。
- 流水线并行(Pipeline Parallelism):将模型按层纵向切分成多个阶段(stage),每个阶段分配给一个设备。输入数据以微批次(micro-batch)的形式流经各阶段,如同工厂流水线。前一个阶段处理完一个微批次后立即交给下一阶段,同时开始处理下一个微批次。这种方式减少了设备空闲时间(即"气泡"),但需要精心调度微批次的数量和大小以平衡各阶段的负载。GPipe 和 PipeDream 是两种经典的流水线并行框架:前者采用同步更新,每轮只在一个方向流动;后者引入异步机制和 1F1B(一前一后)调度策略以进一步压缩气泡。
与数据并行的对比与混合策略
模型并行与数据并行的本质区别在于切分对象:前者切分模型,后者切分数据。两者各有适用边界——数据并行适用于模型较小、数据量大的场景(如图像分类),通信开销主要来自梯度同步;模型并行适用于参数量巨大、单卡无法容纳的模型(如 GPT-4、LLaMA 等大语言模型),通信开销来自层间或层内的激活值传输。
在当代大模型训练中,通常采用混合并行策略:在单机内部使用张量并行 + 流水线并行,跨机则使用数据并行。例如 Megatron-LM 在 Transformer 的注意力头和前馈网络上施加张量并行,同时在层间使用流水线并行,最后在数据维度上做多机扩展。此外,ZeRO(零冗余优化器)和 FSDP(全分片数据并行)在数据并行的基础上将优化器状态、梯度和参数分片存储,本质上是在数据并行框架中融入了模型并行的思想。
经济学与计算社会科学中的应用
虽然模型并行主要源自深度学习工程,但其理念在经济学与计算社会科学中亦有回响:
- 大规模计算一般均衡 (CGE) 模型:CGE 中常需将不同产业部门或区域的方程组分块求解,类似于流水线并行的阶段划分。
- 贝叶斯推断中的分块 MCMC:高维贝叶斯统计模型的后验采样可对不同参数块并行执行,各块之间的依赖关系类似于模型并行中的通信拓扑。
- 图神经网络 (GNN) 在供应链分析中的应用:大型供应链图谱天然可按地理或行业切分,子图分别由不同设备建模,跨子图的边构成设备间通信。
关键权衡与局限
模型并行的核心权衡在于通信开销与计算效率之间。切分越细,单设备显存压力越小,但跨设备通信量越大;流水线段数越多,气泡占比可能越高。此外,并非所有网络结构都易于切分——具有密集跳跃连接(skip connection)或非局部依赖的架构(如 DenseNet、Transformer 中的自注意力)在模型并行下会产生更多跨设备通信。实践中,高效的模型并行需要对硬件拓扑(GPU 互联带宽、节点间网络延迟)和模型架构有深入理解,做到通信模式与硬件拓扑的对齐。