3FS的關(guān)鍵特性與優(yōu)勢

Fire-Flyer文件系統(tǒng)(3FS)專為解決AI訓(xùn)練和推理工作負(fù)載的挑戰(zhàn)而設(shè)計(jì),具有以下關(guān)鍵特性:

性能與可用性

多樣化工作負(fù)載支持

3FS的性能表現(xiàn)

1. 峰值吞吐量

在一個(gè)由180個(gè)存儲(chǔ)節(jié)點(diǎn)組成的大型3FS集群上,每個(gè)節(jié)點(diǎn)配備2×200Gbps InfiniBand網(wǎng)卡和16個(gè)14TiB NVMe SSD,使用約500+客戶端節(jié)點(diǎn)進(jìn)行讀取壓力測試(每個(gè)客戶端有1x200Gbps InfiniBand網(wǎng)卡),最終聚合讀取吞吐量達(dá)到約6.6 TiB/s,并且這一性能在有訓(xùn)練作業(yè)的背景流量下仍然保持穩(wěn)定。

2. GraySort基準(zhǔn)測試

DeepSeek使用基于3FS的Smallpond進(jìn)行GraySort基準(zhǔn)測試,這是衡量大規(guī)模數(shù)據(jù)排序性能的標(biāo)準(zhǔn)測試。其實(shí)現(xiàn)采用兩階段方法:

  1. 1. 通過鍵的前綴位進(jìn)行shuffle實(shí)現(xiàn)數(shù)據(jù)分區(qū)
  2. 2. 在分區(qū)內(nèi)部進(jìn)行排序

測試集群由25個(gè)存儲(chǔ)節(jié)點(diǎn)(每節(jié)點(diǎn)2個(gè)NUMA域/節(jié)點(diǎn),每NUMA 1個(gè)存儲(chǔ)服務(wù),2×400Gbps網(wǎng)卡)和50個(gè)計(jì)算節(jié)點(diǎn)(每節(jié)點(diǎn)2個(gè)NUMA域,192個(gè)物理核心,2.2 TiB RAM,1×200Gbps網(wǎng)卡)組成。對(duì)110.5 TiB數(shù)據(jù)進(jìn)行8,192個(gè)分區(qū)的排序在30分14秒內(nèi)完成,平均吞吐量達(dá)到3.66 TiB/分鐘。

3. KVCache性能

KVCache是優(yōu)化LLM推理過程的技術(shù),通過緩存解碼器層中之前token的鍵值向量避免重復(fù)計(jì)算。3FS的KVCache實(shí)現(xiàn)提供了顯著的性能優(yōu)勢:

使用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

還需要安裝其他構(gòu)建前提條件:

構(gòu)建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

可以按照設(shè)置指南的說明運(yùn)行測試集群。

Smallpond數(shù)據(jù)處理框架

Smallpond是一個(gè)構(gòu)建在DuckDB和3FS之上的輕量級(jí)數(shù)據(jù)處理框架,具有以下特點(diǎn):

安裝Smallpond

Smallpond支持Python 3.8到3.12:

pip install smallpond

快速入門示例

首先下載示例數(shù)據(jù):

# 下載示例數(shù)據(jù)
wget https://duckdb.org/data/prices.parquet

然后可以使用以下Python代碼處理數(shù)據(jù):

import smallpond

# 初始化會(huì)話
sp = smallpond.init()

# 加載數(shù)據(jù)
df = sp.read_parquet("prices.parquet")

# 處理數(shù)據(jù)
df = df.repartition(3, hash_by="ticker")
df = sp.partial_sql("SELECT ticker, min(price), max(price) FROM {0} GROUP BY ticker", df)

# 保存結(jié)果
df.write_parquet("output/")
# 顯示結(jié)果
print(df.to_pandas())

Smallpond已在GraySort基準(zhǔn)測試中進(jìn)行了評(píng)估,在由50個(gè)計(jì)算節(jié)點(diǎn)和25個(gè)存儲(chǔ)節(jié)點(diǎn)組成的3FS集群上,成功在30分14秒內(nèi)對(duì)110.5TiB數(shù)據(jù)進(jìn)行排序,平均吞吐量達(dá)3.66TiB/分鐘。

本文轉(zhuǎn)載自:一文詳解:DeepSeek 第五天開源的 3FS 文件系統(tǒng)

上一篇:

DeepSeek 第四天開源的模型設(shè)計(jì)套件

下一篇:

DeepSeek 第二天開源的 DeepEP
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測,選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)