這次發布包括三個主要項目:
DualPipe– 一種用于 V3/R1 訓練的雙向流水線并行算法,實現計算和通信完全重疊;
EPLB(Expert Parallelism Load Balancer) – 專為 V3/R1 設計的專家并行負載均衡器;
Profile-data– 分析 V3/R1 中計算與通信重疊的性能數據集。

這些工具共同支撐了 DeepSeek-V3 訓練和推理的高效并行處理能力。

我會先介紹這些工具,然后講一講里面提到的技術/名詞。

DualPipe

項目地址:https://github.com/deepseek-ai/DualPipe

DualPipe 是 DeepSeek-V3 技術報告中介紹的創新雙向流水線并行算法。此算法實現了前向計算過程(Forward Pass)(模型處理輸入數據)和后向計算過程(Backward Pass)(模型更新權重)的計算 – 通信階段完全重疊,同時減少了 “流水線氣泡” (Pipeline Bubbles)—— 即計算設備的空閑等待時間。

傳統的流水線并行 (Pipeline Parallelism) 算法在處理大型模型時面臨兩個主要挑戰:
1.計算資源的空閑等待:某些設備必須等待前一個設備完成計算才能開始工作
2.數據傳輸的延遲:設備間數據傳輸占用大量時間

DualPipe 通過雙向處理巧妙解決了這些問題 —— 數據不只是從第一個設備單向流向最后一個設備,而是同時有兩組數據從兩端相向流動。這種雙向設計使得所有設備都能保持高活躍度,顯著減少了空閑等待時間。

在具有 8 個流水線并行級別(即模型分布在 8 個設備上)和 20 個微批次 (Micro-batches)(將大批量數據分成 20 個小塊)的示例中,DualPipe 將兩個方向的數據處理精心排布,使得計算和通信能夠同時進行。

相比傳統的 1F1B (One Forward One Backward)(一前向一后向,即交替執行前向和后向計算)和 ZB1P (Zero-Bubble Pipeline)(零氣泡單向流水線)算法,DualPipe 在減少設備空閑時間方面表現出顯著優勢,尤其在設備數量較多時效果更為明顯。

我知道這里不容易理解,所以畫了個圖

EPLB

項目地址:https://github.com/deepseek-ai/eplb

在使用專家并行 (Expert Parallelism) 技術時,不同的 “專家”(特定于某類任務的神經網絡部分)會被分配到不同的 GPU 上。由于各專家處理的數據量可能差異很大,保持各 GPU 間的工作負載平衡 (Load Balancing) 變得尤為重要。專家并行負載均衡器 (EPLB,Expert Parallelism Load Balancer) 實現了 DeepSeek-V3 論文中描述的“冗余專家” (Redundant Experts) 策略,復制那些工作量較大的專家,然后通過精心設計的算法將這些專家合理分配到各 GPU 上,確保負載均衡。

EPLB 提供了兩種負載均衡策略:

1.層次化負載均衡 (Hierarchical Load Balancing):當服務器節點數量能被專家組數量整除時使用。此策略首先將專家組均勻地分配到各節點,確保不同節點間負載平衡;然后在每個節點內復制專家;最后將復制的專家打包分配給各 GPU,確保每個 GPU 負載平衡。這種策略適用于較小專家并行規模的預填充階段 (Prefilling Stage)(模型處理初始輸入的階段)。

2.全局負載均衡 (Global Load Balancing):在其他情況下使用。此策略不考慮專家組的分布,直接在全局范圍內復制專家并分配到各 GPU 上。這種策略適用于較大專家并行規模的解碼階段 (Decoding Stage)(模型生成輸出的階段)。

得益于 DeepSeek-V3 使用的 “組限制專家路由” (Group-limited Expert Routing) 技術,EPLB 還盡可能將同一組的專家放置在同一物理服務器節點上,以減少跨節點的數據傳輸,提高通信效率。

這里也給畫了個圖

Profile-data

項目地址:https://github.com/deepseek-ai/profile-data

DeepSeek 還開源了其訓練和推理框架的性能分析數據,幫助社區更好地理解計算與通信如何有效重疊以及底層實現細節。這些數據使用 PyTorch Profiler 工具捕獲,可以在 Chrome 或 Edge 瀏覽器的 tracing 頁面直接可視化,直觀呈現各項操作的執行時間和資源占用。

訓練分析數據展示了 DualPipe 中單個前向和后向處理塊對的重疊策略。每個處理塊包含 4 個 MoE (Mixture of Experts)(混合專家模型)層,并行配置與 DeepSeek-V3 預訓練設置一致:EP64(64 路專家并行),TP1(無張量并行 Tensor Parallelism),4K 序列長度。

推理分析則分為兩部分:

1.預填充階段 (Prefilling Stage):使用 EP32 和 TP1 配置,提示長度為 4K,每 GPU 批量大小為 16K 個 token。在預填充階段,使用兩個微批次交錯進行計算和全對全通信 (All-to-All Communication),同時確保注意力計算負載在兩個微批次間平衡。

2.解碼階段 (Decoding Stage):使用 EP128 和 TP1 配置,提示長度 4K,每 GPU 批量大小為 128 個請求。與預填充類似,解碼也利用兩個微批次重疊計算和全對全通信。但與預填充不同的是,解碼期間的全對全通信不占用 GPU 計算單元(Stream Multiprocessors, SMs)—— 網絡通信消息發出后,所有 GPU 計算資源被釋放用于其他計算,系統在計算完成后等待通信完成。

流水線并行技術 (Pipeline Parallelism)

流水線并行是解決大型神經網絡訓練的關鍵技術。可以將其想象為工廠的流水線生產:不同工位負責產品的不同加工步驟,產品從一個工位流轉到下一個工位。在超大規模模型中,單個計算設備的內存無法容納整個模型,流水線并行將模型按層次分割,每個設備只負責處理部分層,然后將輸出傳給下一個設備。

傳統流水線并行面臨兩個主要挑戰:

1.流水線氣泡 (Pipeline Bubbles):指流水線中因設備間依賴關系而產生的空閑等待時間。就像工廠流水線上,某個工位完成工作后,下一個工位才能開始,如果工序時間不均衡,就會產生等待。

2.內存需求 (Memory Requirements):不同流水線策略對模型參數和中間結果的存儲有不同需求,影響內存使用效率。

常見的流水線并行策略包括:

1F1B (One Forward One Backward):交替執行前向和后向傳播,實現簡單但空閑時間較多。
GPipe:將輸入分成多個微批次順序處理,減少但不消除空閑時間。
PipeDream:通過權重穩定技術實現更好的流水線效率,但增加了內存使用。
ZB1P (Zero-Bubble Pipeline):嘗試完全消除空閑時間,但依然有通信開銷。

DualPipe是對這些技術的創新改進,通過雙向數據流動和精細調度,進一步優化了計算資源利用率和通信效率。

專家并行與負載均衡

專家并行 (Expert Parallelism) 是混合專家模型 (Mixture of Experts, MoE) 的一種訓練和部署方法,將不同的 “專家”(模型中專門負責特定類型輸入的子網絡)分配到不同的計算設備上。MoE 模型通常包含多個 “專家” 網絡和一個 “門控” 網絡 (Gating Network),門控決定輸入數據應該由哪些專家處理。

這就像一個專科醫院:不是所有病人都看同一個醫生,而是根據癥狀由分診護士(門控網絡)決定看哪個專科醫生(專家網絡)。這樣醫院規模可以很大,但每個病人只需看幾位相關專科醫生即可。

在專家并行中,負載均衡是一個關鍵挑戰:

1.專家負載不均衡 (Imbalanced Expert Loads):不同專家可能處理不同數量的數據,導致某些 GPU 過載而其他 GPU 閑置。
2.通信開銷 (Communication Overhead):數據在專家間傳輸產生大量通信,特別是在跨物理服務器情況下。
3.資源利用率 (Resource Utilization):不均衡的負載分配導致計算資源浪費。

EPLB 通過以下策略解決這些問題:

1.冗余專家 (Redundant Experts):復制工作量大的專家,將其負載分散到多個 GPU 上。
2.分組限制 (Group Limitation):將專家分組,限制每個輸入可選擇的專家范圍,有助于平衡負載。
3.位置優化 (Placement Optimization):盡可能將相關專家放在同一物理服務器上,減少跨服務器通信。

這些策略使得專家并行在大規模 MoE 模型中更加高效,是 DeepSeek-V3 高性能的關鍵之一。

計算 – 通信重疊技術

在分布式計算中,處理器間需要頻繁交換數據,這些通信操作可能成為性能瓶頸。計算 – 通信重疊 (Computation-Communication Overlap)是一種將數據傳輸與計算同時進行的優化技術,可以顯著提高整體效率。

這就像在餐廳廚房:廚師不必等待服務員送完一道菜再開始準備下一道,而是在上一道菜正在送往餐桌的同時,就開始準備下一道菜。

DeepSeek-V3 采用了多種計算 – 通信重疊策略:

1.微批次重疊 (Micro-batch Overlapping):將數據分成多個小批次,當一個批次在計算時,另一個批次可以進行通信。
2.前向 – 后向重疊 (Forward-Backward Overlapping):在 DualPipe 中,前向傳播的計算與后向傳播的通信可以同時進行。
3.無計算資源占用通信 (Communication without SM Occupation):在解碼階段,通過特殊的網絡實現,通信過程不占用 GPU 計算資源。

Profile-data 項目提供的性能分析數據直觀展示了這些重疊策略的實際效果,包括各種操作的時間分布、資源占用和潛在瓶頸,為開發者優化自己的模型提供了寶貴參考。

回顧與展望

DeepSeek 開源周的第四天,通過開源 DualPipe、EPLB 和 Profile-data 三個項目,展示了其在大模型訓練和推理并行優化方面的技術積累。這些工具共同支撐了 DeepSeek-V3 模型的高效訓練和部署。

DualPipe創新性地實現了雙向流水線并行,顯著減少了計算資源的空閑時間;EPLB通過冗余專家和智能分配策略,解決了專家并行中的負載均衡問題;而Profile-data則提供了直觀的性能數據,展示了計算與通信重疊的具體實現和效果。

這三個項目相互補充,形成了一套完整的大模型并行優化工具鏈,為整個行業帶來參考,堪稱真正的 OpenAI

文章轉載自:一文詳解:DeepSeek 第四天開源的模型設計套件

上一篇:

DeepSeek 第三天開源的 DeepGEMM

下一篇:

DeepSeek 第五天開源的 3FS 文件系統
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費