网易首页 > 网易号 > 正文 申请入驻

DeepSeek第五天开源猛料,3FS并行文件系统榨干SSD!6.6 TiB/s吞吐量堪比光速

0
分享至

  新智元报道

  编辑:编辑部 JHY

  【新智元导读】DeepSeek最后一天,送上了3FS文件并行系统,以及数据处理框架Smallpond。五天开源连更,终于画上了完美的句号。

  最后一天,DeepSeek开源了全生命周期数据访问引擎Fire-Flyer File System(3FS),以及基于3FS的数据处理框架Smallpond。

  3FS(萤火虫文件系统)是一个充分利用现代SSD和RDMA网络带宽的并行文件系统,其特点是:

  在180节点集群中实现了6.6 TiB/s的总读取吞吐量

  在25节点集群的GraySort基准测试中达到了3.66 TiB/min 的吞吐量

  每个客户端节点的KVCache查询峰值吞吐量超过40+ GiB/s

  采用分离式架构,确保了强一致性

  全面支持V3/R1的训练数据预处理、数据集加载、检查点保存/重载、嵌入向量搜索和KVCache查询推理

  Smallpond是轻量级的数据处理框架,其特点是:

  基于DuckDB的高性能数据处理

  可扩展性,能够处理PB级别数据集

  无需持续运行的服务,操作简便

  3FS和Smallpond两大开源项目,正在为AI数据处理设立新的标准——超快的处理速度和无缝集成。

  让许多人惊叹不已的是,DeepSeek竟自己编写了分布式文件系统。

  它的成功背后强大得理念,便是将小事做到极致。这种精神,体现了车库黑客的精髓。

  左右滑动查看

  3FS文件系统

  The Fire-Flyer File System(3FS)专为应对人工智能训练和推理任务挑战而设计的高性能分布式文件系统。

  项目链接:https://github.com/deepseek-ai/3FS

  它采用现代固态硬盘(SSD)和远程直接内存访问(RDMA)网络技术,构建了共享存储层,极大简化了分布式应用的开发过程。

  核心优势

  性能与易用性

  分布式架构:该系统整合了数千个SSD的高吞吐量和数百个存储节点的网络带宽,使得应用程序能够无视位置差异,高效访问存储资源。

  强一致性保证:通过采用链式复制与分配查询(CRAQ)技术,确保了数据的一致性,使得应用程序代码更加简洁易懂。

  标准文件接口:系统提供了基于事务性键值存储(如FoundationDB)的无状态元数据服务,使用的文件接口通用且易于上手,无需学习新的存储API。

  多样化工作负载支持

  数据准备:系统有效地将数据分析管道的输出组织成分层目录结构,并高效管理大量的中间数据。

  数据加载优化:通过支持计算节点间对训练样本的随机访问,无需进行数据预取或洗牌操作,提升了数据处理效率。

  高效检查点支持:为大规模训练任务提供高吞吐量的并行检查点功能。

  KVCache推理加速:提供了一种成本效益高的DRAM缓存替代方案,具有高吞吐量和更大的存储容量,适用于推理任务。

  性能

  1. 最大吞吐量

  下图展示了一个大型3FS集群在执行读压力测试时的吞吐量表现。

  该集群包含180个存储节点,每个节点均配置有2张200Gbps的IB网卡和16块14TiB的NVMe固态硬盘。

  测试中使用了约500个客户端节点,每个节点配备1张200Gbps的IB网卡。

  在存在训练任务背景流量的情况下,集群的总读取吞吐量达到了约6.6TiB/s。

  2. GraySort

  采用GraySort基准测试,评估smallpond在处理大规模数据集时的排序能力。

  实现采用了两阶段的处理方法:(1) 首先通过键的前缀位进行数据重排来分区数据,(2) 然后在各个分区内部进行排序。这两个阶段的数据读写都依赖于3FS。

  测试所用的集群包括25个存储节点(每个节点有2个NUMA域,每个NUMA域运行1个存储服务,每个节点配备2×400Gbps网卡)和50个计算节点(每个节点有2个NUMA域,192个物理核心,2.2 TiB内存,每个节点配备1×200 Gbps网卡)。

  在8,192个分区中排序110.5 TiB的数据,整个过程耗时30分钟14秒,平均吞吐量达到3.66TiB/min。

  3. KVCache

  KVCache是一种用于提升大型语言模型(LLM)推理效率的技术。

  它通过缓存解码器层中先前token的键和值向量,避免了重复的计算过程。

  顶部图表展示了所有KVCache客户端的读取吞吐量,其中既包括了峰值也包括了平均值,峰值吞吐量可达40GiB/s。

  底部图表则展示了在同一时间段内,垃圾收集(GC)过程中操作次数的变化情况。

  设计与实现

  3FS系统由四个主要部分组成:集群管理器、元数据服务、存储服务和客户端。这些组件通过RDMA网络(InfiniBand或RoCE)相互连接。

  元数据和存储服务定期向集群管理器发送心跳信号,以报告其状态。集群管理器负责处理集群成员的变更,并将集群的配置信息分发到其他服务和客户端。

  系统中部署了多个集群管理器,其中一个被选为主管理器。当主管理器发生故障时,另一个管理器会被提升为主管理器。

  集群配置信息通常存储在一个可靠的分布式协调服务中,例如ZooKeeper或etcd。在生产环境中,为了减少依赖性,我们使用与文件元数据相同的键值存储来保存集群配置。

  文件元数据操作(如打开或创建文件/目录)被发送到元数据服务,由其实现文件系统的语义。由于文件元数据是存储在一个事务性键值存储(例如FoundationDB)中的,因此元数据服务是无状态的,客户端可以连接到任何元数据服务。

  每个存储服务管理一些本地SSD,并提供一个块存储接口。

  为了确保强一致性,存储服务实现了链式复制与分配查询(CRAQ)机制。CRAQ的写入全部读取任意的方法有助于充分利用SSD和RDMA网络的高吞吐量。在3FS中,一个文件被分割成相等大小的数据块,并在多个SSD上复制。

  使用

  使用以下命令从GitHub克隆3FS仓库到本地文件系统:

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

  克隆完成后,进入3FS目录,运行以下命令来更新并初始化所有子模块:

  cd 3fs git submodule update --init --recursive ./patches/apply.sh

  根据Ubuntu版本安装所需的依赖项:

  # for 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 # for 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:基于3FS的数据处理框架

  项目链接:https://github.com/deepseek-ai/smallpond

  快速入门

  目前smallpond支持从3.8到3.12的Python版本。

  pip install smallpond

  使用下列命令获取示例数据:

  # Download example data wget https://duckdb.org/data/prices.parquet
轻松上手:

  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())
文档

  mallpond同时提供了高级和低级API。

  注意:目前,smallpond提供了两种不同的API,分别用于数据流图的动态和静态构建。由于历史原因,这两种API使用了不同的调度器后端,并支持不同的配置选项。

  高级API:目前使用Ray框架作为后端,支持数据流图的动态构建和执行。

  低级API:使用内置调度器,仅支持静态数据流图的一次性执行。然而,它提供了更多的性能优化和更丰富的配置选项。正在努力将这两种API合并,以便在未来,可以使用统一的高级API,并在Ray框架和内置调度器之间自由选择。

  下列链接提供入门教程、API参考、性能评估等更多内容。

  链接:https://github.com/deepseek-ai/smallpond/blob/main/docs/source/api.rst

  pip install .[dev] # run unit tests,单元测试 pytest -v tests/test*.py # build documentation,构建文档 pip install .[docs] cd docs make html python -m http.server --directory build/html

  性能

  采用GraySort基准测试脚本,在一个由50个计算节点和25个运行3FS的存储节点组成的集群上,对smallpond进行了评估。

  该基准测试在短短30分钟14秒内完成了对110.5TiB数据的排序,平均吞吐量达到了3.66 TiB/min。

  pip install .[dev] # run unit tests pytest -v tests/test*.py # build documentation pip install .[docs] cd docs make html python -m http.server --directory build/html

  连更五天,最新汇总

  DeepSeek开源周,这么快就过去了。连更5天,次次都是小惊喜。

  接下来,我们汇总了过去四天所有的开源项目,参见:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
一群老帅开玩笑问陈赓儿子:你老爸是什么将?听到回答却捧腹大笑

一群老帅开玩笑问陈赓儿子:你老爸是什么将?听到回答却捧腹大笑

芳芳历史烩
2026-03-21 16:54:53
医生告诫:每天睡前玩手机的人,不用半年时间,睡眠或有这5变化

医生告诫:每天睡前玩手机的人,不用半年时间,睡眠或有这5变化

蜉蝣说
2026-03-20 17:28:57
重庆大学实验室爆炸后续死者确认为研究生事发前一小时还在做实验

重庆大学实验室爆炸后续死者确认为研究生事发前一小时还在做实验

爱下厨的阿椅
2026-03-22 16:55:21
当年劝乌克兰“为民生投降”,如今同一番话,原封不动送给伊朗

当年劝乌克兰“为民生投降”,如今同一番话,原封不动送给伊朗

老马拉车莫少装
2026-03-18 13:51:32
以色列遭受开战以来最沉重打击,承认经历“非常艰难”时刻,伊朗的战略策略很不简单

以色列遭受开战以来最沉重打击,承认经历“非常艰难”时刻,伊朗的战略策略很不简单

明人明察
2026-03-22 18:35:41
分头行动!赶在特朗普接管前,中俄撕碎封锁线,古巴有望迎来转机

分头行动!赶在特朗普接管前,中俄撕碎封锁线,古巴有望迎来转机

爱下厨的阿酾
2026-03-22 18:04:23
中国又一城市被“占领”,37万外国人赖着不走,目的却不是旅游?

中国又一城市被“占领”,37万外国人赖着不走,目的却不是旅游?

毒sir财经
2026-02-23 17:54:22
退休后从广州搬到佛山,住一年才明白:这不是换地方,是换活法

退休后从广州搬到佛山,住一年才明白:这不是换地方,是换活法

呼呼历史论
2026-03-21 19:06:50
匈牙利再否决对乌援助,冯德莱恩开始反击,将在3周内推翻欧尔班

匈牙利再否决对乌援助,冯德莱恩开始反击,将在3周内推翻欧尔班

琴音缭绕回
2026-03-22 10:27:09
《好好的时光》收官,3人零差评1人翻红,她全程龇牙咧嘴差评一片

《好好的时光》收官,3人零差评1人翻红,她全程龇牙咧嘴差评一片

洲洲影视娱评
2026-03-21 14:20:20
台军女飞行员郭文静:只要长官敢下令,我会毫不犹豫的击落歼20!

台军女飞行员郭文静:只要长官敢下令,我会毫不犹豫的击落歼20!

顾史
2026-01-21 21:04:39
一个女子的生理期,照出了多少衣冠楚楚的禽兽?

一个女子的生理期,照出了多少衣冠楚楚的禽兽?

胖胖说他不胖
2026-03-22 16:05:14
太励志!22岁李镇全首次入选国足:3年多前还在踢业余联赛

太励志!22岁李镇全首次入选国足:3年多前还在踢业余联赛

邱泽云
2026-03-22 16:21:25
广东26岁男子入室抢劫杀人致1死1伤:作案动机披露,死者身份曝出

广东26岁男子入室抢劫杀人致1死1伤:作案动机披露,死者身份曝出

博士观察
2026-03-22 16:20:34
西班牙向乌提供12亿美元援助,以色列摧毁俄伊海上大动脉

西班牙向乌提供12亿美元援助,以色列摧毁俄伊海上大动脉

史政先锋
2026-03-19 19:51:55
出大事了,维和部队遭袭击,912人死亡,联合国秘书长亮明态度

出大事了,维和部队遭袭击,912人死亡,联合国秘书长亮明态度

军机Talk
2026-03-19 10:36:20
毛主席去世后,123国发来唁电表哀悼,唯独这个国家公开发文“警告”中国

毛主席去世后,123国发来唁电表哀悼,唯独这个国家公开发文“警告”中国

老杉说历史
2026-03-21 19:25:09
恐怖!伊朗安全部队的指挥官陆续接到了摩萨德特工的专门电话....

恐怖!伊朗安全部队的指挥官陆续接到了摩萨德特工的专门电话....

深度报
2026-03-19 22:33:30
美防长发出战争威胁,若真敢开战将会比抗美援朝付出的伤亡会更大

美防长发出战争威胁,若真敢开战将会比抗美援朝付出的伤亡会更大

少年仍需努力
2026-03-20 07:35:33
广东男子捡废品被拦后 竟放火烧了别人的房

广东男子捡废品被拦后 竟放火烧了别人的房

看看新闻Knews
2026-03-21 16:21:02
2026-03-22 19:19:00
新智元 incentive-icons
新智元
AI产业主平台领航智能+时代
14786文章数 66706关注度
往期回顾 全部

科技要闻

嫌台积电太慢 马斯克要把芯片产能飙升50倍

头条要闻

白宫发布高市早苗访美照片神态夸张 日本网友:耻辱

头条要闻

白宫发布高市早苗访美照片神态夸张 日本网友:耻辱

体育要闻

郑钦文连续迎战大满贯冠军 “双教练”团队正式亮相

娱乐要闻

今晚首播!央视年代剧《冬去春来》来了

财经要闻

睡梦中欠债1.2万?这只“虾”杀疯了

汽车要闻

14.28万元起 吉利银河星耀8远航家开启预售

态度原创

艺术
本地
时尚
手机
公开课

艺术要闻

国内仅存的颜真卿墨迹,没见过比它更美的字

本地新闻

春色满城关不住|绍兴春日顶流,这片樱花海藏不住了

伊姐周六热推:电视剧《隐身的名字》;电视剧《正义女神》......

手机要闻

华为Mate 80风驰版来了!主动风扇是手机散热新趋势吗?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版