
全網都在要Manus AI邀請碼,可能是 DeepSeek 后最大驚喜
首先,我得說明:本次發布較為硬核,我盡量寫得清晰,但最好配合 AI 進行閱讀
話題回來,DeepEP 這東西專門用于 MoE 的分發與合并操作,同時支持包括 FP8 在內的低精度運算。
同時的,DeepEP 針對 DeepSeek-V3 論文中提出的組限制門控算法進行了特別優化,為非對稱域帶寬轉發(如從 NVLink 域到 RDMA 域)提供了一系列高性能核心。這些核心不僅具有高吞吐量,適合訓練和推理預填充任務,還支持流多處理器(SM)數量控制。
對于延遲敏感的推理解碼場景,DeepEP 包含一組純 RDMA 低延遲核心,將延遲降至最低。庫還引入了一種基于鉤子的通信-計算重疊方法,不占用任何 SM 資源,進一步提升效率。
DeepEP 在各種場景下展現出色的性能。在具有 NVLink 和 RDMA 轉發功能的標準核心測試中,使用 H800 GPU(NVLink 最大帶寬約 160 GB/s),每個 GPU 連接到 CX7 InfiniBand 400 Gb/s RDMA 網卡(最大帶寬約 50 GB/s),按 DeepSeek-V3/R1 預訓練設置(每批 4096 個 token,7168 隱藏維度,top-4 組,top-8 專家,FP8 分發和 BF16 合并)進行測試。
內節點通信性能達到 153-158 GB/s 的 NVLink 帶寬,而跨節點通信可達 43-47 GB/s 的 RDMA 帶寬。
在低延遲核心測試中,使用純 RDMA,按典型的 DeepSeek-V3/R1 生產設置(每批 128 個 token,7168 隱藏維度,top-8 專家,FP8 分發和 BF16 合并),分發操作延遲僅為 163-194 微秒,合并操作延遲為 318-369 微秒,同時保持 39-46 GB/s 的 RDMA 帶寬。
混合專家模型是一種神經網絡架構,將多個”專家”網絡組合在一起,由”門控”網絡決定將輸入數據路由到哪些專家。 這種架構允許模型規模大幅增長,同時保持計算效率,因為每次處理只激活部分專家而非全部網絡。
MoE 概念最早由 Jacobs、Jordan 和 Hinton 在 1991 年提出,但直到近年才在大型語言模型中得到廣泛應用。谷歌的 Switch Transformers、微軟的 Z-Code 以及 DeepSeek 的 DeepSeek-V3 都采用了 MoE 架構,通過專家稀疏激活實現了更大規模的模型訓練和部署。
專家并行是分布式訓練的一種方式,將 MoE 中的不同專家分配到不同的計算設備上。 與數據并行、模型并行等其他分布式訓練策略不同,專家并行利用 MoE 的稀疏激活特性,使模型規模能夠隨設備數量線性擴展,而不會相應地增加計算成本。
專家并行的核心挑戰在于專家之間的通信效率,這正是 DeepEP 重點解決的問題。通過優化的通信方案,DeepEP 顯著降低了專家之間數據交換的開銷。
在 MoE 架構中,兩個關鍵操作是分發(dispatch)和合并(combine):
這兩個操作需要設備間的全對全(all-to-all)通信模式,即每個設備需要向其他所有設備發送和接收數據。DeepEP 提供的高效核心大幅優化了這一過程,減少了通信瓶頸。
DeepEP 優化了兩種不同通信域之間的數據傳輸:
理解并優化這兩種域之間的數據傳輸對于大規模分布式 MoE 模型至關重要。DeepEP 專門為非對稱域帶寬轉發場景提供了優化核心。
為提高性能和減少內存需求,DeepEP 支持低精度數值格式,特別是 FP8(8 位浮點數)。 與傳統的 FP32(32 位)或 FP16(16 位)相比,FP8 精度雖然較低,但在許多深度學習任務中表現足夠好,同時能顯著提高計算效率和減少內存帶寬需求。
DeepSeek-V3 論文中提出的組限制門控算法是一種改進的 MoE 路由策略。傳統 MoE 可能導致負載不均衡,某些專家過度使用而其他閑置。
組限制門控通過將專家分組并限制每組內可選擇的專家數量,更好地平衡了計算負載,提高了硬件利用率和訓練效率。
NVIDIA 的 Hopper GPU 架構(如 H100、H800)是專為 AI 和高性能計算設計的計算平臺。
Hopper 引入了多項創新,包括 Transformer 引擎、更高的計算密度和增強的多 GPU 互連能力。DeepEP 專門針對 Hopper 架構進行了優化,以發揮其全部潛力。
流多處理器是 GPU 的基本計算單元。DeepEP 提供 SM 數量控制功能,允許開發者精確控制核心使用的計算資源,為不同工作負載找到最佳平衡點。
值得注意的是,DeepEP 的基于鉤子的通信-計算重疊方法不占用任何 SM 資源,實現了通信和計算的真正并行。
使用 DeepEP 需要 Hopper GPU、Python 3.8 以上、CUDA 12.3 以上、PyTorch 2.1 以上,以及用于內節點通信的 NVLink 和跨節點通信的 RDMA 網絡。庫依賴于一個修改版的 NVSHMEM,安裝前需先配置此依賴。
DeepEP 提供了清晰的 Python API,使開發者能輕松地將其集成到現有 MoE 模型中。對于推理場景,DeepEP 的低延遲模式特別有價值,提供不占用 SM 資源的通信-計算重疊功能。
# Build and make symbolic links for SO files
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py build
# You may modify the specific SO names according to your own platform
ln -s build/lib.linux-x86_64-cpython-38/deep_ep_cpp.cpython-38-x86_64-linux-gnu.so
# Run test cases
# NOTES: you may modify the init_dist
function in tests/utils.py
# according to your own cluster settings, and launch into multiple nodes
python tests/test_intranode.py
python tests/test_internode.py
python tests/test_low_latency.py
NVSHMEM_DIR=/path/to/installed/nvshmem python setup.py install
更多細節,可在官方 repo 里找
對于生產環境,DeepEP 提供了詳細的網絡配置建議:
這些配置建議對于在大規模集群中發揮 DeepEP 的最佳性能至關重要。
DeepEP 作為 DeepSeek 開源周的第二日發布,為混合專家模型提供了高效的通信解決方案。通過優化的全對全 GPU 核心、低延遲 RDMA 操作和創新的不占用計算資源的通信-計算重疊方法,DeepEP 大幅提升了 MoE 模型在訓練和推理階段的性能。
DeepEP 當前完全支持 Hopper GPU 架構,主要在 InfiniBand 網絡環境中測試,但理論上也兼容 RoCE(RDMA over Converged Ethernet)。
隨著社區的參與和貢獻,我們可以期待 DeepEP 在更多硬件平臺上的擴展支持。
文章轉載自:一文詳解:DeepSeek 第二天開源的 DeepEP