預訓練
分散式 LLM 訓練(distributed LLM training)
一個前沿 LLM 太大、訓練的資料也太多,根本塞不進單一晶片,所以訓練被攤到數百甚至數千顆加速器上、像單一台機器那樣運作。分散式訓練就是這門手藝:把模型、資料與優化器狀態切開、分到所有這些裝置上,並讓它們步調一致,使結果與在一顆大得不可能的 GPU 上訓練完全相同。
這會結合好幾種平行軸。資料平行複製模型並切分批次;張量平行把單層內的個別矩陣乘法切開;管線平行把不同層分派給不同裝置;分片則攤開優化器狀態。真實的訓練會把這些疊成三維平行,依記憶體上限與叢集網路來挑選組合。每一步之間,裝置會透過 all-reduce 之類的集體運算交換梯度。
核心戰役是通訊。每個裝置都得不斷分享結果,若運算無法把這些流量藏起來,昂貴的加速器就只能閒置。所以分散式訓練既是機器學習問題,也同樣是網路與系統問題;一次映射不良的訓練,可能浪費掉大部分硬體。
又称
另见