作為#opensourceweek第4天的一部分,DeepSeek引入了2種新工具,以使深度學習更快,更有效:DualPipe和EPLB。這些工具有助於改善計算機在培訓過程中處理計算和通信的方式,從而使過程更加順暢,更快。在瞬息萬變的深度學習世界中,找到更好的培訓模型的方法是關鍵。 DualPipe和EPLB是解決這些挑戰的前進。本文解釋了這些工具如何工作以及它們如何在深度學習中有所作為。
? #opensourceweek的第4天:優化的平行性策略✅> dualpipe - 一種用於計算通信的雙向管道並行算法在V3/R1培訓中重疊。 https://t.co/gbtxsvwlt4>✅eplb - v3/r1的專家 - 平行負載平衡器。
此版本標誌著我們開源周慶祝活動的第4天,在第1天的FlashMl成功推出之後,第2天的DEEPEP和第3天的DeepGemm。 內容表的內容
>
>理解管道並行
dualPipe:雙向管道並行parallelism
鍵特徵
參數
Method | Bubble | Parameter | Activation |
1F1B | (PP-1)(? ?) | 1× | PP |
ZB1P | (PP-1)(? ?-2?) | 1× | PP |
DualPipe | (PP/2-1)(?&? ?-3?) | 2× | PP 1 |
其中:
>示例DualPipe調度配置,用於8 pp(管道並行性)等級和20個微批次,重點關注兩個方向。沿反向方向處理的微批次在向前方向上反映了那些,從而使我們能夠省略其批次標識符,以簡化插圖。共有共同黑邊界的兩個單元參與重疊的計算和通信任務。
有關更多信息,請訪問dualpipe github存儲庫> eplb:專家 - 平行負載平衡器
鍵功能
>層次負載平衡
當服務器節點的數量平均分為專家組計數時,
層次負載平衡策略會激活。該策略通過以促進平衡負載分配的方式將專家組最初組織到節點上,利用群體限制的專家路由。隨後,在每個節點內發生專家複製以維持負載平衡。最終,這些複製的專家被分配給單個GPU,從而在不同的GPU中實現了負載平衡。當與較小的專家平行尺寸打交道時,層次負載平衡政策特別適合預填充階段。>
>示例代碼:
import torch import eplb weight = torch.tensor([[ 90, 132, 40, 61, 104, 165, 39, 4, 73, 56, 183, 86], [ 20, 107, 104, 64, 19, 197, 187, 157, 172, 86, 16, 27]]) num_replicas = 16 num_groups = 4 num_nodes = 2 num_gpus = 8 phy2log, log2phy, logcnt = eplb.rebalance_experts(weight, num_replicas, num_groups, num_nodes, num_gpus) print(phy2log)
輸出:
tensor([[ 5, 6, 5, 7, 8, 4, 3, 4, 10, 9, 10, 2, 0, 1, 11, 1], [ 7, 10, 6, 8, 6, 11, 8, 9, 2, 4, 5, 1, 5, 0, 3, 1]])
有關詳細的實現指令,請參閱EPLB GitHub存儲庫。
分析數據:分析計算 - 通信重疊為了有效地分析V3/R1中的計算通信重疊,分析數據提供了基本的見解。可以使用這些數據來理解性能的瓶頸和訓練過程的優化。
全面分析:這種方法提供了對計算和通信階段的廣泛評估,促進了對系統性能指標的深刻理解。
>
未來方向通過雙管和EPLB在平行策略中的進步標誌著精煉深度學習訓練程序的大步發展。通過利用這些算法,研究人員和從業人員都可以實現卓越的資源利用和加速培訓時間,最終達到更有效的模型創建。分析數據的同化增強了校準這些過程的能力,確保深度學習的快速發展軌跡持續存在。
以上是DeepSeek發布的優化平行性策略的詳細內容。更多資訊請關注PHP中文網其他相關文章!