資料並行 是什麼?
Data Parallelism — 資料並行 的完整解釋
資料並行是一種分散式訓練方法,將資料分割成多份,分配給多個節點,每個節點使用相同模型副本訓練不同資料子集。
容易混淆
model-parallelism vs 模型並行 (Model Parallelism):資料並行是把資料切開,每個機器跑完整模型;模型並行是把模型切開,每個機器跑模型一部分,兩者都是為了加速訓練,但分工方式不同。 常見混淆:資料並行 vs model-parallelism 資料並行是切資料,模型並行是切模型。
記住這句就好
資料切開,模型每台都一樣。
實際案例
GPU 叢集 每張 GPU 處理不同 mini-batch,最後同步更新參數。 大語言模型預訓練 資料量超大時,把樣本分散到多個節點一起算。
算法與應用
- 優點是好理解、容易擴展,也比較適合大多數訓練框架。
- 真正的瓶頸通常是梯度同步和網路傳輸。
- 當模型太大時,資料並行可能不夠,這時要考慮模型並行。
情境判斷
Q1:多台機器一起訓練同一個模型,最典型的分工方式是什麼? → 把資料切開,每台機器跑完整模型,這就是資料並行。 Q2:如果同步梯度很慢,先懷疑什麼? → 先懷疑網路瓶頸或節點數太多。
相關術語
常見問題
資料並行的優點是什麼?
資料並行的主要優點是易於實現和理解,並且可以有效地利用多個計算節點的計算能力。它允許使用更多的計算資源,並行處理訓練任務,從而縮短訓練時間,並提高模型訓練的效率。
資料並行的缺點是什麼?
資料並行的主要缺點是需要同步梯度,這可能會引入通信瓶頸,尤其是在節點數量較多或網路頻寬有限的情況下。此外,資料分割策略也會影響訓練的收斂速度和模型效能。
如何選擇合適的梯度同步方法?
選擇梯度同步方法需要考慮多個因素,包括計算節點的數量、網路頻寬、模型的大小等。參數伺服器適用於節點數量較少的情況,而All-Reduce適用於節點數量較多且網路頻寬較高的情況。