DeepSeek開(kāi)源周最后一天:讓數(shù)據(jù)處理「從自行車(chē)升級(jí)到高鐵」
DeepSeek 的開(kāi)源周終于迎來(lái)了最后一天。
今天他們開(kāi)源了一個(gè)名為 3FS(Fire-Flyer File System)的系統(tǒng)。這是一種并行文件系統(tǒng),它利用現(xiàn)代固態(tài)硬盤(pán)(SSD)和遠(yuǎn)程直接內(nèi)存訪(fǎng)問(wèn)(RDMA)網(wǎng)絡(luò)的全部帶寬,能夠加速和推動(dòng) DeepSeek 平臺(tái)上所有數(shù)據(jù)訪(fǎng)問(wèn)操作。
它有以下優(yōu)勢(shì):
- 在 180 節(jié)點(diǎn)集群中實(shí)現(xiàn)了 6.6 TiB/s 的聚合讀取吞吐量;
- 在 25 節(jié)點(diǎn)集群的 GraySort 基準(zhǔn)測(cè)試中達(dá)到 3.66 TiB/min 的吞吐量;
- 每個(gè)客戶(hù)端節(jié)點(diǎn)在 KVCache 查找時(shí)可達(dá)到 40+ GiB/s 的峰值吞吐量;
- 采用分離式架構(gòu),具有強(qiáng)一致性語(yǔ)義。
在應(yīng)用場(chǎng)景方面,它支持訓(xùn)練數(shù)據(jù)預(yù)處理、數(shù)據(jù)集加載、檢查點(diǎn)保存 / 重新加載、用于推理的嵌入向量搜索和 KVCache 查找。DeepSeek V3、R1 模型均采用了這個(gè)系統(tǒng)。
- 開(kāi)源鏈接:https://github.com/deepseek-ai/3FS
- Smallpool(3FS 上的數(shù)據(jù)處理框架):https://github.com/deepseek-ai/smallpond
如果技術(shù)語(yǔ)言不好理解,可以參考這位研究者給出的通俗解釋?zhuān)?nbsp;
同時(shí),這位研究者也是一位早期使用者,他評(píng)價(jià)說(shuō),「DeepSeek 的 3FS 系統(tǒng)快得驚人,它處理數(shù)據(jù)的速度快到可以在我還沒(méi)來(lái)得及拖延的時(shí)候就已經(jīng)訓(xùn)練好了一個(gè)能幫我報(bào)稅的 AI。它擁有 6.6 TiB/s 的讀取速度,這使它成為文件系統(tǒng)界的『博爾特』(世界最快短跑運(yùn)動(dòng)員)。你眨眼的功夫,數(shù)據(jù)就已經(jīng)處理完畢了。而將這個(gè)超級(jí)快速的系統(tǒng)開(kāi)源,就像是給整個(gè) AI 社區(qū)免費(fèi)贈(zèng)送了一艘宇宙飛船,讓其他所有競(jìng)爭(zhēng)者都不得不加緊腳步追趕。」
3FS 有什么用?
Fire-Flyer File System 是一種高性能分布式文件系統(tǒng),專(zhuān)為解決 AI 訓(xùn)練和推理工作負(fù)載的挑戰(zhàn)而設(shè)計(jì)。它利用現(xiàn)代 SSD 和 RDMA 網(wǎng)絡(luò)提供共享存儲(chǔ)層,簡(jiǎn)化了分布式應(yīng)用程序的開(kāi)發(fā)。
3FS 的主要特點(diǎn)和優(yōu)勢(shì)包括:
(1) 性能和可用性
- 分離式架構(gòu)。結(jié)合了數(shù)千個(gè) SSD 的吞吐量和數(shù)百個(gè)存儲(chǔ)節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬,使應(yīng)用程序能夠以不受位置限制的方式訪(fǎng)問(wèn)存儲(chǔ)資源。
- 強(qiáng)一致性。實(shí)現(xiàn)了帶有分配查詢(xún)的鏈?zhǔn)綇?fù)制(CRAQ)以保證強(qiáng)一致性,使應(yīng)用程序代碼簡(jiǎn)單且易于理解。
- 文件接口。開(kāi)發(fā)了由事務(wù)性鍵值存儲(chǔ)(如 FoundationDB)支持的無(wú)狀態(tài)元數(shù)據(jù)服務(wù)。文件接口廣為人知且隨處可用。無(wú)需學(xué)習(xí)新的存儲(chǔ) API。
(2) 多樣化工作負(fù)載
- 數(shù)據(jù)準(zhǔn)備。將數(shù)據(jù)分析管道的輸出組織成層次化的目錄結(jié)構(gòu),并高效管理大量中間輸出。
- 數(shù)據(jù)加載器。通過(guò)支持跨計(jì)算節(jié)點(diǎn)對(duì)訓(xùn)練樣本的隨機(jī)訪(fǎng)問(wèn),消除了預(yù)取或打亂數(shù)據(jù)集的需求。
- 檢查點(diǎn)保存。支持大規(guī)模訓(xùn)練的高吞吐量并行檢查點(diǎn)保存。
- 用于推理的 KVCache。為基于 DRAM 的緩存提供了一種成本效益高的替代方案,提供高吞吐量和顯著更大的容量。
3FS 性能如何
(1) 峰值吞吐量
下圖展示了在大型 3FS 集群上進(jìn)行讀取壓力測(cè)試的吞吐量。該集群由 180 個(gè)存儲(chǔ)節(jié)點(diǎn)組成,每個(gè)存儲(chǔ)節(jié)點(diǎn)配備 2×200Gbps InfiniBand 網(wǎng)卡和 16 個(gè) 14TiB NVMe SSD。大約 500+ 個(gè)客戶(hù)端節(jié)點(diǎn)用于讀取壓力測(cè)試 ,每個(gè)客戶(hù)端節(jié)點(diǎn)配置 1x200Gbps InfiniBand 網(wǎng)卡。在有訓(xùn)練作業(yè)的背景流量情況下,最終聚合讀取吞吐量達(dá)到約 6.6 TiB/s。
(2) 灰度排序
DeepSeek 利用 GraySort 基準(zhǔn)對(duì) smallpond 進(jìn)行了評(píng)估,該基準(zhǔn)可衡量大規(guī)模數(shù)據(jù)集的排序性能。具體實(shí)現(xiàn)采用兩階段方法:(1) 使用鍵的前綴位通過(guò) shuffle 對(duì)數(shù)據(jù)進(jìn)行分區(qū),以及 (2) 分區(qū)內(nèi)排序。兩個(gè)階段都從 3FS 讀取數(shù)據(jù) / 向 3FS 寫(xiě)入數(shù)據(jù)。
測(cè)試集群由 25 個(gè)存儲(chǔ)節(jié)點(diǎn)(2 個(gè) NUMA 域 / 節(jié)點(diǎn)、1 個(gè)存儲(chǔ)服務(wù) / NUMA、2×400Gbps NIC / 節(jié)點(diǎn))和 50 個(gè)計(jì)算節(jié)點(diǎn)(2 個(gè) NUMA 域、192 個(gè)物理核心、2.2 TiB RAM 和 1×200 Gbps NIC / 節(jié)點(diǎn))組成。對(duì) 8192 個(gè)分區(qū)中的 110.5 TiB 數(shù)據(jù)進(jìn)行排序耗時(shí) 30 分 14 秒,平均吞吐量為 3.66 TiB / 分鐘。
(3) KVCache
KVCache 是一種用于優(yōu)化 LLM 推理過(guò)程的技術(shù)。它通過(guò)在解碼器層中緩存先前 token 的 key 和 value 向量來(lái)避免冗余計(jì)算。
上圖展示了所有 KVCache 客戶(hù)端的讀取吞吐量,突出顯示了峰值和平均值,峰值吞吐量高達(dá) 40 GiB/s。下圖展示了同一時(shí)間段內(nèi)垃圾回收 (GC) 中刪除操作的 IOPS。
開(kāi)源周「收官之作」,網(wǎng)友撒花
通過(guò)連續(xù)一周的高強(qiáng)度開(kāi)源,DeepSeek 已經(jīng)收獲了一大波開(kāi)發(fā)者的追隨。
有開(kāi)發(fā)者表示,3FS 和 Smallpond 是在 AI 數(shù)據(jù)處理方面樹(shù)立了新標(biāo)桿。
同時(shí),OpenAI 剛剛發(fā)布的 GPT-4.5 也被拉出來(lái)對(duì)比價(jià)格:
最后,還有人許愿:DeepSeek V4、R2 和視頻模型什么時(shí)候有?