3.2 数据并行、张量并行、流水并行怎么选?

📅 发布时间:2026/7/16 2:12:31 👁️ 浏览次数:
3.2 数据并行、张量并行、流水并行怎么选?
3.2 分布式训练:并行策略与 DeepSpeed 实践基于《大规模语言模型:从理论到实践(第2版)》第4章 分布式模型训练为什么这一节重要当模型参数量达到 7B、70B 甚至更大时,单卡显存无法容纳完整模型与优化器状态,必须依赖分布式训练把计算与显存分摊到多卡或多机。分布式训练有多种并行方式:数据并行、张量并行、流水并行,以及 ZeRO 等显存优化技术。选错策略会导致显存溢出、训练极慢或通信成为瓶颈。本节基于原书第 4 章与 DeepSpeed 实践,把各类并行的适用场景、ZeRO 的分片逻辑与使用顺序讲清,并给出「先跑通再调优」的落地建议。学习目标学完本节,你将能够:区分三种并行:准确说明数据并行(DP)、张量并行(TP)、流水并行(PP)各自如何切分计算与数据、适用什么规模的模型、以及通信特点。理解 ZeRO:说明 ZeRO-1/2/3 分别对优化器状态、梯度、参数做了哪些分片与通信,以及 ZeRO-3 相比 ZeRO-2 的额外收益与通信开销。能做初步选型:根据模型规模(如 7B/70B)与单卡显存、卡数,初步选择「DP+ZeRO」或「DP+ZeRO+TP/PP」的组合,并能在 DeepSpeed 配置上跑通一个示例。一、数据并行(Data Parallelism, DP)(原书第 4 章)做法:每张卡上各保留一份完整的模型副本,每卡处理不同的数据(batch 的不同分片);前向与反向在各卡本地完成,梯度在卡间做AllReduce(或等价操作)得到全局梯度,再各自用相同梯度更新参数,从而保证各卡参数一致。优点:实现简单、与单卡训练逻辑最接近;扩展性好,卡数增加时只需保证数据分片与梯度同步正确。缺点:单卡必须能放下完整模型与一份优化器状态等,因此模型不能超过单卡显存。适用:模型能完整放入单卡(或通过 ZeRO 等优化后能放入)时,优先用数据并行扩规模。原书第 4 章将其作为基础并行方式介绍。通信:每步反向结束后一次 AllReduce(或 ReduceScatter + AllGather),通信量与模型参数量成正比;卡数多时通信可能成为瓶颈,需结合梯度累积与通信重叠等手段。