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

Deepseek开源周第一天:FlashMLA来袭

Deepseek开源周第一天:FlashMLA来袭

前言

在这里插入图片描述

上周deepseek宣布,将在本周陆续发布五个开源项目,这些库已经在生产环境中经过了记录、部署和实战测试。

原译文为:

第0天:为#开源周热身!

我们是一个小小的团队 @deepseek_ai 在探索AGI。

从下周开始,我们将开源5个仓库,完全透明地分享我们虽小但真诚的进展。

这些在线服务中的不起眼的构建模块已经过记录、部署并在生产环境中经过实战考验。

作为开源社区的一部分,我们相信,每分享一行代码都会成为集体动力,加速这一旅程。

每日解锁即将来临。没有象牙塔——只有纯粹的车库能量和社区驱动的创新。

第一天

今天发布了一个名为 FlashMLA 的项目,截止发稿前,已有 6.2K 的 star

github地址:https://github.com/deepseek-ai/FlashMLA

DeepSeek 推出的 FlashMLA,是一款专为 Hopper GPU 量身打造的高效 MLA 解码内核,在可变长度序列服务方面表现卓越。

它的出现,为相关领域的开发者带来了全新的技术体验。

一、项目特性

(一)高效解码

FlashMLA 专注于优化解码过程,能够显著提升处理速度。

在实际应用中,这意味着可以更快地完成数据解码,提高整个系统的运行效率。

例如,在处理大规模文本数据的解码任务时,相比传统方法,FlashMLA 能以更高的速度完成,节省大量时间成本。

(二)可变长度序列服务优化

针对可变长度序列服务,FlashMLA 进行了专门设计。

它能够灵活适应不同长度的序列数据,无论是短序列还是长序列,都能稳定且高效地运行。

这一特性使得它在诸如自然语言处理中的文本生成、机器翻译等场景中具有极大优势,能够精准处理各种长度的文本序列,为用户提供高质量的服务。

二、当前发布详情

当前发布的版本为 BF16 型,采用块大小为 64 的分页 kvcache。

这种设计进一步优化了内存管理,提升了数据处理的效率和稳定性。在实际使用中,能够有效减少内存占用,提高系统的响应速度。

三、快速上手

(一)安装

安装过程简单便捷,只需在命令行中输入:

python setup.py install

即可轻松完成安装,快速搭建起项目运行环境。

(二)基准测试

通过运行

python tests/test_flash_mla.py

可以进行基准测试,在 CUDA 12.6 的环境下,于 H800 SXM5 上,内存绑定配置最高可达 3000 GB/s

计算绑定配置最高可达 580 TFLOPS

这一出色的性能表现,为开发者在进行相关计算任务时提供了强大的支持。

四、使用方法

在代码使用方面,开发者可以通过以下示例代码实现功能调用:

from flash_mla import get_mla_metadata, flash_mla_with_kvcache

tile_scheduler_metadata, num_splits = get_mla_metadata(cache_seqlens, s_q * h_q // h_kv, h_kv)

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,
    )
   ...

通过上述代码,可以方便地调用 FlashMLA 的核心功能,实现对数据的高效处理。

五、运行要求

硬件要求:需要配备 Hopper GPU,以充分发挥 FlashMLA 的性能优势。

软件要求:CUDA 版本需在 12.3 及以上,同时需要安装 PyTorch 2.0 及更高版本,确保项目能够稳定运行。

总结

FlashMLA 作为 deepseek 开源周的第一个项目,展现了其在 GPU 优化方面的专业实力。

该项目不仅为 Hopper GPU 用户提供了高效的 MLA 解码方案,也为整个 AI 社区带来了宝贵的技术贡献。

未来四天,deepseek 还将陆续开源其他四个项目。

我们将持续关注接下来几天的项目发布,为读者带来第一手的技术资讯。


http://www.kler.cn/a/565517.html

相关文章:

  • 自定义注解 + AOP + Redisson:优雅实现分布式锁(增强版)
  • Go 语言内存池 (`sync.Pool`) 深度解析
  • 腿足机器人之十三-强化学习PPO算法
  • AI+游戏,正在进行时!
  • svn忽略文件
  • Unity XR-XR Interaction Toolkit开发使用方法(八)组件介绍(XR Socket Interactor)
  • 每天一个Flutter开发小项目 (6) : 表单与验证的专业实践 - 构建预约应用
  • Lm studio本地部署DeepSeek
  • MySQL—密码设置相关
  • 《Somewhat Practical Fully Homomorphic Encryption》笔记 (BFV 源于这篇文章)
  • 校园快递助手小程序毕业系统设计
  • JAVA面试常见题_基础部分_springboot面试题
  • 力扣1091. 二进制矩阵中的最短路径
  • Flutter - 布局Widget
  • Linux的文件与目录管理
  • BUU40 [CSCCTF 2019 Qual]FlaskLight1【SSTI】
  • 有哪些信息安全/网络安全/渗透测试/众测/CTF/红蓝攻防/漏洞测试等前沿技术/研究/技巧获取渠道?
  • Java 实现快速排序算法:一条快速通道,分而治之
  • vue3的生命周期
  • 如何将图片档案信息读取出来?并把档案信息相关性进行关联