1. 分布式訓練概述
隨著語言模型參數量和所需訓練數據量的急速增長,單個機器上有限的資源已無法滿足大語言模型訓練的要求。因此,設計分布式訓練(Distributed Training)系統來解決海量的計算和內存資源需求問題變得至關重要。
分布式訓練是指將機器學習或深度學習模型訓練任務分解成多個子任務,并將子任務分發給多個計算設備并行地進行訓練。這些計算設備可以是中央處理器(CPU)、圖形處理器(GPU)、張量處理器(TPU)或神經網絡處理器(NPU)。
1.1 原理
- 任務拆分與分發
- 一個模型訓練任務往往會有大量的訓練樣本作為輸入,可以利用一個計算設備完成,也可以將整個模型的訓練任務拆分成子任務,分發給不同的計算設備,實現并行計算。
- 輸出合并
- 對每個計算設備的輸出進行合并,最終得到與單個計算設備等價的計算結果。由于每個計算設備只需要負責子任務