DeepSeek开源Day4:DualPipeEPLB技术详解

img

2 月 24 日,DeepSeek 启动 “开源周”,第四个开源的代码库为 DualPipe 与 EPLB(一下发布了两个)。DualPipe 与 EPLB 依然使用了大量与 Hopper 架构绑定的技术。
DualPipe 是由 DeepSeek-AI 团队开发的一种双向流水线并行通信算法,主要用于优化大模型(如 DeepSeek-V3/R1)的数据交互和训练效率。
EPLB (Expert Parallelism Load Balancer,专家并行负载均衡器)则主要用于优化混合专家模型(MoE)的分布式部署,特别是在 DeepSeek-V3 和 DeepSeek-R1 等大规模语言模型的训练中。
DualPipe 负责提升通信效率,确保信道均衡;EPLB 则负责优化专家副本分配,确保不同 GPU 节点的负载均衡。
相对前两天的 FlashMLA 和 DeepGEMM,DualPipe 与 EPLB 更多偏向于工程优化。当然这两者的工程优化也不是大部分团队可以做的。需要对信道优化和推断集群部署有很强的软硬件综合优化能力。
1 DualPipe 与 EPLB 简介
1.1 DualPipe 核心特点
DualPipe 具有以下核心特点:
1)计算与通信重叠DualPipe 的设计目标是最大化集群设备的计算性能,通过在前向传播(Forward)和后向传播(Backward)阶段实现计算与通信的完全重叠,显著减少传统流水线并行中的 “气泡”(Pipeline Bubble,即空闲等待时间)。这对于需要跨节点协作的专家并行(Expert Parallelism)场景尤为重要。
2)双向调度与传统的单向流水线并行不同,DualPipe 采用双向调度策略,从流水线的两端同时输入微批次(Micro-batches),充分利用硬件资源。这种方法在保持计算通信比例恒定的情况下,即使模型规模进一步扩大,也能维持接近零的通信开销。
3)高效扩展性DualPipe 针对跨节点的混合专家模型(MoE)进行了优化,通过减少通信瓶颈,使得大规模分布式训练能够在相对有限的硬件资源(如 H800 GPU)上高效运行。
4)显存优化DualPipe 将模型的最浅层(包括嵌入层)和最深层(包括输出层)部署在同一流水线级别(PP Rank),实现参数和梯度的物理共享,进一步提升内存效率。这种设计减少了高代价的张量并行(Tensor Parallelism)需求。

img

DualPipe 优化(来源:DeepSeek)
1.2 EPLB 核心特点
为保证 MoE 部分不同专家之间的负载均衡,会将共享专家和高负载的细粒度专家在集群的不同 GPU 做多个复制,让 GPU 把更多的热数据(发给共享专家的)跑起来。这个方案就是 EPLB。
EPLB 具有如下核心特点:
1)负载均衡优化EPLB 通过复制高负载专家(Redundant Experts Strategy)并对专家分配进行启发式调整,确保不同 GPU 之间的负载均衡。这种方法解决了专家并行中因专家负载不均导致的计算资源浪费问题。分层负载平衡策略也可用于预填充阶段,具有较小的专家并行规模。
2)跨节点通信优化在 DeepSeek-V3 的技术报告中提到,EPLB 尝试将同一组的专家尽量分配到同一节点,减少跨节点的数据传输开销。这种分组限制路由(Group-Limited Expert Routing)策略显著提升了分布式训练的效率。
3)高效可扩展性EPLB 支持灵活的专家复制和分配,能够适配不同规模的模型和硬件配置。例如,在一个包含 2 个节点、每个节点 4 个 GPU 的集群上,EPLB 可以动态规划 16 个个专家副本的分配。

img

12 个专家在 2 节点的分布示例(来源:DeepSeek)
4)开源与可重现性EPLB 作为 DeepSeek 开源周的一部分发布,提供了一个易于复现的负载均衡方案,方便研究者和开发者在自己的 MoE 训练中应用。
2 DualPipe 与 EPLB 架构分析
2.1 DualPipe 架构
DualPipe 的架构基于 Transformer 框架,并针对流水线并行进行了深度优化。其核心思想是将每个计算块(Chunk)细分为多个组件,并在调度中实现高效重叠。具体架构特点包括:
1)细粒度分块每个计算块被划分为四个部分:注意力机制(Attention)、All-to-All 派发(All-to-All Dispatch)、多层感知机(MLP)和 All-to-All 合并(All-to-All Combine)。对于后向传播块,注意力机制和 MLP 进一步细分为输入梯度计算(Backward for Input)和权重梯度计算(Backward for Weights)。
2)双向流水线调度DualPipe 通过双向调度实现微批次的同时处理。例如,在一个包含 8 个流水线级别(PP Ranks)和 20 个微批次的场景中,正向和反向的微批次对称运行,通信阶段被计算阶段完全掩盖。
3)通信优化DualPipe 针对跨节点的 All-to-All 通信(All-to-All Communication)开发了高效内核,充分利用 InfiniBand 和 NVLink 的带宽,结合 PTX 编程减少流式多处理器(SMs)在通信上的占用。
4)FP8 混合精度支持DualPipe 的训练框架支持 FP8 混合精度计算,通过降低精度减少 GPU 显存使用并加速训练,同时保持模型性能。这种低精度训练策略与算法设计紧密结合。

img

DualPipe 技术说明(来源:中存算半导体)
与现有的流水线并行(PP)方法相比,DualPipe 具备以下优势:
1)DualPipe 的流水线气泡更少,信道使用效率更高。
2)DualPipe 将前向和后向传播中的计算和通信重叠,解决了跨节点专家并行(EP)带来的繁重通信开销问题.
3)在确保计算与通信比例恒定的情况下,具有很好的 Scale-out 能力。
2.2 EPLB 架构
EPLB 的架构基于 MoE 模型的专家并行需求,主要包括以下组件:
1)负载均衡算法EPLB 使用基于偏置的动态调整策略(bias-based dynamic adjustment),替代传统的基于辅助损失的负载均衡方法。这种方法通过实时监控每个专家的负载情况,动态分配输入 token,确保均衡性。
2)与 DualPipe 的协同根据 X 上的信息,EPLB 可与 DualPipe(双向流水线重叠技术)结合使用。DualPipe 负责计算与通信的并行优化,而 EPLB 则专注于专家层的负载分布,二者共同提升 MoE 模型的整体性能。
3)模块化设计EPLB 的代码结构具有模块化特点,便于集成到其他 MoE 系统中。它可能包括负载监控模块、动态路由调整模块以及与底层硬件通信的接口。
4)支持大规模并行EPLB 针对多节点、跨 GPU 的训练环境进行了优化,支持 DeepSeek-V3/R1 这样的大模型的分布式部署。

img

EPLB 架构思路说明(来源:中存算半导体)
3 DualPipe 与 EPLB 代码结构分析
3.1 DualPipe 代码结构分析
从 GitHub 仓库 https://github.com/deepseek-ai/DualPipe 的描述来看,该代码库主要是一个 Python 实现的调度算法示例。以下是对其代码结构的初步分析(基于公开信息和常见调度算法实现推测):
调度核心(Scheduler):实现双向流水线调度的逻辑,定义微批次的分配和计算通信重叠的策略。
通信管理(Communication Manager):处理跨节点的 All-to-All 通信,可能包含针对 InfiniBand 或 NVLink 的优化接口。
模型分层(Layer Assignment):实现浅层和深层的物理共享逻辑,优化内存布局。
性能分析(Profiling):提供用于验证计算通信重叠的性能数据生成工具。主要代码包括:
●核心调度算法文件(如 dualpipe.py)。
●通信模块(communication/)、测试用例(tests/)和文档(docs/)。
●配置脚本用于设置流水线级别和微批次数量。

img

3.2 EPLB 代码结构分析
https://github.com/deepseek-ai/EPLB

img

4 DualPipe 与 EPLB 的现状与未来
两者已在 DeepSeek-V3 和 DeepSeek-R1 的训练和部署中得到实际验证,证明其在超大规模 MoE 模型训练 / 部署中的有效性。特别是训练成本低至约 557 万美元,远低于传统大模型(如 Llama-3.1 的数亿美元),显示出其经济性和实用性。
当前两者针对 H800 GPU 优化,未来可能适配更多硬件(如 AMD MI300X 或其他消费级 GPU),提升普适性。
另外 DualPipe 可结合 EPLB(专家并行负载平衡器)进一步优化跨节点专家的动态分配。
优化,未来可能适配更多硬件(如 AMD MI300X 或其他消费级 GPU),提升普适性。
另外 DualPipe 可结合 EPLB(专家并行负载平衡器)进一步优化跨节点专家的动态分配。
DualPipe 与 EPLB 的低成本高效特性可能推动开源 AI 模型的进一步发展,缩小与闭源模型的差距。它为资源有限的团队提供了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29232.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐算法和推荐系统入门第一趴

以下是推荐系统技术总结的架构梳理和建议表达思路: 从原理到生产环境:推荐系统核心技术与实战代码解析 一、推荐算法的演进图谱 传统算法三剑客 ![推荐系统算法分类示意图] (使用Mermaid绘制算法分类关系图,清晰展示技术演进&am…

Cursor+Claude3.7实现从原型到app开发

最近在X上看到了一些人在用Claude 3.7 Sonnet生成 app原型图的尝试,受到启发,发现这么先生成不同界面的原型图再让Cursor基于原型图开发app会是很好的尝试。尤其是,你也可以不两步直接生成,而是在过程中更可视化地思考你要生产的原…

Flink深入浅出之01:应用场景、基本架构、部署模式

Flink 1️⃣ 一 、知识要点 📖 1. Flink简介 Apache Flink — Stateful Computations over Data StreamsApache Flink 是一个分布式大数据处理引擎,可对有界数据流和无界数据流进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以…

在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05

一、说明 前端技术体系:Vue3 Nuxt3 Vite5 Vue-Router Element-Plus Pinia Axios 后端技术体系:Spring Cloud Alibaba2021 MySQL8 Nacos Seata Mybatis Druid redis 后端系统:roncoo-education(核心框架:S…

JavaWeb6、Servlet

6.1Servlet简介 Servlet就是sun公司开发动态web的一门技术 sun公司在这些API中提供一个接口叫做Servlet,如果想开发一个Servlet程序,只需要完成两个小步骤: 编写一个类,实现Servlet接口 把开发好的Java类部署到web服务器中 把…

DeepSeek未来发展趋势:开创智能时代的新风口

DeepSeek未来发展趋势:开创智能时代的新风口 随着人工智能(AI)、深度学习(DL)和大数据的飞速发展,众多创新型技术已经逐渐走向成熟,而DeepSeek作为这一领域的新兴力量,正逐步吸引越…

K8S学习之基础十四:k8s中Deployment控制器概述

Deployment控制器概述: Deployment控制器是k8s中最常用的资源对象,为Replicaset和Pod创建提供了一种声明式的定义方法,在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态&…

基于IMM算法的目标跟踪,四模型IMM|三维环境|4个模型分别是:CV、左转CT、右转CT、CA(基于EKF,订阅专栏后可获得完整源代码)

这段MATLAB代码实现了基于交互多模型(IMM)算法的目标跟踪,结合了四种运动模型(匀速直线、左转圆周、右转圆周和匀加速直线)。通过定义状态方程、生成带噪声的测量数据,以及执行IMM迭代,该代码有效地实现了多模型的状态估计和融合。最终,用户可以通过可视化结果观察目标…

豆包大模型 MarsCode AI 刷题专栏 001

001.找单独的数 难度:易 问题描述 在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上…

树莓派学习(一)——3B+环境配置与多用户管理及编程实践

树莓派学习(一)——3B环境配置与多用户管理及编程实践 一、实验目的 掌握树莓派3B无显示器安装与配置方法。学习Linux系统下多用户账号的创建与管理。熟悉在树莓派上使用C语言和Python3编写简单程序的方法。 二、实验环境 硬件设备:树莓派…

DAIR-V2X-R数据集服务器下载

【官方github链接】https://github.com/ylwhxht/V2X-R 点击并登录 选择并点击下载 浏览器弹窗,右键选择复制下载链接 ------------------------------------服务器下载----------------------------------------- 登录服务器,选在要下载的文件夹复制路…

通用信息抽取大模型PP-UIE开源发布,强化零样本学习与长文本抽取能力,全面适配多场景任务

背景与简介 信息抽取(information extraction)是指,从非结构化或半结构化数据(如自然语言文本)中自动识别、提取并组织出结构化信息。通常包含多个子任务,例如:命名实体识别(NER&am…

前端开发10大框架深度解析

摘要 在现代前端开发中,框架的选择对项目的成功至关重要。本文旨在为开发者提供一份全面的前端框架指南,涵盖 React、Vue.js、Angular、Svelte、Ember.js、Preact、Backbone.js、Next.js、Nuxt.js 和 Gatsby。我们将从 简介、优缺点、适用场景 以及 实际…

AI数据分析:deepseek生成SQL

在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行自动补全SQL 查询语句。 我们都知道,SQL 查询语…

解决:Word 保存文档失败,重启电脑后,Word 在试图打开文件时遇到错误

杀千刀的微软,设计的 Word 是个几把,用 LaTex 写完公式,然后保存,卡的飞起 我看文档卡了很久,就关闭文档,然后 TMD 脑抽了重启电脑 重启之后,文档打不开了,显示 杀千刀的&#xff…

【LeetCode 热题 100】3. 无重复字符的最长子串 | python 【中等】

美美超过管解 题目: 3. 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 注…

weblogic部署报错汇总

weblogic部署报错汇总 Weblogic部署遇到的问题 1.部署完weblogic,进入weblogic控制台,后提示无资源可访问。 解决方法: 权限问题,检查weblogic应用的启动用户和所属用户是否一致。 2. 安装weblogic,创建域的时候特别…

如何在后端服务发布过程中使用蓝绿部署

一、概念 蓝绿部署(Blue-Green Deployment)是一种常用的零停机发布策略,旨在减少发布过程中的风险和系统停机时间。它通过在同一环境中并行维护两个相似的环境(蓝色环境和绿色环境)来实现无缝的应用发布。以下是蓝绿部署策略在后端服务发布中的应用流程以及一些注意事项。…

辛格迪客户案例 | 深圳善康医药科技GMP培训管理(TMS)项目

01 善康医药:创新药领域的探索者 深圳善康医药科技股份有限公司自2017年创立以来,便扎根于创新药研发领域,专注于成瘾治疗药物的研究、生产与销售。公司坐落于深圳,凭借自身独特的技术优势与研发实力,在行业内逐渐崭露…

ArcGIS Pro:轻松制作地震动画,洞察灾害动态

在当今的信息展示领域,动画因其直观、生动的特点,逐渐成为各类汇报、研究展示中的重要元素。 尤其是在地理信息领域,通过动画来展示动态的地理现象,能够让观众更清晰地理解数据背后所蕴含的信息。 地震作为一种突发性的自然灾害…