大規模訓練
通訊與計算重疊(communication–computation overlap)
每種平行策略都會增加通訊——all-reduce、all-gather、all-to-all、點對點傳遞——而若某個裝置閒坐著等這些傳輸,擴展效率就會崩潰。通訊與計算重疊是一門安排工作的學問,使集合通訊與不依賴它們的算術同時進行。做得好,通訊時間就藏在裝置本來就要做的計算之下,分散模型所付出的牆鐘成本便趨近於零。
機制很具體。在資料平行中,梯度被分桶,每個桶的 all-reduce 在其層的反向一完成就啟動,與更早層的反向重疊。在 FSDP 與 ZeRO-3 裡,第 i+1 層權重的 all-gather 在第 i 層計算時就預取。集合通訊發在獨立的通訊串流上,使硬體的複製引擎與計算單元並行運作。極限是真實存在的:重疊需要有餘裕的頻寬與可藏身的獨立工作,而在慢速或超額訂閱的網路上——或對 MoE 那種裸露的 all-to-all 集合通訊——可能根本沒有足夠的計算能蓋住傳輸。
一次大型訓練能否達到高利用率,第一階近似就是看它的通訊有多徹底地與計算重疊。實務上回報的「模型 FLOPs 利用率」指標,很大程度上就是在量度加速器有多少時間沒卡在裸露的通訊上。
重疊能藏住延遲,卻永遠減不了搬動的位元組數;一旦某個集合通訊大到讓鏈路飽和的時間超過可用計算,它就會裸露出來,重疊也就無能為力了。
又稱
另見