分布式训练基础(DP/DDP)
一句话总结
分布式训练通过多GPU并行化加速LLM训练,数据并行(Data Parallelism)是最基础的策略——每个GPU持有完整模型副本但处理不同的数据子集。
核心概念
Data Parallelism(DP):单进程多线程,存在GIL瓶颈和GPU负载不均(GPU0是瓶颈)。Distributed Data Parallelism(DDP):多进程架构,每个GPU一个进程。流程:(1)每个GPU持有完整模型副本;(2)每个GPU处理不同的mini-batch;(3)反向传播后通过AllReduce同步梯度(Ring AllReduce或树形AllReduce);(4)各GPU用相同的聚合梯度更新参数。DDP的关键优化:梯度通信与反向传播重叠(overlap)——不等所有梯度算完就开始同步已算好的梯度。等效Batch Size = 单卡Batch Size × GPU数量。
为什么重要
单张GPU无法在合理时间内完成LLM训练。GPT-3的175B参数在单张A100上训练需要约355年。DDP是最基础的多GPU训练方案,也是所有更复杂分布式策略(FSDP、流水线并行、张量并行)的基础。理解DDP是进阶分布式训练的前提。
实践要点
DDP的通信瓶颈在AllReduce——梯度大小等于模型参数量×2字节(BF16);DDP要求每张GPU能装下完整模型+优化器状态,7B模型约需60-80GB显存(BF16+AdamW);对于更大的模型需要使用ZeRO/FSDP来分片优化器状态和参数;torchrun是启动DDP训练的标准命令。
常见误区
误区一:DP和DDP效果一样——DDP性能远优于DP,后者受GIL限制且GPU0成为瓶颈。误区二:DDP可以训练任意大的模型——DDP要求每张GPU装下完整模型,超出显存则需FSDP/ZeRO/模型并行。误区三:GPU越多训练越快——通信开销随GPU数量增加,存在边际递减效应,需要保持合理的计算/通信比。