資料並行(Data Parallelism)是什麼?

資料並行是一種分散式訓練方法,將資料分割成多份,分配給多個節點,每個節點使用相同模型副本訓練不同資料子集。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

資料並行(Data Parallelism)是什麼? 機器學習深度學習

你有沒有在多台機器上一起訓練大模型時,還在想這件事到底該怎麼看?

把它想成把同一份作業分給很多人同時寫。 它是分散式訓練最常見的方法之一,因為每台機器都跑完整模型。 只要同步好梯度,就能把資料切開、把訓練速度拉快。

你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。

容易混淆

model-parallelism vs 模型並行 (Model Parallelism):資料並行是把資料切開,每個機器跑完整模型;模型並行是把模型切開,每個機器跑模型一部分,兩者都是為了加速訓練,但分工方式不同。 常見混淆:資料並行 vs model-parallelism 資料並行是切資料,模型並行是切模型。

記住這句就好

資料切開,模型每台都一樣。

實際案例

GPU 叢集 每張 GPU 處理不同 mini-batch,最後同步更新參數。 大語言模型預訓練 資料量超大時,把樣本分散到多個節點一起算。

算法與應用

  1. 優點是好理解、容易擴展,也比較適合大多數訓練框架。
  2. 真正的瓶頸通常是梯度同步和網路傳輸。
  3. 當模型太大時,資料並行可能不夠,這時要考慮模型並行。

情境判斷

Q1: 多台機器一起訓練同一個模型,最典型的分工方式是什麼?

把資料切開,每台機器跑完整模型,這就是資料並行。

Q2: 如果同步梯度很慢,先懷疑什麼?

先懷疑網路瓶頸或節點數太多。

常見問題

資料並行的優點是什麼?

資料並行的主要優點是易於實現和理解,並且可以有效地利用多個計算節點的計算能力。它允許使用更多的計算資源,並行處理訓練任務,從而縮短訓練時間,並提高模型訓練的效率。

資料並行的缺點是什麼?

資料並行的主要缺點是需要同步梯度,這可能會引入通信瓶頸,尤其是在節點數量較多或網路頻寬有限的情況下。此外,資料分割策略也會影響訓練的收斂速度和模型效能。

如何選擇合適的梯度同步方法?

選擇梯度同步方法需要考慮多個因素,包括計算節點的數量、網路頻寬、模型的大小等。參數伺服器適用於節點數量較少的情況,而All-Reduce適用於節點數量較多且網路頻寬較高的情況。