DeepSeek 開源周第四天放大招,推出平行計算最佳化三劍客,直接放出了DeepSeek-V3和R1 模型背後的平行計算最佳化技術,一口氣帶來了三個寶藏項目!
三個項目,簡單來說分別對應:
✅ DualPipe - 雙向流水線平行演算法,讓計算和通訊高效協同
✅ EPLB - 專家平行負載平衡器,讓每個 GPU 都“雨露均霑”
✅ profile-data - 性能分析資料,深入剖析 V3/R1 的平行奧秘
這三個項目個個都是硬核技術,每一個都直擊大模型訓練和推理的效率痛點!下面帶大家逐個解讀
項目地址:https://github.com/deepseek-ai/DualPipe
DualPipe 是 DeepSeek-AI 在DeepSeek-V3 技術報告中提出的創新雙向流水線平行演算法。它厲害在那呢?
看看官方提供的 Schedules 圖,簡直是藝術! 🎨 清晰展示了 8 個 PP ranks 和 20 個 micro-batches 的調度策略,前向和後向計算對稱進行,重疊區域一目瞭然!
再看看 Pipeline Bubbles and Memory Usage Comparison 表格,DualPipe 對比 1F1B 和 ZB1P,在減少 bubbles 的同時,記憶體效率也槓槓的!
如果你想在自己的項目中用上 DualPipe,DeepSeek-AI 也貼心地提供了 Quick Start 指南和 example.py 示例程式碼。 基於 PyTorch 2.0+ 版本就能輕鬆上手!
項目地址:https://github.com/deepseek-ai/eplb
EPLB (Expert Parallelism Load Balancer) 顧名思義,是為專家平行 (Expert Parallelism, EP)量身打造的負載平衡利器!
在 EP 中,不同的專家模型會被分配到不同的 GPU 上。 但是,專家模型的負載可能會隨著輸入資料變化而波動,導致 GPU 負載不均,影響整體效率。 EPLB 就是來解決這個問題的!
DeepSeek-V3 採用了冗餘專家 (redundant experts)策略,複製重負載專家,並巧妙地將它們分配到不同的 GPU 上,實現負載平衡。 同時,結合 group-limited expert routing 技術,儘量將同一組的專家放在同一節點上,減少跨節點通訊
EPLB 提供了兩種負載平衡策略:
項目提供了詳細的 Interface and Example, 讓你輕鬆理解如何使用 eplb.rebalance_experts 函數,根據專家權重、副本數、組數、節點數和 GPU 數,計算出最優的專家複製和放置方案。 還有生動的 placement plan 圖示,一目瞭然!
項目地址:https://github.com/deepseek-ai/profile-data
DeepSeek直接公開了他們的 訓練 (Training) 和 推理 (Inference) 框架的性能分析資料! 簡直是手把手教你學最佳化!
這些資料是用 PyTorch Profiler 採集的,下載後可以直接在 Chrome 或 Edge 瀏覽器中通過 chrome://tracing 或 edge://tracing 打開,可視化分析! DeepSeek-AI 還貼心地模擬了絕對平衡的 MoE 路由策略用於性能分析
項目提供了 Training, Prefilling 和 Decoding 三種場景的性能資料:
通過這些性能資料,你可以清晰地看到 DeepSeek-AI 是如何精細地最佳化計算和通訊的,學習他們是如何在 low-level 實現上提升效率的。 絕對是研究大模型平行計算的寶貴資料! 💎
這次 DeepSeek AI 開放原始碼的這三個項目,可以說是誠意滿滿,直接把大模型訓練和推理的效率最佳化秘籍都拿出來了!利多AI研究人員