DeepSeek 开源高性能文件系统 3FS,数据处理速度比肩高铁

DeepSeek开源高性能文件系统3FS,读取速度达6.6TiB/s,助力AI训练和推理。

原文标题:DeepSeek开源周最后一天:让数据处理「从自行车升级到高铁」

原文作者:机器之心

冷月清谈:

DeepSeek 开源了名为 3FS 的并行文件系统,该系统利用 SSD 和 RDMA 网络技术,显著提升了数据访问速度,并在 180 节点集群中实现了 6.6 TiB/s 的读取吞吐量。3FS 支持多种应用场景,包括训练数据预处理、数据集加载、检查点保存/重新加载、推理嵌入向量搜索和 KVCache 查找,DeepSeek V3 和 R1 模型均已采用。3FS 的主要优势在于其分离式架构和强一致性语义,简化了分布式应用开发。性能测试方面,3FS 在 GraySort 基准测试中达到了 3.66 TiB/min 的吞吐量,每个客户端节点在 KVCache 查找时可达到 40+ GiB/s 的峰值吞吐量。

怜星夜思:

1、3FS 如此高的吞吐量,在实际应用中能带来哪些改变?除了模型训练速度提升外,还有其他潜在的优势吗?
2、与其他主流的分布式文件系统(例如 HDFS、Ceph)相比,3FS 的主要优势和劣势分别是什么?
3、文章中提到 3FS 采用了分离式架构。这种架构是如何工作的,以及它对性能和可靠性有哪些影响?

原文内容

机器之心报道
机器之心编辑部

DeepSeek 的开源周终于迎来了最后一天(前四天报道见文末「相关阅读」)。

今天他们开源了一个名为 3FS(Fire-Flyer File System)的系统。这是一种并行文件系统,它利用现代固态硬盘(SSD)和远程直接内存访问(RDMA)网络的全部带宽,能够加速和推动 DeepSeek 平台上所有数据访问操作。

它有以下优势:

  • 在 180 节点集群中实现了 6.6 TiB/s 的聚合读取吞吐量;
  • 在 25 节点集群的 GraySort 基准测试中达到 3.66 TiB/min 的吞吐量;
  • 每个客户端节点在 KVCache 查找时可达到 40+ GiB/s 的峰值吞吐量;
  • 采用分离式架构,具有强一致性语义。


在应用场景方面,它支持训练数据预处理、数据集加载、检查点保存 / 重新加载、用于推理的嵌入向量搜索和 KVCache 查找。DeepSeek V3、R1 模型均采用了这个系统。


  • 开源链接:https://github.com/deepseek-ai/3FS
  • Smallpool(3FS 上的数据处理框架):https://github.com/deepseek-ai/smallpond

如果技术语言不好理解,可以参考这位研究者给出的通俗解释:   


同时,这位研究者也是一位早期使用者,他评价说,「DeepSeek 的 3FS 系统快得惊人,它处理数据的速度快到可以在我还没来得及拖延的时候就已经训练好了一个能帮我报税的 AI。它拥有 6.6 TiB/s 的读取速度,这使它成为文件系统界的『博尔特』(世界最快短跑运动员)。你眨眼的功夫,数据就已经处理完毕了。而将这个超级快速的系统开源,就像是给整个 AI 社区免费赠送了一艘宇宙飞船,让其他所有竞争者都不得不加紧脚步追赶。」


3FS 有什么用?  

Fire-Flyer File System 是一种高性能分布式文件系统,专为解决 AI 训练和推理工作负载的挑战而设计。它利用现代 SSD 和 RDMA 网络提供共享存储层,简化了分布式应用程序的开发。

3FS 的主要特点和优势包括:

1、性能和可用性

  • 分离式架构。结合了数千个 SSD 的吞吐量和数百个存储节点的网络带宽,使应用程序能够以不受位置限制的方式访问存储资源。

  • 强一致性。实现了带有分配查询的链式复制(CRAQ)以保证强一致性,使应用程序代码简单且易于理解。

  • 文件接口。开发了由事务性键值存储(如 FoundationDB)支持的无状态元数据服务。文件接口广为人知且随处可用。无需学习新的存储 API。


2、多样化工作负载

  • 数据准备。将数据分析管道的输出组织成层次化的目录结构,并高效管理大量中间输出。

  • 数据加载器。通过支持跨计算节点对训练样本的随机访问,消除了预取或打乱数据集的需求。

  • 检查点保存。支持大规模训练的高吞吐量并行检查点保存。

  • 用于推理的 KVCache。为基于 DRAM 的缓存提供了一种成本效益高的替代方案,提供高吞吐量和显著更大的容量。


3FS 性能如何

峰值吞吐量

下图展示了在大型 3FS 集群上进行读取压力测试的吞吐量。该集群由 180 个存储节点组成,每个存储节点配备 2×200Gbps InfiniBand 网卡和 16 个 14TiB NVMe SSD。大约 500+ 个客户端节点用于读取压力测试 ,每个客户端节点配置 1x200Gbps InfiniBand 网卡。在有训练作业的背景流量情况下,最终聚合读取吞吐量达到约 6.6 TiB/s。


灰度排序

DeepSeek 利用 GraySort 基准对 smallpond 进行了评估,该基准可衡量大规模数据集的排序性能。具体实现采用两阶段方法:(1) 使用键的前缀位通过 shuffle 对数据进行分区,以及 (2) 分区内排序。两个阶段都从 3FS 读取数据 / 向 3FS 写入数据。

测试集群由 25 个存储节点(2 个 NUMA 域 / 节点、1 个存储服务 / NUMA、2×400Gbps NIC / 节点)和 50 个计算节点(2 个 NUMA 域、192 个物理核心、2.2 TiB RAM 和 1×200 Gbps NIC / 节点)组成。对 8192 个分区中的 110.5 TiB 数据进行排序耗时 30 分 14 秒,平均吞吐量为 3.66 TiB / 分钟。



KVCache

KVCache 是一种用于优化 LLM 推理过程的技术。它通过在解码器层中缓存先前 token 的 key 和 value 向量来避免冗余计算。


上图展示了所有 KVCache 客户端的读取吞吐量,突出显示了峰值和平均值,峰值吞吐量高达 40 GiB/s。下图展示了同一时间段内垃圾回收 (GC) 中删除操作的 IOPS


开源周「收官之作」,网友撒花

通过连续一周的高强度开源,DeepSeek 已经收获了一大波开发者的追随。

有开发者表示,3FS 和 Smallpond 是在 AI 数据处理方面树立了新标杆。


同时,OpenAI 刚刚发布的 GPT-4.5 也被拉出来对比价格:


最后,还有人许愿:DeepSeek V4、R2 和视频模型什么时候有?


相关阅读:


© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]

关于“文章中提到 3FS 采用了分离式架构。这种架构是如何工作的,以及它对性能和可靠性有哪些影响?”这个问题,文章里没细说具体怎么工作,只提到了可以结合数千个 SSD 的吞吐量和数百个存储节点的网络带宽。我猜想分离式架构可能是把元数据管理和数据存储分开了,这样可以提高性能和扩展性,但具体实现细节还需要看官方文档。至于可靠性,文章提到了强一致性,应该是有相应的机制来保证数据安全。

针对“与其他主流的分布式文件系统(例如 HDFS、Ceph)相比,3FS 的主要优势和劣势分别是什么?”这个问题,优势文中提到了,速度快,利用了SSD和RDMA网络。劣势我感觉可能是对硬件要求比较高,普及成本比较大。

关于这个问题"与其他主流的分布式文件系统(例如 HDFS、Ceph)相比,3FS 的主要优势和劣势分别是什么?",3FS 强调了高性能和强一致性,这对于 AI 训练中的数据一致性和模型稳定性非常重要,这是它相对于 HDFS 和 Ceph 等更通用的分布式文件系统的一个主要优势。至于劣势,可能在于它对硬件的依赖性较高,需要SSD和RDMA网络的支持,这可能会增加部署成本。

对于“文章中提到 3FS 采用了分离式架构。这种架构是如何工作的,以及它对性能和可靠性有哪些影响?”,我觉得分离式架构可能指的是将计算和存储分离,这样可以独立扩展计算和存储资源,从而提高整体性能。可靠性方面,分离式架构可以提高容错性,即使部分存储节点出现故障,也不会影响整个系统的运行。

“与其他主流的分布式文件系统(例如 HDFS、Ceph)相比,3FS 的主要优势和劣势分别是什么?”我的理解是,3FS 的优势在于针对 AI 训练和推理场景的优化,强一致性也简化了开发。劣势可能是生态还不够成熟,社区规模相对较小,文档和支持资源可能不如 HDFS 和 Ceph 丰富。

就“3FS 如此高的吞吐量,在实际应用中能带来哪些改变?除了模型训练速度提升外,还有其他潜在的优势吗?”这个问题,我想到的是,它可以促进更大规模的模型训练和更复杂的AI应用发展。高吞吐量意味着可以处理更多的数据,从而训练更大、更复杂的模型,实现更高级的AI功能,比如更精细的图像识别、更自然的语言生成等等。 这就像以前用自行车,现在有了高铁,能去的地方更多了,能做的事情也更多了。

引用一下问题:“3FS 如此高的吞吐量,在实际应用中能带来哪些改变?除了模型训练速度提升外,还有其他潜在的优势吗?” 我认为高吞吐量带来的一个潜在优势是更快的实验迭代速度。可以更快速地测试不同的模型和参数,从而更快地找到最佳方案。

引用一下“文章中提到 3FS 采用了分离式架构。这种架构是如何工作的,以及它对性能和可靠性有哪些影响?”这个问题,分离式架构通常意味着将存储和计算资源解耦,允许独立扩展。这种架构可以提高性能,因为计算节点可以并行访问存储资源,而不会相互干扰。同时,它还可以提高可靠性,因为即使一个存储节点发生故障,其他节点仍然可以继续提供服务。不过,具体的实现细节和对性能可靠性的影响还需要进一步了解。

我觉得除了训练速度提升以外,3FS带来的高吞吐量还可能改变数据预处理的方式。以前可能需要进行大量的数据压缩和优化才能满足训练需求,现在可以直接处理更大规模的原始数据,从而提高模型的准确性和泛化能力。