当前位置: 首页 > 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;总是做出在当前看来是最好的选…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

深入理解 React 样式方案

React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...

AWS vs 阿里云:功能、服务与性能对比指南

在云计算领域&#xff0c;Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商&#xff0c;各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5]&#xff0c;我将从功能、服务和性能三个方面进行结构化对比分析&#…...

以太网PHY布局布线指南

1. 简介 对于以太网布局布线遵循以下准则很重要&#xff0c;因为这将有助于减少信号发射&#xff0c;最大程度地减少噪声&#xff0c;确保器件作用&#xff0c;最大程度地减少泄漏并提高信号质量。 2. PHY设计准则 2.1 DRC错误检查 首先检查DRC规则是否设置正确&#xff0c;然…...

联邦学习带宽资源分配

带宽资源分配是指在网络中如何合理分配有限的带宽资源&#xff0c;以满足各个通信任务和用户的需求&#xff0c;尤其是在多用户共享带宽的情况下&#xff0c;如何确保各个设备或用户的通信需求得到高效且公平的满足。带宽是网络中的一个重要资源&#xff0c;通常指的是单位时间…...