大規模訓練

三維平行(3D parallelism)

沒有任何單一平行策略能擴展到最大的模型,因為每種都有不同的天花板:張量平行受頻寬限制而困在單一節點,管線平行受氣泡與階段數所限,資料平行受批次大小與梯度同步成本封頂。三維平行把這三者組成正交的軸。裝置被排在一個概念上的格點上;一個軸切分每一層(張量),一個軸把層堆切成階段(管線),一個軸把整條管線複製到不同的資料分片上(資料)。

其藝術在於把這些軸映射到實體拓樸上,讓每種流量都跑在適合它的網路上。張量平行頻繁而沉重的 all-reduce 被放在節點內的高頻寬 NVLink 範圍;管線平行輕量的點對點傳遞走較慢的節點間網路;資料平行每步一次的梯度 reduce-scatter 橫跨最外層、往往最慢的連線,並可與反向過程重疊。ZeRO 或 FSDP 通常騎在資料軸上以順帶切分優化器狀態。選定這三個維度,是在給定叢集下、對記憶體上限、氣泡比例與通訊量所做的約束最佳化。

三維平行(常再加上專家平行作為第四軸)是兆級參數訓練的標準藍圖。它的難處不在任一單項技術,而在它們之間的交互——動一個維度就會牽動其他維度的記憶體與通訊預算,因此調整配置本身就是工程投入的一大部分。

N = d \times t \times p \quad(\times\, e\ \text{for MoE})

裝置數分解為資料(d)、張量(t)、管線(p)三度,混合專家時再加上可選的第四軸專家度 e。

各維度相乘:總裝置數等於資料度乘張量度乘管線度,因此格點的因式分解本身就是一個設計選擇,對給定叢集並無唯一正解。

又稱
3D parallelismdata+tensor+pipeline parallelism三維平行