您的位置:首頁 > 軟件教程 > 教程 > 并行訓(xùn)練-流水線

并行訓(xùn)練-流水線

來源:好特整理 | 時間:2024-06-27 08:49:25 | 閱讀:85 |  標簽: S   | 分享到:

并行訓(xùn)練-流水線 簡述 并行訓(xùn)練主要有三種策略: 數(shù)據(jù)并行訓(xùn)練加速比最高,但要求每個設(shè)備上都備份一份模型,顯存占用比較高,但缺點是通信量大。 張量并行,通信量比較高,適合在機器內(nèi)做模型并行。 流水線并行,訓(xùn)練設(shè)備容易出現(xiàn)空閑狀態(tài),加速效率沒有DP高;但能減少通信邊界支持更多的層數(shù),適合在機器間使用。

并行訓(xùn)練主要有三種策略:

  1. 數(shù)據(jù)并行訓(xùn)練加速比最高,但要求每個設(shè)備上都備份一份模型,顯存占用比較高,但缺點是通信量大。
  2. 張量并行,通信量比較高,適合在機器內(nèi)做模型并行。
  3. 流水線并行,訓(xùn)練設(shè)備容易出現(xiàn)空閑狀態(tài),加速效率沒有DP高;但能減少通信邊界支持更多的層數(shù),適合在機器間使用。

流水線并行

Micro-batch(Gpipe)將網(wǎng)絡(luò)結(jié)構(gòu)進行縱向拆分, 每張卡訓(xùn)練其中的幾層. 如果是按照純粹的mini-batch訓(xùn)練, 每層之間是純串行的. 后面的卡會始終等待前面的卡. 所以引入了micro-batch的概念. 把mini-batch進行更細粒度的拆分, 這樣在完成batch0的fp之后, 卡0可以進行batch1的fp, 卡1就能開始batch0的fp. 從而提高并行度.

并行訓(xùn)練-流水線

存在的問題:

  1. 存在bubble_time: 每張卡的空閑時間 = (stage_num - 1) * (fp_time + bp_time)

實際應(yīng)用中 當(dāng)mico-batch個數(shù)大于stageNum的4倍時, 可以忽略bubble_time

  1. 顯存浪費: 當(dāng)進行stage3的micro-batch 3時, 還需要保存前面所有mico-batch的fp中間結(jié)果用于bp.
  2. 在每個mini-batch之間無法并行. 因為下一個minibatch需要等當(dāng)前所有的micro-batch更新完參數(shù)
小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進入好特網(wǎng)手機版本!

掃二維碼進入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)