DeepSeek开源周的最后一天,居然提到了一个叫3FS(Fire-Flyer File System)的高性能分布式文件存储系统,这是一个用于分布式计算的并行文件系统,是为AI训练和推理准备的。
https://github.com/deepseek-ai/3FS?tab=readme-ov-file

3FS充分了利用现代化的NVMe SSD和RDMA(一个绕过CPU和系统的高效内存访问技术)网络的带宽,这两项技术有助于实现更高的数据吞吐量,带来更低的访问延迟,从而更好地支持大规模数据处理和深度学习任务。

从介绍中,首先就能看到,3FS能够提供非常高的读取吞吐量。

在做性能压力测试时,用500多个客户端访问一个由180个存储节点组成的3FS集群,达到每秒6.6 TiB的读取速度。实测表现出色,这对于AI模型预训练前的数据准备和Check point创建以及恢复阶段都非常有帮助。

GraySort基准测试常用于衡量大规模排序操作的性能,看的是给大量数据时花费的时间,时间越短性能越高。使用 smallpond 系统对110.5 TiB的数据进行排序,测试了它在 25个存储节点和 50 个计算节点上的表现,平均每分钟处理3.66 TiB的数据。

KVCache(键值缓存)也非常有意思。在Transformer模型中,KV Cache可以用来优化推理过程,通过把自注意力机制的键和值缓存下来来避免重复计算。减少重复计算也就意味着,能加快token生成速度,同时也减少了多轮对话需要更多内存的问题。
可以说,键值缓存(KVCache)查找的速度影响了模型推理时的资源利用效率和性能表现。在做键值缓存查找操作时,3FS每个节点能够提供40 GiB/s以上的峰值吞吐量,这应该是一个比较高的水平。
推文还提到,3FS采用了一种分离式架构,数据存储和计算可以分开处理,从而提高了系统的可扩展性和灵活性,这是近年来存储业内比较推崇的做法。
此外,3FS还拥有强一致性语义,在多节点并行操作的情况下保持一致性比较有挑战,也说明幻方团队的水平比较高。
3FS的Github主页提到,3FS构建了一个共享存储层,可以简化分布式应用程序的开发。3FS的主要功能和优势总结了7点:
首先,3FS利用分布式存储架构聚合了数千个NVMe SSD的吞吐和数百个存储节点的网络带宽,使应用程序能够以不受位置影响的方式访问存储资源。
第二,为了保证数据一致性,系统使用了一种叫做链式复制(Chain Replication)的方法,并且引入了CRAQ机制来确保数据在多个副本之间的一致性。这使得应用程序能够轻松理解和使用系统,避免了数据不同步或者冲突的情况。
第三,3FS采用了大家平时常用的文件存储接口,用户不需要学习新的API,只要按照常规的文件读写方式就可以和系统交互,意思是说,系统兼容性好。
第四个,当我们进行数据预处理时,通常会产生很多中间结果。为了避免这些结果乱七八糟,3FS系统会把它们整理成清晰的文件夹结构,这使得后续的处理更容易找到需要的结果。
第五个,数据加载器。通常在深度学习训练中,我们需要将数据提前加载、打乱顺序以提高训练效率。但这个过程比较麻烦且占用内存。使用数据加载器后,我们可以随时、随机地访问任何训练数据,而不需要提前加载或处理数据,极大地简化了操作。
第六点,关于Check point的部分。训练阶段需要定期保存进度(Check point),这样如果训练中断,可以从最近保存的地方恢复。3FS系统支持在多个计算节点上并行保存检查点,加快了创建Check point的速度,这非常有用。
第七点,关于KVCache部分。我们已经知道,模型推理时需要缓存一些数据以提高速度。传统做法是缓存到DRAM内存里,然而,DRAM很贵。而3FS支持让KVCache存放到存储系统重,从而以更高的速度快速访问所需的数据,当然也减少了内存的压力。
此前,我有注意到国内存储厂商中,华为存储就提到可以利用KVCache能缓存到存储系统的特性,可以节省DRAM内存资源,还提出了“以存代算”的叫法。
这是我看到的存储厂商与DeepSeek比较好的结合点,DeepSeek与存储的结合点肯定不止于此……

2025年3月27日,以“智能基石 创新赋能”为主题的人工智能基础设施峰会即将在上海召开,大会上会有更多优化DeepSeek部署的相关技术,欢迎您的关注和参与。