一文详解:DeepSeek 第五天开源的 3FS 文件系统

搜索
AI-TNT
正文
资源拓展
一文详解:DeepSeek 第五天开源的 3FS 文件系统
2025-02-28 11:33

一文详解:DeepSeek 第五天开源的 3FS 文件系统


DeepSeek开源周的最后一天,迎来的是支撑其V3/R1模型全生命周期数据访问需求的核心基础设施 — Fire-Flyer File System(3FS) 和构建于其上的Smallpond数据处理框架


📥 3FS

https://github.com/deepseek-ai/3FS


3FS是一种充分利用现代SSD和RDMA网络全带宽的并行文件系统,在180节点集群上实现了6.6 TiB/s的聚合读取吞吐量,在25节点集群的GraySort基准测试中达到3.66 TiB/分钟的吞吐量,并且在KVCache查找中每个客户端节点可达40+ GiB/s的峰值吞吐量


⛲ Smallpond

https://github.com/deepseek-ai/smallpond


Smallpond则是建立在3FS之上的轻量级数据处理框架,具有高性能、可扩展性和易用性特点。


3FS的关键特性与优势


Fire-Flyer文件系统(3FS)专为解决AI训练和推理工作负载的挑战而设计,具有以下关键特性:


性能与可用性


  • 分离式架构(Disaggregated Architecture):结合了数千个SSD和数百个存储节点的网络带宽,使应用程序可以不受位置限制地访问存储资源
  • 强一致性(Strong Consistency):实现了链式复制与分配查询(CRAQ)协议,确保数据的强一致性,简化应用程序开发
  • 文件接口(File Interfaces):提供基于事务性键值存储(如FoundationDB)支持的无状态元数据服务,使用通用的文件接口,无需学习新的存储API


多样化工作负载支持


  • 数据准备:高效组织数据分析管道的输出和管理大量中间结果
  • 数据加载:支持计算节点间的训练样本随机访问,消除预取或打乱数据集的需求
  • 检查点保存:支持大规模训练的高吞吐并行检查点保存
  • 推理KVCache:提供比基于内存缓存更具成本效益的替代方案,同时提供高吞吐量和更大容量


3FS的性能表现


1. 峰值吞吐量


在一个由180个存储节点组成的大型3FS集群上,每个节点配备2×200Gbps InfiniBand网卡和16个14TiB NVMe SSD,使用约500+客户端节点进行读取压力测试(每个客户端有1x200Gbps InfiniBand网卡),最终聚合读取吞吐量达到约6.6 TiB/s,并且这一性能在有训练作业的背景流量下仍然保持稳定。


一文详解:DeepSeek 第五天开源的 3FS 文件系统


2. GraySort基准测试


DeepSeek使用基于3FS的Smallpond进行GraySort基准测试,这是衡量大规模数据排序性能的标准测试。其实现采用两阶段方法:


  1. 通过键的前缀位进行shuffle实现数据分区
  2. 在分区内部进行排序


测试集群由25个存储节点(每节点2个NUMA域/节点,每NUMA 1个存储服务,2×400Gbps网卡)和50个计算节点(每节点2个NUMA域,192个物理核心,2.2 TiB RAM,1×200Gbps网卡)组成。对110.5 TiB数据进行8,192个分区的排序在30分14秒内完成,平均吞吐量达到3.66 TiB/分钟。


一文详解:DeepSeek 第五天开源的 3FS 文件系统



一文详解:DeepSeek 第五天开源的 3FS 文件系统


3. KVCache性能


KVCache是优化LLM推理过程的技术,通过缓存解码器层中之前token的键值向量避免重复计算。3FS的KVCache实现提供了显著的性能优势:


  • 所有KVCache客户端的读取吞吐量峰值可达40 GiB/s
  • 高效的垃圾回收机制,支持大规模并发操作


一文详解:DeepSeek 第五天开源的 3FS 文件系统


一文详解:DeepSeek 第五天开源的 3FS 文件系统


使用3FS


获取源代码


# 从GitHub克隆3FS仓库

git clone https://github.com/deepseek-ai/3fs


# 初始化子模块

cd 3fs

git submodule update --init --recursive

./patches/apply.sh


安装依赖


# Ubuntu 20.04

apt install cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libprocps-dev libdwarf-dev libunwind-dev \

libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14 \

libgoogle-perftools-dev google-perftools libssl-dev ccache libclang-rt-14-dev gcc-10 g++-10 libboost1.71-all-dev


# Ubuntu 22.04

apt install cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libprocps-dev libdwarf-dev libunwind-dev \

libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14 \

libgoogle-perftools-dev google-perftools libssl-dev ccache gcc-12 g++-12 libboost-all-dev


还需要安装其他构建前提条件:


  • libfuse 3.16.1或更新版本
  • FoundationDB 7.1或更新版本
  • Rust工具链


构建3FS


cmake -S . -B build -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_C_COMPILER=clang-14 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

cmake --build build -j 32


可以按照设置指南的说明运行测试集群。


Smallpond数据处理框架


Smallpond是一个构建在DuckDB和3FS之上的轻量级数据处理框架,具有以下特点:


  • 🚀 由DuckDB提供支持的高性能数据处理
  • 🌍 可扩展到处理PB级数据集
  • 🛠️ 简单操作,无需长期运行的服务


安装Smallpond


Smallpond支持Python 3.8到3.12:


pip install smallpond


快速入门示例


首先下载示例数据:


# 下载示例数据

wget https://duckdb.org/data/prices.parquet

然后可以使用以下Python代码处理数据:

import smallpond


# 初始化会话

sp = smallpond.init()


# 加载数据

df = sp.read_parquet("prices.parquet")


# 处理数据

df = df.repartition(3, hash_by="ticker")

df = sp.partial_sql("SELECT ticker, min(price), max(price) FROM {0} GROUP BY ticker", df)


# 保存结果

df.write_parquet("output/")

# 显示结果

print(df.to_pandas())


Smallpond已在GraySort基准测试中进行了评估,在由50个计算节点和25个存储节点组成的3FS集群上,成功在30分14秒内对110.5TiB数据进行排序,平均吞吐量达3.66TiB/分钟。


回顾


回顾本周发布,DeepSeek已经构建了一个完整的大模型技术栈:


  • Day 1 - FlashMLA:高效的MLA解码内核,优化了变长序列处理
  • Day 2 - DeepEP:首个开源专家并行通信库,支持MoE模型训练和推理
  • Day 3 - DeepGEMM:支持密集和MoE计算的FP8 GEMM库
  • Day 4 - 并行计算策略:包括DualPipe双向流水线并行算法和EPLB专家并行负载均衡器
  • Day 5 - 3FS与Smallpond:高性能数据存储和处理基础设施


对此,张涛老哥表示“够造超算的了”


一文详解:DeepSeek 第五天开源的 3FS 文件系统


顺道着...老哥的 Monica,国内 3 月要整个大活。


文章来自于“赛博禅心”,作者“金色传说大聪明”。


一文详解:DeepSeek 第五天开源的 3FS 文件系统

1
cursor

【免费】cursor-auto-free是一个能够让你无限免费使用cursor的项目。该项目通过cloudflare进行托管实现,请参考教程进行配置。

视频教程:https://www.bilibili.com/video/BV1WTKge6E7u/

项目地址:https://github.com/chengazhen/cursor-auto-free?tab=readme-ov-file


2
RAG

【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。

项目地址:https://github.com/microsoft/graphrag

【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。

项目地址:https://github.com/langgenius/dify


【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。

项目地址:https://github.com/infiniflow/ragflow/tree/main


【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目

项目地址:https://github.com/phidatahq/phidata


【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。

项目地址:https://github.com/TaskingAI/TaskingAI

IOS下载
安卓下载
微信群
沪ICP备2023015588号