当前位置: 首页 > news >正文

深度解读DeepSeek:开源周(Open Source Week)技术解读

深度解读DeepSeek:开源周(Open Source Week)技术解读
深度解读DeepSeek:源码解读 DeepSeek-V3
深度解读DeepSeek:技术原理
深度解读DeepSeek:发展历程

文章目录

  • 一、开源内容概览
    • Day1:FlashMLA
    • Day2:DeepEP
    • Day3:DeepGEMM
    • Day4:DualPipe & EPLB
    • Day5:3FS
  • 二、技术突破与创新
  • 三、技术原理
    • DeepEP

2025年2月24日至28日,DeepSeek通过连续五天的“开源周”活动,向全球开源了8个核心项目,覆盖AI训练、推理、并行计算等多个关键领域。

一、开源内容概览

DeepSeek 开源周共发布 五个核心项目 及多个辅助工具,涵盖 AI 开发的三大核心领域:计算优化、通信效率、存储加速。以下是各项目的核心价值:

Day1:FlashMLA

功能:针对 NVIDIA Hopper GPU 优化的多头线性注意力解码内核,支持可变长度序列处理。

突破:在 H800 GPU 上实现 580 TFLOPS 计算性能 和 3000 GB/s 内存带宽,推理效率提升 2-3 倍,适用于实时翻译、长文本处理等场景18。

意义:打破大厂对高效推理工具的垄断,降低开发者使用门槛,推动边缘设备部署。

Day2:DeepEP

功能:专为混合专家模型(MoE)设计的通信库,优化节点间数据分发与合并。

突破:通过低延迟内核和通信-计算重叠技术,实现 训练速度提升 3 倍、延迟降低 5 倍,支持 FP8 低精度通信。

意义:挑战英伟达 NCCL 生态,打破硬件与软件耦合的技术壁垒。

Day3:DeepGEMM

功能:基于 FP8 的高效矩阵乘法库,专为 MoE 模型优化。

突破:代码仅 300 行,通过即时编译(JIT)和 CUDA 核心双层累加技术,实现 1.1-2.7 倍加速,最高性能达 1350 TFLOPS。

意义:推动低精度计算普及,降低千亿参数模型部署成本,成为“AI 工业革命的基石”。

Day4:DualPipe & EPLB

功能:创新双向流水线并行算法(DualPipe)与动态负载均衡工具(EPLB)。

突破:通过任务交叉排布和专家模型动态复制,减少 GPU 空闲时间,优化资源利用率。

意义:类比“泰勒管理制”和“福特流水线”,重构 AI 训练流程,提升工业级效率。

Day5:3FS

功能:高性能分布式文件系统,支持 RDMA 网络和 SSD 存储。

突破:实现 6.6 TB/s 读取速度,加速海量数据训练与推理阶段的向量搜索。

意义:补全 AI 基础设施的最后一块拼图,解决存储瓶颈问题。

二、技术突破与创新

DeepSeek 开源周的核心技术突破体现在以下三方面:

  • 硬件性能压榨

    • GPU 极限优化:如 FlashMLA 将 H800 GPU 的内存带宽利用率提升至理论极限的 90%,DeepGEMM 通过直接编写机器指令绕过 CUDA 生态限制。

    • 低精度计算革命:FP8 的广泛应用(如 DeepGEMM)在保证精度损失 <0.5% 的前提下,将存储和算力需求降低至 FP32 的 1/4。

  • 并行计算重构

    • 通信与计算重叠:DeepEP 通过钩子机制实现通信与计算并行,减少 GPU 空闲时间。
    • 动态负载均衡:EPLB 根据专家模型调用频率动态调整任务分配,避免 GPU 资源浪费。
  • 开源生态挑战

    • 对抗英伟达垄断:DeepGEMM 和 DeepEP 直接挑战 CUDA 和 NCCL 生态,推动国产软硬件适配。
    • 透明化技术黑箱:公开训练框架分析数据,推动行业技术共享与协作。

三、技术原理

DeepEP

网络知识扫盲:GPU通信互联技术介绍
MoE介绍:深度解读DeepSeek

DeepEP是由DeepSeek团队推出的首个专为混合专家模型(MoE)设计的专家并行(EP)通信库。主要解决MoE模型在分布式训练和推理中的通信瓶颈问题,通过优化数据传输和资源调度,实现“降本增效”。

  • 高效的全对全通信(All-to-All):支持节点内(NVLink)和节点间(RDMA)的高带宽通信,优化数据在不同专家子网络间的快速交换。

  • 动态资源调控:基于群组限制门控算法(group-limited gating),动态分配GPU计算单元(SM)数量,任务多时增加资源,任务少时降低功耗,减少资源浪费。支持低精度运算:原生支持FP8格式,减少内存占用并加速计算,适用于大规模分布式训练

传统的基于NVSwitch的All-to-All通信结构:

在这里插入图片描述
通信内核(通信SM控制代码)的实现与MoE门控算法和集群网络拓扑是按照软硬件协同的思路来进行设计的。具体来说,在集群中,跨节点GPU与IB完全互连,节点内(单台服务器内)通信通过NVLink完成。NVLink 提供 160 GB/s 的带宽,约是IB的 3.2 倍 (50 GB/s)。

之前的MoE普遍使用NCCL的p2p通信进行all-to-all,结果纷纷吐槽all-to-all性能差,带宽利用率低。但是,很少有人真的去分析all-to-all性能差的原因,并尝试去改进。而DeepEP的出现,可以说彻底解决了all-to-all打不满带宽的问题。DeepEP直接放弃了NCCL,转而使用更底层的NVSHMEM进行通信,结果基本用满了NVLink和IB的带宽。

ps:NCCL(NVIDIA Collective Communications Library)是英伟达(NVIDIA)开发的一个专为多GPU和多节点通信优化的库,主要用于加速分布式深度学习训练和科学计算中的集体通信操作。,支持以下关键操作:

  • All-Reduce:将多个GPU上的数据汇总(如梯度求和)并分发回所有GPU。
  • Broadcast:将单个GPU的数据广播到其他所有GPU。
  • All-Gather:将每个GPU的数据收集到所有GPU。
  • Reduce-Scatter:将数据汇总后按块分发给各个GPU。
  • Point-to-Point:单GPU到单GPU的直接数据传输。

为了有效利用IB和NVLink的不同带宽,DeepSeek将每个Token(词元)的分发限制为最多4 个节点,从而减少IB流量限制的影响。 对于每个Token,在做节点间路由决策时,先通过IB传输到目标节点上具有相同节点内索引的GPU;到达目标节点后,再通过NVLink 转发到托管目标专家的特定GPU。通过这种方式,通过IB和NVLink的通信重叠,平均每个Token可以在每个节点选择3.2名专家,而不会产生额外的NVLink开销。

实际算法中,V3/R1只通过路由选择了8个专家,但在保持相同通信成本的情况下,该架构可以扩展到最多13 个专家(4 个节点x3.2个专家/节点)。

DeepSeek还采用了warp(线程束)专用化技术,将20个SM划分为10个通信信道。

1)在调度过程中,(a)IB 发送、(b)IB 到NVLink 转发、(c) NVLink 接收由相应的warp处理。分配给每个通信任务的warp数量会根据所有SM的实际工作负载动态调整。

2)在合并过程中,(a) NVLink 发送、(b)NVLink到IB的转发和累积、(c)IB接收和累积也由动态调整的warp处理。

3)dispatching 和combining kernel都与计算流重叠,采用定制的PTX(Parallel Thread Execution)指令以自动调整通信块大小,减少了对L2缓存的使用和对其他 SM 的干扰。
在这里插入图片描述

在这里插入图片描述

下面我们沿着README.md里的例子,分析一下DeepEP究竟是如何实现的。
https://github.com/deepseek-ai/DeepEP

DeepEP主要实现了EP通信过程(dispatch分发+combine聚合),涉及两种实现模式:

  • Normal kernel模式:Nvlink+RDMA混合模式,用于训练/推理prefill阶段
  • Low-latency kernel模式:IBGDA+纯RDMA模式,用于推理decode阶段

性能测试结果:
在这里插入图片描述

核心概念

1,Dispatch(分发):

  • 前向传播:将输入数据(x)根据topk_idx和topk_weights分配到不同的专家(可能位于不同GPU/进程)。
  • 反向传播:通过combine操作合并来自各节点的梯度(反向传播的Dispatch对应正向Combine的逆过程)。

2,Combine(合并):

  • 前向传播:聚合各专家处理后的结果,生成最终输出。
  • 反向传播:通过dispatch操作将梯度分发回各节点(反向传播的Combine对应正向Dispatch的逆过程)。

代码示例:

参考:
https://www.cnblogs.com/CQzhangyu/p/18741625


http://www.mrgr.cn/news/95776.html

相关文章:

  • 从零开始的LeetCode刷题日记:128. 最长连续序列
  • Spring Boot 整合 Nacos 注册中心终极指南
  • CentOS 7 更换 yum 源(阿里云)+ 扩展 epel 源
  • Jackson实现JSON数据的合并
  • vivo 湖仓架构的性能提升之旅
  • AI本地部署之dify
  • Redis 服务搭建
  • DeepSeek面试——模型架构和主要创新点
  • 《TCP/IP网络编程》学习笔记 | Chapter 21:异步通知 I/O 模型
  • springboot使用netty做TCP客户端
  • python面试高频考点(深度学习大模型方向)
  • 鸿蒙进行视频上传,使用 request.uploadFile方法
  • 大模型应用(Java)2025/3/24
  • LeetCode热题100JS(69/100)第十三天|34|33|153|4|20
  • 2025-3-24 leetcode刷题情况(动态规划——01背包)
  • 【HTML5游戏开发教程】零基础入门合成大西瓜游戏实战 | JS物理引擎+Canvas动画+完整源码详解
  • stm32-IIC
  • 运动仿真——phased.Platform
  • 手动创建Electron+React项目框架(建议直接看最后)
  • 项目日记 -云备份 -服务端配置信息模块