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

DeepSeek开源Day5:3FSsmallpond技术详解

img

2 月 24 日,DeepSeek 启动 “开源周”,第四个开源的代码库为 3FS&smallpond(又是一下发布了两个)。
3FS(Fire-Flyer File System)是 DeepSeek 内部开发的一款高性能分布式文件系统,旨在为 AI 训练和推理工作负载提供高效的共享存储层。它充分利用现代 SSD(固态硬盘)和 RDMA(远程直接内存访问)网络技术,简化分布式应用程序的开发,解决大规模数据密集型任务中的存储瓶颈问题。作为 DeepSeek 开源生态的一部分,3FS 于 2025 年 2 月 27 日在 GitHub 上正式开源(地址:https://github.com/deepseek-ai/3FS)
Smallpond 基于 3FS 和 DuckDB 构建,专注于 PB 级数据的快速处理。Smallpond 定位为 AI 数据的辅助工具,能够无缝集成到 3FS 的存储生态中,支持数据清洗、转换和分析等任务。
与 WekaFS、DAOS 和 BeeGFS 相比,3FS 侧重于充分利用 NVMe SSD 和 RDMA 网络的高 IOPS 和吞吐量。

1 3FS & smallpond 简介
1****1 3FS(Fire-Flyer File System)
3FS 的设计初衷是为 DeepSeek 的 AI 基础设施(如 Fire-Flyer AI-HPC)和模型(如 DeepSeek-V3、R1)提供底层存储 + 数据支持。3FS 涵盖训练数据预处理、数据集加载、检查点保存与重载、嵌入向量搜索以及推理过程中的 KVCache(键值缓存)查找等环节。3FS 显然是 DeepSeek 高效训练体系的关键组件,进一步体现了 DeepSeek 的硬件基因。
目前 3FS 已支持包括 DeepSeek-V3(6710 亿参数 MoE 模型)和 DeepSeek-R1(推理模型)在内的多个大模型的开发,涵盖数据预处理、检查点管理、推理缓存等场景。官方数据显示,3FS 在 180 节点集群中实现了 6.6 TiB/s 的聚合读取吞吐量,展现了其卓越性能。
1.2 smallpond
Smallpond 的设计目标是简化大规模数据处理流程,降低 AI 开发者的技术门槛,同时保持高性能和低资源占用。
2 3FS & smallpond 特点
3FS 具备如下特点
●高性能:在 180 节点集群中实现 6.6 TiB/s 读取吞吐量,单节点 KVCache 查找峰值速率超 40 GiB/s。
●强一致性:提供 POSIX 兼容的强一致性语义,适合多节点并发读写。(这点很关键)
●针对硬件优化:充分利用 NVMe SSD 和 RDMA 网络,最大化现代硬件性能。
●针对 KV 语义定制:支持 KV Context Caching on Disk,优化推理阶段的缓存访问。
●开源:完全开源,允许社区贡献和定制。(非常好)

img

NVMe SSD + RDMA 示意(来源:互联网)
Smallpond 具备如下特点:
●轻量级:基于 DuckDB 的嵌入式设计,资源占用低,单机即可运行。
●高效处理:支持 PB 级数据的高速查询和转换,继承 3FS 的存储性能。
●易集成:与 3FS 无缝对接,提供简洁的 API 和命令行接口。
●灵活性:支持多种数据格式(如 Parquet、CSV)和处理任务。
●开源:遵循 DeepSeek 开源理念,促进社区协作。
3 3FS & smallpond 技术优势
3.1 3FS 技术优势
●针对硬件的软件适配:通过 NVMe SSD 和 RDMA 协同优化 I/O 和网络传输,相比传统文件系统(如 HDFS)在高并发场景下延迟更低、吞吐量更高。
●去中心化架构:无单点故障,节点间对等设计提升了可扩展性和可靠性。
●高效缓存:KVCache 查找性能达 40 GiB/s,显著降低推理延迟,优于现有开源方案(如 Alluxio)。
●成本效益:在普通硬件上实现高性能,避免对专用存储设备的依赖,符合 DeepSeek 一贯高性价比策略。
●流量隔离:与 HFReduce 协同设计,避免存储与计算流量冲突,提升系统稳定性。
另外 3FS 的文档看起来更详细一些。
3.2 Smallpond
●高性能查询:基于 DuckDB 的列式存储和向量化执行引擎,查询速度远超传统工具(如 Spark 在小规模任务中的开销)。
●低开销:无需分布式集群支持,单机即可处理大规模数据,部署简单。
●与 3FS 协同:直接利用 3FS 的存储能力,避免数据迁移成本,实现高效数据流水线。
●扩展性好:支持插件式扩展,可集成更多数据源和处理逻辑。
4 3FS & smallpond 架构
4.1. 3FS 架构
●核心组件:
●集群管理器
●meta 数据管理:分布式 meta 数据存储,支持高并发访问,避免单点瓶颈。
●数据存储层:基于 SSD 的去中心化节点,利用 RDMA 实现高效数据交换。
●客户端接口:提供 POSIX 接口和定制 API,支持标准操作和 AI 特定任务。
●去中心化设计:每个节点兼具存储和计算功能,数据分片和副本机制确保高可用性。
●网络层:基于 RDMA(支持 InfiniBand 或 RoCE),配合流量隔离技术优化传输。
●缓存层:内置 3FS-KV 模块,优化 KVCache 的磁盘存储和访问。
在 Fire-Flyer 2 AI-HPC 中,DeepSeek 部署了 180 个存储节点,每个节点包含 16 个 PCIe 4.0 NVMe SSD 和 2 个 Mellanox CX6 200Gbps InfiniBand HCA。共计 360 * 200Gbps 的 InfiniBand HCA,系统总共可以提供 9TB/s 理论带宽。
文件系统 meta 数据存储在分布式键值存储系统中。每个文件或目录都有一个唯一的 inode ID。meta 服务的所有状态都持久化在分布式 KV 存储系统上。多个 meta 服务同时运行以处理来自客户端的 meta 请求。可以看出 3FS 是针对 KV 存储进行优化的架构。
存储服务具有带分配查询的链复制 (CRAQ),以提供强一致。为了将读 / 写流量均匀地分配到所有 SSD(增加读写带宽),每个 SSD 都为来自不同链的多个存储目标提供服务。
3FS-KV 是构建在 3FS 之上的共享存储分布式数据处理系统,目前支持三种模型:KV、消息队列和对象存储。3FS-KV 支持读写分离和按需启动,能够充分利用 3FS 提供的高 I/O 吞吐量。3FS-KV 支持 DeepSeek 的 KV Context Caching on Disk 技术,并将 LLM 服务成本降低了一个数量级。(这里很有意思,用高速闪存系统来存 KV)
4.2 smallpond
●核心组件:
●查询引擎:基于 DuckDB,提供高效的 SQL 查询能力。
●存储适配层:与 3FS 集成,负责数据读写和缓存管理。
●任务调度:轻量级调度器,支持并行处理和流水线优化。
●单机架构:嵌入式设计,无需分布式协调,适合中小规模任务。
●扩展接口:支持插件机制,可添加新数据源或自定义处理逻辑。
5 代码架构
5.1 3FS 代码机构
https://github.com/deepseek-ai/3FS
3FS目录结构如下:
3FS/

├── src/ # 核心源代码

│ ├── fs_core/ # 文件系统核心(元数据、存储)

│ ├── network/ # RDMA 网络模块

│ ├── kv_store/ # 键值存储实现

│ └── utils/ # 工具函数

├── tests/ # 测试用例

├── docs/ # 文档

├── examples/ # 示例代码

└── README.md # 项目说明

●代码特点:
●C++ 主导:性能敏感部分用 C++ 实现(如 RDMA、SSD I/O),辅以 Python 接口。
●模块化:各组件独立封装,便于维护和扩展。
●异步 I/O:大量使用多线程和异步操作,提升并发性能。
5.2 Smallpond
https://github.com/deepseek-ai/smallpond
smallpond 目录结构如下:
smallpond/

├── src/ # 核心源代码

│ ├── query/ # 查询引擎(基于 DuckDB)

│ ├── storage/ # 存储适配层(对接 3FS)

│ └── utils/ # 工具函数

├── tests/ # 测试用例

├── examples/ # 示例代码

├── docs/ # 文档

└── README.md # 项目说明

●代码特点:
●C++ 和 Python 混合:查询引擎用 C++(DuckDB),接口层用 Python。
●轻量化设计:代码量少,编译快速,易于部署。
●插件化:支持动态加载模块,增强灵活性。
6 小结

项目说明

●代码特点:
●C++ 和 Python 混合:查询引擎用 C++(DuckDB),接口层用 Python。
●轻量化设计:代码量少,编译快速,易于部署。
●插件化:支持动态加载模块,增强灵活性。
6 小结
3FS 是 DeepSeek 开源生态中的高性能分布式文件系统,以其 6.6 TiB/s 的吞吐量和强一致性支持 AI 工作负载,技术优势在于硬件优化和去中心化设计。Smallpond 则是基于 3FS 的轻量级数据处理框架,专注于 PB 级数据的高效处理,凭借低开销和易用性补充了 3FS 的功能。二者的架构和代码设计体现了 DeepSeek 的高效与开源理念,未来将在开源的高性能训练生态和 AI 部署持续进化,共同推动 AI 基础设施的发展。

相关文章:

DeepSeek开源Day5:3FSsmallpond技术详解

2 月 24 日,DeepSeek 启动 “开源周”,第四个开源的代码库为 3FS&smallpond(又是一下发布了两个)。 3FS(Fire-Flyer File System)是 DeepSeek 内部开发的一款高性能分布式文件系统,旨在为 A…...

Java集合面试篇

目录 1.概念 1.1.数组与集合的区别,用过哪些? 1.2.说说Java中的集合? 1.3.Java中的线程安全的集合是什么? 1.4.集合遍历的方法有哪些? 2.List 2.1.list可以一边遍历一边修改元素吗? 2.2.Arraylist和…...

plt和cv2有不同的图像表示方式和颜色通道顺序

在处理图像时,matplotlib.pyplot (简称 plt) 和 OpenCV (简称 cv2) 有不同的图像表示方式和颜色通道顺序。了解这些区别对于正确处理和显示图像非常重要。 1. 图像形状和颜色通道顺序 matplotlib.pyplot (plt) 形状:plt 通常使用 (height, width, cha…...

Sqlserver安全篇之_手工创建TLS用到的pfx证书文件

Sqlserver官方提供的Windows Powershell脚本 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-sql-server-encryption?viewsql-server-ver16 # Define parameters $certificateParams {Type "SSLServerAuthentication"Subje…...

基于RapidOCR与DeepSeek的智能表格转换技术实践

基于RapidOCR与DeepSeek的智能表格转换技术实践 一、技术背景与需求场景 在金融分析、数据报表处理等领域,存在大量图片格式的表格数据需要结构化处理。本文介绍基于开源RapidOCR表格识别与DeepSeek大模型的智能转换方案,实现以下典型场景: …...

创建阿里云CDN

创建阿里云CDN CDN域名管理 SSL证书上传...

tomcat的web管理

进入到conf cd /usr/local/tomcat/conf/备份tomcat-users.xml cp tomcat-users.xml{.,bak}编辑tomcat-users.xml vim tomcat-users.xml增加以下内容 配置tomcat-users.xml <role rolename"manager-gui"/><role rolename"admin-gui"/><use…...

【Linux系统】-----进程初相识:原理与概念全解析

Linux系列 文章目录 Linux系列前言一、进程的概念二、进程的管理三、Linux操作系统的进程管理3.1、进程标识符3.2、查看进程3.3、查看进程的PID和PPID 前言 经过前两篇文章的铺垫&#xff0c;我们对操作系统的管理方式已经有了比较完整的认识&#xff0c;今天我们将学习Linux比…...

分布式系统设计(架构能力)

一、微服务架构 服务治理 Nacos 注册中心&#xff08;AP模式&#xff09; CAP选择&#xff1a;Nacos 默认采用 AP 模式&#xff08;可用性 分区容忍性&#xff09;&#xff0c;通过心跳检测实现服务健康管理。服务发现&#xff1a;客户端定时拉取服务列表&#xff0c;支持权重…...

171. Excel 表列序号

Excel 表列序号 题目描述尝试做法推荐做法 题目描述 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: colum…...

在 Java 中使用 Apache POI 为 Word 文档添加水印

在 Java 中使用 Apache POI 为 Word 文档添加水印 在日常办公中&#xff0c;我们经常需要给 Word 文档添加水印&#xff0c;以标明文件的机密性或归属权。本文将介绍如何使用 Apache POI 库在 Java 中给 Word 文档添加水印。 技术栈 Apache POI&#xff1a;用于操作 Word 文…...

贪心算法二

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是贪心算法&#xff0c;并且掌握贪心算法。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! >…...

【大模型安全】大模型的技术风险

【大模型安全】大模型的技术风险 1.DDoS攻击2.常见的传统网络攻击方式3.恶意意图的识别4.AI生成虚假信息传播5.利用AI进行黑客攻击6.模型对抗攻击7.后门攻击8.Prompt攻击9.数据投毒攻击10.模型窃取攻击11.数据窃取攻击 1.DDoS攻击 2023年11月9日凌晨&#xff0c;OpenAI在官网公…...

Java 线程池中 shutdown 与 shutdownNow 的区别是什么?

Java 线程池中 shutdown 与 shutdownNow 的区别 核心行为差异 | 方法 | 行为描述 | |----------------|----------------------------------------------------------------------------| | shutdown | 平缓关闭线程池&#xff1a;1. 停止接受新任务。2. 已提交的任务&#xff…...

基于Spring Boot的共享学习经验系统的设计与实现

目录 摘 要 第1章 绪论 1.1研究背景与意义 1.2国内外现状 1.3研究目标 第2章 需求分析 2.1业务需求 2.1.1业务概述 2.1.2业务流程 2.2.1用例概述 2.2.2用例描述 2.3非功能性需求 第3章 系统设计 3.1技术路线 3.2系统功能模块设计 3.3系统架构 3.4数据库设计 3.4.1概念结构设…...

【简单的C++围棋游戏开发示例】

C围棋游戏开发简单示例&#xff08;控制台版&#xff09; ‌核心代码实现‌ #include <iostream> #include <vector> #include <queue> using namespace std;const int SIZE 9; // 简化棋盘为9x9‌:ml-citation{ref"1" data"citationList&…...

单片机中的基础外设GPIO的知识和应用—(6)

GPIO&#xff08;通用输入输出&#xff09;是单片机与外部世界交互的重要接口。单片机的GPIO引脚可以灵活配置为输入、输出、中断或复用功能&#xff0c;广泛应用于LED控制、按键读取、传感器通信等场景。下文以STM32F103C8T6的GPIO为例。有些51单片机IO功能有的稍微有不同&…...

10-Agent循环分析新闻并输出总结报告

目录 关键词 摘要 速览 自动新闻总结与行业分析报告生成流程 创建深度行业分析报告的工作流 测试用例执行与调试 业务逻辑与循环处理任务 演示如何在循环体中添加链接读取工具 使用大模型处理和分析新闻信息 构建循环分析新闻并生成综合报告的流程 分析和优化慢速循…...

十二、Redis Cluster(集群)详解:原理、搭建、数据分片与读写分离

Redis Cluster(集群)详解:原理、搭建、数据分片与读写分离 Redis Cluster 是 Redis 官方提供的分布式存储方案,通过数据分片(Sharding)实现 水平扩展(scalability),并提供 高可用性(HA) 和 故障自动转移(failover) 能力,解决了单机 Redis 内存受限、主从复制故障…...

贪心算法解题框架+经典反例分析,效率提升300%

贪心算法是一种在每一步选择中都采取当前状态下的最优决策&#xff0c;从而希望最终达到全局最优解的算法策略。以下从其定义、特点、一般步骤、应用场景及实例等方面进行讲解&#xff1a; 定义与基本思想 • 贪心算法在对问题求解时&#xff0c;总是做出在当前看来是最好的选…...

策略设计模式-下单

1、定义一个下单context类 通过这类来判断具体使用哪个实现类&#xff0c;可以通过一些枚举或者条件来判断 import com.alibaba.fastjson.JSON; import com.tc.common.exception.BusinessException; import com.tc.common.user.YjkUserDetails; import com.tc.institution.cons…...

Go加spy++隐藏窗口

最近发现有些软件的窗口就像狗皮膏药一样&#xff0c;关也关不掉&#xff0c;一点就要登录&#xff0c;属实是有点不爽了。 窗口的进程不能杀死&#xff0c;但是窗口我不想要。思路很简单&#xff0c;用 spy 找到要隐藏的窗口的句柄&#xff0c;然后调用 Windows 的 ShowWindo…...

React基础之tsx语法

tsx在jsx的基础上添加了新的类型&#xff0c;除此之外没有任何区别 事件绑定 function App() { const handleClick()>{ console.log(button被点击了); } return( <div className"App"> <button onClick{handleClick}>click me</button> </di…...

一体机:DeepSeek性能的“隐形枷锁”!

一体机是DeepSeek交付的最佳方式吗&#xff1f; 恰恰相反&#xff0c;一体机是阻碍DeepSeek提升推理性能的最大绊脚石。 为啥&#xff1f; 只因DeepSeek这个模型有点特殊&#xff0c;它是个高稀疏度的MoE模型。 MoE这种混合专家模型&#xff0c;设计的初衷是通过“激活一堆专…...

ALBEF的动量蒸馏(Momentum distillation)

简单记录学习~ 一、‌传统 ITC Loss 的局限性‌ ‌One-Hot Label 的缺陷‌ 传统对比学习依赖严格对齐的图文对&#xff0c;通过交叉熵损失&#xff08;如 softmax 归一化的相似度矩阵&#xff09;强制模型将匹配的图文对相似度拉高&#xff0c;非匹配对相似度压低‌11。但 one…...

浏览器WEB播放RTSP

注意&#xff1a;浏览器不能直接播放RTSP&#xff0c;必须转换后都能播放。这一点所有的播放都是如此。 参考 https://github.com/kyriesent/node-rtsp-stream GitHub - phoboslab/jsmpeg: MPEG1 Video Decoder in JavaScript 相关文件方便下载 https://download.csdn.net…...

将PDF转为Word的在线工具

参考视频&#xff1a;外文翻译 文章目录 一、迅捷PDF转换器二、Smallpdf 一、迅捷PDF转换器 二、Smallpdf...

03. 对象的创建,存储和访问原理

文章目录 01. 对象创建1.1 创建过程概览1.2 类加载检查1.3 为对象分配内存1.4 将内存空间初始化为零值1.5 设置对象的必要信息1.6 总结 02. 对象的内存布局2.1 对象头区域2.2 实例数据区域2.3 对齐填充区域2.4 总结 03. 对象的访问定位其他介绍01.关于我的博客 注&#xff1a;读…...

机器学习-GBDT算法

目录 一. GBDT 核心思想 二. GBDT 工作原理 ​**(1) 损失函数优化** ​**(2) 负梯度拟合** ​**(3) 模型更新** 三. GBDT 的关键步骤 四. GBDT 的核心优势 ​**(1) 高精度与鲁棒性** ​**(2) 处理缺失值** ​**(3) 特征重要性分析** ​五. GBDT 的缺点 ​**(1) 训练…...

redis基础结构

title: redis基础结构 date: 2025-03-04 08:39:12 tags: redis categories: redis笔记 Redis入门 &#xff08;NoSQL, Not Only SQL&#xff09; 非关系型数据库 关系型数据库&#xff1a;以 表格 的形式存在&#xff0c;以 行和列 的形式存取数据&#xff0c;一系列的行和列被…...