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

DeepSeek 开源周(2025/0224-0228)进度全分析:技术亮点、调用与编程及潜在影响

在这里插入图片描述

DeepSeek 技术开源周期间所有开放下载资源的目录及简要说明:


1. FlashMLA

  • 描述:针对 Hopper GPU 优化的高效 MLA 解码内核,专为处理可变长度序列设计,显著提升大语言模型(LLM)的解码效率。
  • 性能:内存受限配置下可达 3000 GB/s 带宽,计算受限配置下可达 580 TFLOPS 算力(H800 GPU)。
  • 开源地址:FlashMLA GitHub
  • 适配情况:已成功适配云天励飞 DeepEdge10 平台,相关代码已提交至 Gitee。

2. DeepEP

  • 描述:首个面向 MoE(混合专家)模型的专家并行(EP)通信库,优化全到全通信,支持 FP8 数据格式,显著降低通信开销。
  • 特性
    • 高吞吐内核:适用于训练和推理的预填充任务。
    • 低延迟内核:优化推理解码速度,采用纯 RDMA 技术。
    • 支持 NVLink 和 RDMA 混合通信。
  • 开源地址:DeepEP GitHub

3. DeepGEMM

  • 描述:专为 FP8 矩阵乘法优化的轻量级 GEMM 库,支持稠密和 MoE 布局,动态优化资源分配以提升算力效率。
  • 性能:在 Hopper GPU 上可实现 1350+ FP8 TFLOPS 性能,核心代码仅 300 行,基于即时编译(JIT)技术。
  • 开源地址:DeepGEMM GitHub

4. DualPipe

  • 描述:一种双向流水线并行算法,专为 V3/R1 训练设计,实现计算与通信阶段的高效重叠,减少流水线气泡。
  • 开源地址:DualPipe GitHub

5. 专家并行负载均衡器(EPLB)

  • 描述:动态平衡 GPU 负载,通过冗余专家策略和分组路由优化数据流量,减少节点间通信开销。
  • 开源地址:EPLB GitHub

6. 3FS 文件系统

  • 描述:高性能分布式文件系统,专为现代 SSD 和 RDMA 网络设计,支持高吞吐数据访问,适用于 AI 训练和推理中的数据密集型任务。
  • 性能
    • 集群聚合读取吞吐量达 6.6 TiB/s。
    • 单节点 KVCache 查找峰值吞吐量超过 40 GiB/s。
  • 开源地址:3FS GitHub

7. Smallpond

  • 描述:基于 3FS 的轻量级数据处理框架,支持 PB 级数据集处理,操作简便,无需长期运行的服务。
  • 开源地址:Smallpond GitHub

8. 其他资源

  • DeepSeek-R1 模型权重:Hugging Face 仓库
  • DeepSeek-R1 官方论文:arXiv 论文
  • DeepSeek 提示词库:官方提示词库

概览

DeepSeek 技术开源周共发布了 5 个核心代码库(FlashMLA、DeepEP、DeepGEMM、DualPipe、EPLB)以及 2 个配套工具(3FS、Smallpond),覆盖了从计算、通信到存储的全栈优化。这些资源不仅显著提升了 AI 模型的训练和推理效率,还通过开源方式降低了高性能计算技术的应用门槛,为 AI 社区提供了强大的技术支持。

在这里插入图片描述

DeepSeek 开源进度全分析:技术亮点、协同关系及潜在影响


1. 技术亮点与核心功能

1.1 FlashMLA(开源进度 1/5)
  • 功能
    FlashMLA 是一个针对 Hopper GPU 优化的高效 MLA(Multi-Layer Attention)解码内核,专为处理可变长度序列设计。它通过优化内存访问和计算效率,显著提升了推理阶段的性能。

  • 性能

    • 在内存受限配置下,FlashMLA 可实现 3000 GB/s 的带宽
    • 在计算受限配置下,FlashMLA 的算力可达 580 TFLOPS(基于 H800 GPU)。
    • 这些性能指标使其成为当前最先进的解码内核之一。
  • 应用场景

    • 主要用于自然语言处理(NLP)中的推理阶段,特别是大语言模型(LLM)的文本生成任务。
    • 适用于需要处理长序列的场景,如对话生成、文档摘要等。
  • 技术基础

    • 结合了 FlashAttention 2&3 的注意力机制优化和 CUTLASS 的高效矩阵计算技术。
    • 通过分块调度和内存优化,减少冗余计算和内存访问。
  • 创新点

    • 支持可变长度序列的高效处理,避免了传统方法中的填充浪费。
    • 通过动态调度机制,最大化 GPU 利用率。
      以下是 FlashMLA 的编程调用方法及详细说明,帮助开发者快速上手并集成到自己的项目中。

1. 安装与依赖

1.1 硬件与软件需求
  • 硬件:NVIDIA Hopper GPU(如 H800)。
  • 软件
    • CUDA 12.3 及以上版本。
    • PyTorch 2.0 及以上版本。
1.2 安装步骤
  1. 克隆 FlashMLA 代码库:
    git clone https://github.com/deepseek-ai/FlashMLA.git
    cd FlashMLA
    
  2. 安装依赖:
    python setup.py install
    

2. 编程调用

2.1 导入模块

在 Python 脚本中导入 FlashMLA 的核心模块:

from flash_mla import get_mla_metadata, flash_mla_with_kvcache
2.2 获取元数据

使用 get_mla_metadata 函数获取分块调度元数据:

tile_scheduler_metadata, num_splits = get_mla_metadata(cache_seqlens, s_q * h_q // h_kv, h_kv
)
  • 参数说明
    • cache_seqlens:缓存序列长度。
    • s_q * h_q // h_kv:查询序列长度与头数的乘积除以键值头数。
    • h_kv:键值头数。
  • 返回值
    • tile_scheduler_metadata:分块调度元数据。
    • num_splits:分块数量。
2.3 调用解码内核

使用 flash_mla_with_kvcache 函数执行解码操作:

for i in range(num_layers):o_i, lse_i = flash_mla_with_kvcache(q_i, kvcache_i, block_table, cache_seqlens, dv,tile_scheduler_metadata, num_splits, causal=True)
  • 参数说明
    • q_i:当前层的查询张量。
    • kvcache_i:当前层的键值缓存。
    • block_table:块表,用于管理缓存块。
    • cache_seqlens:缓存序列长度。
    • dv:值向量的维度。
    • tile_scheduler_metadata:分块调度元数据。
    • num_splits:分块数量。
    • causal:是否启用因果掩码(默认为 True)。
  • 返回值
    • o_i:当前层的输出张量。
    • lse_i:当前层的对数求和指数(Log-Sum-Exp)。

3. 示例代码

以下是一个完整的调用示例:

import torch
from flash_mla import get_mla_metadata, flash_mla_with_kvcache# 假设输入参数
batch_size = 8
num_heads = 16
seq_len = 1024
head_dim = 64
cache_seqlens = torch.tensor([seq_len] * batch_size, dtype=torch.int32)
s_q = seq_len
h_q = num_heads
h_kv = num_heads
dv = head_dim# 初始化输入张量
q_i = torch.randn(batch_size, num_heads

相关文章:

DeepSeek 开源周(2025/0224-0228)进度全分析:技术亮点、调用与编程及潜在影响

DeepSeek 技术开源周期间所有开放下载资源的目录及简要说明: 1. FlashMLA 描述:针对 Hopper GPU 优化的高效 MLA 解码内核,专为处理可变长度序列设计,显著提升大语言模型(LLM)的解码效率。性能:内存受限配置下可达 3000 GB/s 带宽,计算受限配置下可达 580 TFLOPS 算力(…...

let、const【ES6】

‌“我唯一知道的就是我一无所知。” - 苏格拉底 目录 块级作用域:var、let、const的对比:Object.freeze(): 块级作用域: 块级作用域指由 {} 包围的代码块(如 if、for、while、单独代码块等)形成的独立作用…...

PySpark中mapPartitionsWithIndex等map类算子生成器函数问题 - return\yield

PySpark中mapPartitionsWithIndex等map类算子生成器函数问题 - return\yield 顾名思义,本文讲述了map算子生成器函数的相关问题——return 和 yield的使用。 首先先讲结论,在使用map等迭代生成的算子时最好使用yield。 1、问题产生 在写代码的过程中&…...

网络原理 初识[Java EE]

目录 网络发展史 独立模式 网络互联 局域网 LAN 1. 基于网络直连 2. 基于集线器(Hub)组建 3. 基于交换机(Switch)组建 4. 基于交换机和路由器(Router)组建 广域网 WAN 网络通信基础 IP 地址 1. 概念 2. 格式 端口号 1. 概念 2.格式 认识协议 1. 概念 2. 作用…...

Redis Stream基本使用及应用场景

一、概念 Redis Streams是Redis5.0提供的一种消息队列机制,支持多播的可持久化的消息队列,用户实现发布订阅的功能,借鉴了kafka设计。 二、常用命令 命令名称描述XADD key ID field value [field value ...]添加一条消息 key:St…...

amcl :odometry 到global frame 的转换

amcl - ROS Wiki amcl - ROS Wiki...

Ollama下载安装+本地部署DeepSeek+UI可视化+搭建个人知识库——详解!(Windows版本)

目录 1️⃣下载和安装Ollama 1. 🥇官网下载安装包 2. 🥈安装Ollama 3.🥉配置Ollama环境变量 4、🎉验证Ollama 2️⃣本地部署DeepSeek 1. 选择模型并下载 2. 验证和使用DeepSeek 3️⃣使用可视化工具 1. Chrome插件-Page …...

解决Value of type ‘AVCodecContext‘ has no member ‘channels‘ 的问题

在 FFmpeg 7.1 中,AVCodecContext 的 channels 和 channel_layout 字段已经被移除,取而代之的是 AVChannelLayout 结构。因此,代码需要进行调整以适应新的 API。 以下是如何正确设置 AVCodecContext 和 AVCodecParameters 的方法。 1. 问题分析 在 FFmpeg 7.1 中: AVCode…...

STM32内存五区及堆栈空间大小设置(启动文件浅析)

前言 嘿,朋友们!今天咱们来聊聊STM32的内存五区和堆栈空间大小设置。这可是嵌入式开发里的“必修课”,要是没整明白,程序说不定就“翻车”了。别担心,我这就带你一步步搞懂这事儿,让你轻松上手&#xff0c…...

定义数组存储3部汽车对象(class2:类在class1中请看上一篇博客)

package test3; import java.util.Scanner; public class carTest {public static void main(String[] args){//创建一个数组car[] arrnew car[3];//2创建汽车对象&#xff0c;来源于输入Scanner sc new Scanner(System.in);for (int i 0; i <arr.length ; i) {car cnew ca…...

Go红队开发—语法补充

文章目录 错误控制使用自定义错误类型错误包装errors.Is 和 errors.Aspanic捕获、recover 、defer错误控制练习 接口结构体实现接口基本类型实现接口切片实现接口 接口练习Embed嵌入文件 之前有师傅问这个系列好像跟红队没啥关系&#xff0c;前几期确实没啥关系&#xff0c;因为…...

IP----访问服务器流程

这只是IP的其中一块内容-访问服务器流程&#xff0c;IP还有更多内容可以查看IP专栏&#xff0c;前一段学习内容为IA内容&#xff0c;还有更多内容可以查看IA专栏&#xff0c;可通过以下路径查看IA-----配置NAT-CSDN博客CSDN,欢迎指正 1.访问服务器流程 1.分层 1.更利于标准化…...

阿里云ack的创建与实战应用案例

阿里云ack的创建与应用案例 创建前开通ack相关服务&#xff1a;开始创建简单的魔方游戏&#xff0c;熟悉sv与clb自动注册创建部署一个nginx 服务示例&#xff1a;走不同域名访问不同svc资源&#xff1a;为什么需要 Ingress &#xff1f;创建第一个域名的 Deployment和Service。…...

git 的 Detached HEAD

在 Git 版本管理中&#xff0c;Detached HEAD 是指你当前的工作状态不再指向任何分支&#xff0c;而是指向一个特定的提交&#xff08;commit&#xff09;。 通常情况下&#xff0c;HEAD 是指向你当前工作分支的指针&#xff0c;例如 main 或 feature-branch。当你切换到一个特…...

【R语言】dplyr包经典函数summarise函数

dplyr包经典函数summarise函数&#xff0c;后面改名乘reframe函数了&#xff0c;但是summarise仍然适用 这个函数的返回结果是一个新的数据框&#xff0c;下面讲一下几种常见用法 示例数据为R自带的数据集mtcars 1.不分组 mtcars %>%summarise(mean mean(disp), n n()…...

C#装箱拆箱机制详解

在C#中&#xff0c;装箱&#xff08;Boxing&#xff09;和拆箱&#xff08;Unboxing&#xff09; 是值类型与引用类型之间转换的核心机制。它们的实现直接影响程序的性能和类型安全。 一、装箱&#xff08;Boxing&#xff09; 定义&#xff1a; 将值类型转换为引用类型&#…...

llama.cpp 一键运行本地大模型 - Windows

文章目录 llama.cpp 一键运行本地大模型 - Windows嘿&#xff0c;咱来唠唠 llama.cpp 这玩意儿&#xff01;gguf 格式是啥&#xff1f;咱得好好说道说道基座模型咋选&#xff1f;所需物料&#xff0c;咱得准备齐全咯核心命令&#xff0c;得记牢啦运行方式咋选&#xff1f;测试应…...

BUU40 [CSCCTF 2019 Qual]FlaskLight1【SSTI】

模板&#xff1a; {{.__class__.__base__.__subclasses__()[80].__init__.__globals__[__builtins__].eval("__import__(os).popen(type flag.txt).read()")}} 是个空字符串&#xff0c;.__class__代表这个空字符串的类是什么&#xff08;这里是单引号双引号都行&a…...

数据同步的中间件

以下是10个支持MySQL、HBase、ClickHouse、HDFS等不同数据库之间数据同步的GitHub项目推荐&#xff1a; 项目名称语言主要特点支持的数据库GitHub链接DataXPython阿里巴巴开源的数据同步工具&#xff0c;支持多种数据库和文件系统。MySQL、ClickHouse、HDFS等GitHub链接Apache…...

C# | GDI+图像测距辅助线的实现思路

C# | GDI图像测距辅助线的实现思路 文章目录 C# | GDI图像测距辅助线的实现思路一、辅助线需求概述二、坐标系与角度计算2.1 笛卡尔坐标系2.2 线长和角度计算方法2.3 文本角度矫正计算方法2.4 坐标变换实现步骤 三、与if判断方式对比四、总结 一、辅助线需求概述 在图像测量工…...

【备份】php项目处理跨域请求踩坑

这都是老生常谈的东西了。我还在踩坑&#xff0c;记录一下。 我在项目入口明明写了如下代码&#xff1a; // 处理预检请求 (OPTIONS) if ($_SERVER[REQUEST_METHOD] OPTIONS) {header("Access-Control-Allow-Origin: https://xxx.vip");header("Access-Cont…...

常见的Linux面试题

以下是一些常见的Linux面试题&#xff1a; 基础操作类 如何远程连接Linux服务器&#xff1a;常用的工具如Xshell、CRT、FinalShell等&#xff0c;通过SSH协议连接&#xff0c;默认端口是22。 如何查看当前目录下的所有文件&#xff08;包括隐藏文件&#xff09;&#xff1a;使…...

MySQL 数据库本地及异地备份:全面指南

文章目录 MySQL 数据库本地及异地备份&#xff1a;全面指南备份脚本概述编写备份脚本脚本内容主要参数解释设置脚本权限 定期执行备份设置crontab任务 安全性建议避免明文密码rsync密码文件安全 进阶功能和优化增量备份备份验证日志轮转 总结附录&#xff1a;脚本依赖 MySQL 数…...

免费使用 DeepSeek API 教程及资源汇总

免费使用 DeepSeek API 教程及资源汇总 一、DeepSeek API 资源汇总1.1 火山引擎1.2 百度千帆1.3 阿里百炼1.4 腾讯云 二、其他平台2.1 华为云2.2 硅基流动 三、总结 DeepSeek-R1 作为 2025 年初发布的推理大模型&#xff0c;凭借其卓越的逻辑推理能力和成本优势&#xff0c;迅速…...

java后端开发day20--面向对象进阶(一)--static继承

&#xff08;以下内容全部来自上述课程&#xff09; 1.static–静态–共享 static表示静态&#xff0c;是java中的一个修饰符&#xff0c;可以修饰成员方法&#xff0c;成员变量。 1.静态变量 被static修饰的成员变量&#xff0c;叫做静态变量。 特点&#xff1a; 被该类…...

统计学中的得分函数(Score Function)是什么?它和Fisher信息矩阵有什么关系?

得分函数&#xff1a;统计学中的“敏感探针” 在统计学和概率论中&#xff0c;得分函数&#xff08;Score Function&#xff09;是一个看似简单却非常重要的概念。它不仅是Fisher信息矩阵的核心组成部分&#xff0c;还在参数估计、模型优化等领域发挥着关键作用。今天&#xf…...

Spring Boot集成MyBatis访问MySQL:从项目搭建到基础数据库查询(基础入门)

Spring Boot集成MyBatis访问MySQL 一、引言 在当今企业级应用开发中&#xff0c;Spring Boot、MyBatis与MySQL的组合凭借其高效性和灵活性&#xff0c;成为构建数据驱动型应用的首选方案。本文将带你从零开始搭建项目&#xff0c;掌握Spring Boot集成MyBatis的基础入门内容。…...

ShenNiusModularity项目源码学习(14:ShenNius.Infrastructure项目分析)

ShenNius.Infrastructure项目用于定义ShenNius.Admin.Mvc项目和ShenNius.Admin.API项目共用的特性类、数据操作接口实现类、上下文类、通讯类&#xff0c;主要文件的用途如下&#xff1a;   Attributes文件夹保存特性类或过滤器类定义&#xff0c;主要包括&#xff1a;   …...

Linux 内核配置机制详细讲解

本文是对 Linux 内核配置机制 make menuconfig 的 超详细分步解析&#xff0c;涵盖其工作原理、界面操作、配置逻辑及底层实现&#xff1a; 一、内核配置系统概述 Linux 内核的配置系统是一个 基于文本的交互式配置工具链&#xff0c;核心目标是通过定义 CONFIG_XXX 宏来控制内…...

【C语言】第八期——指针、二维数组与字符串

目录 1 初始指针 2 获取变量的地址 3 定义指针变量、取地址、取值 3.1 定义指针变量 3.2 取地址、取值 4 对指针变量进行读写操作 5 指针变量作为函数参数 6 数组与指针 6.1 指针元素指向数组 6.2 指针加减运算&#xff08;了解&#xff09; 6.2.1 指针加减具体数字…...