分布式机器学习原理

协调整个集群需要解决单台机器无法解决的问题。若 Part I 构建了物理基础,那么 Part II 确立分布的逻辑:将一组相互独立的加速器转化为单一、统一机器的算法、协议与协调策略。分布式学习的物理规律支配着这一转变,提供第一性原理层面的推理,解释为何增加更多 GPU 并不总能带来线性加速,以及为何通信而非计算常常是隐藏的瓶颈。

在这一规模上,工程挑战是并行化与协同之间的权衡。对模型进行切分可以降低单设备的内存压力,但同时增加了为保持权重同步所需的通信量。扩展到数千个节点会缩短训练时间,但同时也降低了平均无故障时间(MTBF),使容错成为系统必需的组成部分,而非运维上的额外开销。这些原理分解了 Part I 提出的通信开销,并补充了规模带来的可靠性开销。

第一种压力来自规模经济本身:前沿能力需要算力,但每一次改进都变得越来越昂贵。

Principle 9: 通用规模定律
不变量:对于前沿基础模型,损失(\(\mathcal{L}\))随计算量(\(C\))、数据集规模(\(D\))和参数量(\(P\))呈幂律函数改善,其中 \(\gamma\) 表示经验缩放指数。用于说明收益递减的计算量简化式为: \[ \mathcal{L}(C) \propto C^{-\gamma} \]

含义:在模型能力的前沿,规模是硬性要求,而非一种优化选择。由于损失随计算量次线性改善,每一轮等量改进所需计算量都成比例地更多;这种收益递减推动了从单机训练向仓库级集群的转变。

那对规模的需求,使每个训练步都变成一次在更快的本地计算与更慢的全局协同之间的权衡。

Principle 10: 集群定律(分布式单步时间定律)
不变量:在 \(N\) 个工作节点或加速器上完成一个训练步所需的时间,是并行化计算、通信、同步,以及可被隐藏的重叠部分之和,其中 \(0 \le T_{\text{overlap}} \le \min\!\left(\frac{T_{\text{compute}}}{N}, T_{\text{comm}}(N) + T_{\text{sync}}(N)\right)\)。 \[ T_{\text{step}}(N) = \frac{T_{\text{compute}}}{N} + T_{\text{comm}}(N) + T_{\text{sync}}(N) - T_{\text{overlap}} \]

含义:扩展是一场在并行化计算(在理想切分下随 \(N\) 而缩小)、通信开销与同步开销之间的竞赛。为了高效扩展,算法必须减少或摊薄 \(T_{\text{comm}}(N)\) 与 \(T_{\text{sync}}(N)\)(例如通过梯度累积,改变有效批大小与收敛形态;或通过压缩,可能引入数值误差),并通过通信隐藏与流水线执行最大化 \(T_{\text{overlap}}\)。

该权衡中的通信项由互连结构的延迟与带宽决定,因此消息大小决定了哪种优化更有效。

Principle 11: 带宽—延迟权衡(α-β 模型)
不变量:通信时间是固定延迟(\(\alpha\))、消息大小(\(n\))与消息相关带宽(\(\beta\))的函数。 \[ T(n) = \alpha + \frac{n}{\beta} \]

含义:小消息(例如混合专家路由元数据)受延迟主导;大消息(例如梯度)受带宽主导。优化策略必须匹配所处形态:融合小消息以摊薄 \(\alpha\),压缩大消息以降低 \(n\)。

即使通信已经经过调优,更大的集群仍会频繁发生故障,因此进度本身必须得到保护。

Principle 12: Young-Daly 检查点定律
不变量:最优检查点间隔(\(\tau_{\text{opt}}\))在写入检查点的成本(\(T_{\text{write}}\))与因系统级故障而返工已丢失进度的预期成本(\(\text{MTBF}_{\text{system}}\))之间取得平衡。 \[ \tau_{\text{opt}} = \sqrt{2 \cdot T_{\text{write}} \cdot \text{MTBF}_{\text{system}}} \]

含义:检查点化并非“免费”。随着集群规模增长,MTBF 下降,迫使检查点更加频繁。这要求高带宽存储(突发缓冲),以避免 I/O 主导训练时间。

容错只是更广泛规则的一个例子:分布式系统很少消除开销,而是将其转移。

Principle 13: 开销的转移
不变量:分布式机器学习优化往往在 Compute、Communication 与 Coordination(即 C\(^3\) 分类法)之间重新分配开销。减少某一项可能增加另一项,因此设计必须评估全部三项。

含义:异步训练可以消除全局协同壁垒(\(T_{\text{sync}}(N) \to 0\)),但可能引入梯度陈旧,表现为额外的训练迭代(\(T_{\text{compute}} \uparrow\))。流水线并行可以在相对更细粒度模型切分的情况下减少通信量,但会引入流水线气泡时间(\(T_{\text{sync}}(N) \uparrow\))。C\(^3\) 分类法揭示了每种设计在哪里支付其开销。

在这些不变量就位之后,Part II 确立了集群如何协调分布式训练工作:并行化策略(数据、张量、流水线与专家并行)将工作负载切分到数千个加速器上;集合通信操作(AllReduce、AllGather、AllToAll)将这些加速器绑定为连贯的计算机;容错机制吸收规模带来的必然故障;以及编排层(Slurm、Kubernetes 及其同类)将集群分配给工作负载。这些章节共同构建了将 Part I 的物理集群转化为可运行的分布式训练系统的算法与运维纪律。

回到顶部
← 三卷书架