开启左侧

DeepSeek开源的文件系统,是如何提升大模型效率的?

[复制链接]
在线会员 DDeEB0 发表于 3 小时前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 |快速收录
选自 maknee.github.io
作家:Henry Zhu

机械之心编译

正在 AI范围 里,年夜模子凡是具备百亿以至数千亿参数,锻炼战拉理历程对于计较资本、保存体系战数据会见服从提出了极下请求。

2 月 28 日,DeepSeek 启源了一种下功用散布式文献体系 3FS,民间暗示其目标是处置野生智能锻炼战拉理事情背载的挑战。

动作一种并止文献体系,3FS 能够正在 180 节面散群中完毕 6.6 TiB/s 的聚拢读与吞咽质,关于进步 DeepSeek V三、R1 年夜模子的锻炼数据预处置、数据散减载、查抄面保留/从头减载、嵌进背质搜刮战 KVCache 查找等事情的服从有主要辅佐。

人们觉得,DeepSeek 颠末启源 3FS 取 smallpond 等东西,正在 AI根底 装备范围建立了新的设想范式。其代价不但正在展示手艺气力,更是正在启动中心根底装备立异。

DeepSeek 提出的文献体系是怎样运做的,又能怎样进步模子服从?近来,去自伊利诺伊年夜教厄巴纳-喷鼻槟分校的正在读专士死 Henry Zhu 对于 3FS中止 理解读。

如下是专客本文:

甚么是 3FS?

3FS(Fire-Flyer File System)是 DeepSeek 正在启源公布周期间公布的散布式文献体系,旨正在充实使用现代静态软盘(SSD)战长途间接内乱存会见(RDMA)收集的局部戴严,能够加快战促进 DeepSeek 仄台上统统数据会见操纵。

原文将深入会商甚么是散布式文献体系和 3FS 的运做方法,起首介绍一点儿布景常识。

甚么是散布式文献体系?

散布式文献体系会欺骗使用法式,使其觉得它们在对于一个通例的当地文献体系截至通信。这类抽象十分强大:一个理论上分离正在 10 台差别机械上的文献,瞅起去便像一个简朴的文献路子,比方 /3fs/stage/notes.txt。

使用散布式文献体系取使用当地文献体系并没有两致。

正在上图中,咱们颠末运行 mkdir 战 cat 号令正在当地战散布式文献体系上创立了差异的文献夹战文献,号令完整差异。使用散布式文献体系,统统那些细节皆被抽象进去,用户只要操纵文献便可,无需担忧背景涉及几台机械、有几收集挪用或者几软盘。

散布式文献体系的劣势

取当地保存比拟,散布式文献体系主要有二年夜劣势:它们能够处置海质数据(下达 PB 级),并供给逾越单机才气的下吞咽质。它具备容错才气(即使一台机械宕机,体系仍能持续运行)战冗余才气(即使一个节面上的数据破坏,其余节面仍可得到本初正本)。

散布式文献体系普遍使用于很多理论使用:


    并止处置框架(撑持 Spark 的 HDFS);

    戴无数据减载器战 check point 的机械进修锻炼流火线;

    由 Google Colossus 撑持的内部庞大代码/数据保存库;

    旅游等止业使用;

    照片保存效劳等营业。


深入理解 3FS

那末,DeepSeek 启源的 3FS 是怎样事情的呢?

它的中心由四种主要节面范例构成:

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w2.jpg

3FS 中涉及的组件。

那些组件的感化各没有差异:

1. Meta – 办理元数据:文献职位、属性、路子等;

2. Mgmtd – 办理效劳器掌握散群设置:其余节面正在那里、哪些节面处于举动形状和复造系数;

    能够将其望为一个路由器,它明白每一个节面的地点,并能够辅佐节面相互查找。(类似的类比是 NAT hole 中使用的集合式效劳器)

3. Storage –保管 物理磁盘上理论文献数据的节面;

4. Client – 取统统其余节面通信以检察战改正文献体系:

    恳求 Mgmtd 发明其余节面

    恳求 Meta效劳 器施行文献操纵(翻开、统计、封闭、标记链交)

    取保存节面传输数据


现在让咱们更具体天理解每一个组件。

Mgmtd

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w3.jpg

Mgmtd 备案

Mgmtd 追踪散群中在运行的节面。保存节面战元节面正在启用时会备案,并按期收收心跳旌旗灯号以确认它们仍然处于举动形状。那供给了体系的集合望图,能够立即识别哪些节面处于宕机形状。

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w4.jpg

办理恳求

节面无需取收集中其余统统节面连结跟尾。差异,它们能够颠末盘问办理节面去发明节面。固然那会增加定位节面的分外来去次数,但是因为节面发明其实不固态的,因而能够低落庞大性。

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w5.jpg

Mgmtd 链。

别的,Mgmtd 保护散布式算法中差别节面的设置。具体来讲,复造链(CRAQ 是一种十分繁复的算法,颠末将节面望为链去完毕强不合性战容错性。)被成立,其节面动作设置保存正在 mgmtd 中。

Meta

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w6.jpg

Meta 概览。

元节面比 mgmtd略微 庞大一点儿。客户端颠末 RPC 挪用宁可通信。元效劳器正在元保存上施行典范的文献体系操纵(翻开、创立、统计、打消链交)。文献元数据驻留正在 inode 中,保存巨细、权力、统统者战时间戳等属性。DirEntry 工具将路子映照到 inode,单个文献能够有多个 DirEntry(类似于标记链交)。inode 战 DirEntry 皆保存正在 FoundationDB 中。

有人可以念明白 founationdb 的键是甚么样的?inode:「INOD」+ inode id,dir entry:「DENT」+ nodeid + path,使用 transaction中止 幂等操纵。会话办理器追踪翻开的文献,并将文献会话保存正在 FoundationDB 中。假设客户端断启跟尾但是已封闭文献,会话办理器将启用文献共步。文献简略恳求列队到残余汇集器,残余汇集器会正在简略目次条款战 inode 以前从保存节面中简略数据。

Storage

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w7.jpg

保存概览。

保存节面的主要功用是颠末将数据合成成块去办理物理保存上的数据:

Rust 有一个名为 ChunkStore 的旧版块办理器,是用 C++ 编辑的。尔没有太大白为何是用 Rust,可以是因为它用起去很幽默,并且供给了更宁静的保证,能够追踪磁盘保存块。


    Chunk 代表一齐物理磁盘,并追踪其元数据(ID、巨细、磁盘偏偏移质、物理磁盘、校验战、版原等)。那是统统其余构造用去追踪数据块的最本初数据构造。

    Chunk 引擎没有许可用户间接取 Chunk 接互,因为那会增加引擎使用的庞大性。引擎交心供给了一点儿操纵,为用户供给了一种严峻明了的取引擎接互的方法(查找、分派、提接、元数据等)。

    默认情况下,统统那些数据皆保存正在 LevelDB 中,前缀字节暗示操纵范例(盘问元数据),并以 Chunk ID 动作键。


差别的 Worker 使用块引擎去保护物理保存


    AllocateWorker 正在块引擎平分配新的块

    PunchHoleWorker 收受接管再也不使用的块

    AioReadWorker处置 对于块的读与恳求,并将读与恳求搁进 io_uring 行列,提接并等候完毕


厥后,尔感应很惊奇。块引擎其实不对于理论的物理磁盘施行操纵,它理论上虽然理元数据。如许干的启事之一可以是为了让 ChunkEngine 完毕连结粗简,让它只担当办理元数据。

保存节面需要明白怎样将写进操纵转收到 CRAQ 链中的下一个目标。

今朝,只要明白写进操纵需要转收到其余节面便可。


    目标由多个块构成(能够将其望为包罗差别块的逻辑保存)。

    一个链由多个目标构成(凡是逾越多个节面)。

    保存节面背 mgmtd效劳 器盘问其余节面的链,和该链中写进操纵需要转收到的响应目标(节面)。


CRAQ

CRAQ(Chain Replication with Apportioned Queries)是一种完毕强不合性战线性不合性的和谈。它是保证数据块容错的中心体制。那里将注释 CRAQ 的事情道理,并展示其正在 3FS 中的完毕。

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w8.jpg

Craq 写进传布。

写进操纵重新部开端。正在咱们的示例中,咱们将 name=henry 写进体系。跟着写进操纵沿链背下挪动,每一个条款城市被标识表记标帜为「净」,并附加一个版原号。净条款不成宁静读与。一朝写进操纵抵达尾部,它便会被提接并标识表记标帜为「洁净」。

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w9.jpg

Craq 写进提接。

跟着提接消息从尾部背头反背传布,写进操纵将变患上洁净。每一个节面提接该条款并将其标识表记标帜为洁净。

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w10.jpg

Craq clean read

关于读与来讲,历程很简朴:假设工具是洁净的,则立即将其前去给客户端。

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w11.jpg

Craq dirty read

挑战发作正在净工具上。每一个链城市追踪净版原战洁净版原。因为尾部不断包罗最新提接的数据,因而正本会盘问尾部以获得最新提接的工具,进而保证强不合性。

CRAQ功用

CRAQ 的读写功用果事情背载而同。写进吞咽质战提早受链中最缓节面的限定,因为写进必需按挨次处置每一个节面。比方,正在 Zipfian任务 背载(此中频仍会见的数据占主宰职位)中,读与功用会受到作用,因为工具可以很净,进而迫使盘问到尾部节面。那会构成瓶颈,因为尾部必需处置年夜大都读与恳求。

怎样正在 3FS 中使用 CRAQ

DeepSeek启源的文献体系,是怎样提拔年夜模子服从的?w12.jpg

保存接纳条戴化,CRAQ 正在其上运行。

正在原例中,散群由 5 个节面构成,每一个节面配备 5 个 SSD。保存目标复造到 3 个节面,旨正在制止数据重叠,进而制止节面缺陷年夜幅作用部分吞咽质。

思考一个极度场景,统统链皆布置正在节面 一、二、3 上。假设节面 1发作 缺陷,散布式体系将丧失总吞咽质的 1/3,而没有是上图所示的 1/5。3FS 设想分析中供给了一个示例,并截至了更深入的注释。CRAQ 正在顶层运行,办理头、中、尾节面。

3FS 默认接纳强不合性读与。写进操纵从头至尾,再从头至尾,吞咽质受最缓节面的限定,提早由统统链节面的总提早决定。

差别复造和谈比力表。

如上表所示,正在罕见情况下,宁可他和谈战体系比拟,CRAQ 以下写进提早为价格,完毕了可扩大的高提早读与。

其余散布式文献体系

这时候分有人可以会问了:这类架构宁可他散布式文献体系有甚么差别?从下条理去瞅,那些组件很罕见,险些每一个散布式体系中城市呈现客户端、元数据、保存战办理节面的观点。

区分正在于实在践合用性战理论完毕:


    它善于处置哪些事情背载

    它的调劣活络性

    布置烦琐性

    吞咽质扩大才气

    正在效劳品级目标 (SLO) 内乱连结提早

    可靠性


和决定其可用性的更精密的手艺细节:


    存留哪些瓶颈

    怎样办理瓶颈

    它的锁定办法(或者没有使用锁定办法)

    接纳的具体数据构造

    硬件设想所针对于的软件

    使用哪一种容错算法或者纠增码


思考到那一面,尔念深入阐发一下那个绝对较新的启源散布式文献体系的功用。散布式文献体系的开辟具备挑战性,今朝的基准尝试相称无限,咱们也尚未将 3FS 取单节面体系战其余散布式文献体系的比力,因而很易评介它的功用。

另有一点儿成就是值患上会商的:


    DeepSeek 的一点儿道法可否建立,特别是对于 FUSE 瓶颈的道法?

    咱们能以某种方法复现他们的功用图吗?

    正在甚么情况下功用会降落?

    体系的瓶颈是甚么(CPU/内乱存/磁盘/收集)?

    那个文献体系正在哪些范例的事情背载下表示优良?

    宁可他散布式文献体系比拟怎样?

    它怎样处置现有体系面对的成就?

    尔能对于体系截至一点儿改良吗?


正在原系列文章的其余部门中,作家将经历干出开端假定、尝试它们和从差别中进修的历程,以更深入天理解 3FS 的理论表示。

参照本文:

https://maknee.github.io/blog/2025/3FS-Performance-Journal-1/

© THE END

转载请联系原公家号得到受权

投稿或者追求报导:liyazhou@jiqizhixin.com
您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )