大模型入门-大模型分布式训练2

大模型分布式训练:把"大象"装进冰箱的终极指南

7.4 DeepSpeed ZeRO 系列:吃干榨净每一寸显存

面对万亿级大模型,前面的招数还是不够用。微软的 DeepSpeed 敏锐地发现:显存不够,往往不是模型本身大,而是模型状态(Model States,包含优化器状态、梯度、模型参数)太占地方 。

在传统 DP 中,每张卡都死板地存着这三大件的完整副本,简直是极大的浪费 。ZeRO (零冗余优化器) 的核心哲学就是:分片存储,用时再取 。

它将优化做到了三个级别:

  1. ZeRO-1 (PosP_{os}Pos): 只把占用最大的"优化器状态(如 Adam 的动量)"切成 NdN_dNd 块,每张卡只存一份。显存开销瞬间直降 4 倍 。

  2. ZeRO-2 (Pos+gP_{os+g}Pos+g): 在第一步基础上,把"梯度"也切成 NdN_dNd 块。显存开销降幅达 8 倍 。

  3. ZeRO-3 (Pos+g+pP_{os+g+p}Pos+g+p): 丧心病狂的终极形态。连"模型参数"本尊也切碎。算到哪一层,就通过网络向其他卡实时借参数。只要你的 GPU 数量足够多,理论上能训练无限大的模型 。

ZeRO-Offload:显存不够,内存来凑

如果即便切碎了,显存还是爆了怎么办?ZeRO-Offload 给出了绝杀:把参数下放到廉价的 CPU 和主板内存里 。

它巧妙地把高并发、高复杂度的前反向传播留在 GPU;把计算量小但极占空间的参数更新过程(Update)扔给 CPU 。由于传输的数据量恒定,随着卡数增加,CPU 的多核优势反而能缩短计算时间 。


7.5 Sequence Parallel:序列并行

在处理动辄 100K 上下的长文本时,Token 序列长度太长也会撑爆显存 。

  • 核心思路: 把一长段话从中间劈开(例如 1024 长度劈成两个 512)。GPU 0 看上半段,GPU 1 看下半段 。

  • 代价与收益: 前向和后向需要各进行一次 All-Gather 通信来交换拼接上下文线索 。代价是吞吐量会下降 10-25%,但换来的是显存峰值直线下降,从而使大模型阅读长篇巨著成为可能 。


7.6 Expert Parallelism:专家并行 (MoE专属)

大模型走向 MoE(混合专家架构)后,迎来了一种新的并行方式 。

  • 核心思路: Transformer 里养了一批"术业有专攻"的专家网络。每次推理时,门控机制会只挑出最契合的 top-k 个专家来工作,其他专家全程摸鱼 。

  • 物理部署: 我们把不同的专家丢到不同的物理显卡上 。

  • 通信挑战: 当数据流过来时,需要进行疯狂的 All-To-All 点对点通信,把不同的 token 快递到对应专家的显卡上 。由于它利用了稀疏激活的特性,实际的吞吐量(Token/s)能得到惊人的翻倍提升 。


7.7 终极总结与面试必考指北

在工业界,大模型的训练绝非使用单一策略,而是"我全都要"的3D/4D混合并行组合拳 。

性能权衡速查表:

策略类别 并发度优势 吞吐量表现 通信压力分析
DP / EP 最优。所有 GPU 同步推进,没人闲着 。 EP 利用 MoE 的稀疏性,大幅提升实际产出 Token/s 。 DP 只需做梯度同步。EP 需要频繁的跨卡交换 。
TP / PP / SP 存在跨卡同步或流水线等待,短期内必定存在 GPU 空闲的 Bubble 。 PP 必须扣除不可避免的气泡时间;TP 和 SP 严重受制于通信带宽压降 。 TP 每层都要做 All-Gather;PP 仅在流水线边界少量通信;SP 有跨卡交换 。

如果你正在准备大模型相关的面试,请务必吃透以下 5 个核心问题:

  1. 参数量 vs 显存占用: 面对不同参数规模,如何通过切分网络或 ZeRO 策略极限压榨显存峰值?

  2. 通信带宽 vs 延迟: 深入辨析 All-Reduce、All-Gather、All-To-All 的底层机制,什么场景下谁会成为系统瓶颈?

  3. 并发度 & 气泡 (Bubble): 在 Pipeline 管线并行中,如何通过设计 micro-batch 数量和 stage 平衡来消灭计算气泡?

  4. MoE 路由与负载: 专家并行中,如何设计健壮的 Top-k 门控机制,防止某个专家被瞬间打满(专家热点),而其他专家无所事事?

  5. 混合并行设计: 给定千卡集群,如何拍板 DP + TP + PP + SP 的最优拓扑结构与调优思路?

bash 复制代码
print('hello')
相关推荐
Pniubi1 小时前
HashMap的扩容和树化边界
java·开发语言
XCDoris2 小时前
郴州logo设计机构
大数据·人工智能·python
gCode Teacher 格码致知3 小时前
Pandas教学-17:Series与Dataframe的关系
开发语言·python·pandas
发量惊人的中年网工3 小时前
分公司访问总部ERP慢怎么办?SD-WAN组网的排查与验收要点
服务器·开发语言·php
下页、再停留3 小时前
【C#桌面客户端系列学习-15】生成可视化图表之折线图、柱状图、饼状图
开发语言·c#
ShineWinsu3 小时前
对于JavaScript:操作元素的解析
开发语言·前端·javascript·面试·web·dom·元素
马良神笔4 小时前
2026 年Rag最近技术前沿总结
后端·python·django
不像程序员的程序媛4 小时前
maven基础
python·pycharm·maven
罗西的思考4 小时前
【Agentic RL】Dressage Staleness 控制深度分析
人工智能·算法·机器学习
quaer4 小时前
弗洛伊德算法--判圈法寻找环的入口O(n) O(1)
数据结构·算法