截至2023年,大型语言模型的参数量已突破万亿级别(如Google PaLM 2达到3400亿参数),单卡显存容量(NVIDIA A100 80GB)与计算能力(312 TFLOPS)面临严峻挑战。分布式训练通过多维度并行策略实现:
- 算力维度:聚合多卡计算能力
- 存储维度:分布式参数存储
- 通信维度:优化数据传输路径
本文将深入剖析三大并行策略的数学本质。
一、数据并行:分布式优化的数学基础
1.1 同步SGD的收敛性证明
定义:设有K个Worker,各Worker本地梯度为 g k = ∇ θ L k ( θ ) g_k = \nabla_\theta L_k(\theta) gk=∇θLk(θ),学习率 η \eta η,更新规则:
θ t + 1 = θ t − η ⋅ 1 K ∑ k = 1 K g k ( t ) \theta_{t+1} = \theta_t - \eta \cdot \frac{1}{K}\sum_{k=1}^K g_k^{(t)} θt+1=θt−η⋅K1k=1∑Kgk(t)
收敛条件(依据[Li et al., 2014]):
假设损失函数 L L L满足L-smooth且强凸,当学习率满足 η < 1 L \eta < \frac{1}{L} η<L1时,迭代误差界为:
E [ ∣ ∣ θ t − θ ∗ ∣ ∣ 2 ] ≤ ( 1 − η μ ) t ∣ ∣ θ 0 − θ ∗ ∣ ∣ 2 + η σ 2 K μ \mathbb{E}[||\theta_t - \theta^*||^2] \leq (1 - \eta\mu)^t ||\theta_0 - \theta^*||^2 + \frac{\eta\sigma^2}{K\mu} E[∣∣θt−θ∗∣∣2]≤(1−ημ)t∣∣θ0−θ∗∣∣2+Kμ