大数跨境

十万卡保障:Meta FT-HSDP 方案解析

十万卡保障:Meta FT-HSDP 方案解析 AI闲谈
2026-02-28
0
导读:上一篇文章中介绍了字节的大规模 LLM 训练管理系统 ByteRobust,并借机回顾了之前介绍过的大规模 AI 集群中的常见问题和运维实践。本文分享 Meta 的 FT-HSDP,它与 ByteRo

一、引言

上一篇文章中介绍了字节的大规模 LLM 训练管理系统 ByteRobust,并借机回顾了笔者之前介绍过的大规模 AI 集群中的常见问题和运维实践。本文进一步分享 Meta 的 FT-HSDP,它与 ByteRobust 有不同的应用场景,主要针对 10 万 GPU 的超大规模场景,与 1 万 GPU 的挑战有所不同。

对应的论文为:[2602.00277] Training LLMs with Fault Tolerant HSDP on 100,000 GPUs [1]

相关工作可以参考笔者之前的文章:

    二、摘要

    大规模 LLM 训练通常采用同步训练模式,要求所有 GPU 同时处于健康状态。根据作者在 100K GPU 集群的训练经验,同步训练会因为频繁的故障较长的恢复时间导致训练效率低下。比如 100K GPU 规模,每 18 分钟就会出现一次故障,而恢复时间长达 10 分钟,导致有效训练时间只有 8/18=44% 左右。

    为了应对这一挑战,作者提出 FT-HSDP(Fault Tolerant Hybrid-Shared Data Parallelism),该方法以数据并行(DP)副本作为容错单元:当故障发生时,仅将包含故障 GPU 或服务器的单个 DP 副本离线重启,其余副本可持续进行训练。

    FT-HSDP 融合了多项关键技术(PS:非数学等价):

    • 设计了跨 DP 副本的容错 AllReduce(FTAR)梯度交换协议,通过 CPU 驱动动态增减副本的复杂控制逻辑,同时利用 GPU 执行数据传输以获得最优性能。

    • 提出了非阻塞追赶协议,使恢复中的副本能以最小延迟重新加入训练流程。

    与 O(100K) GPU 规模的完全同步训练相比,FT-HSDP 能将故障恢复导致的停滞时间从 10 分钟降低到 3 分钟,有效训练时间从 44% 提升到 80%。

    三、背景

    3.1 硬件稳定性

    对于一个 32K GPU 的预训练任务,可以获得 95%-97% 的有效训练时间,平均来说,每天每 1000 台服务器会出现 2.3 次中断。如下图 Table 1 所示为所有的训练中断,其中 78% 是硬件相关的中断:

    • “Faulty GPU Compute” 原来是占比最高的故障,得益于通过技术手段隔离了大量故障 GPU,该比例大幅下降到只占 7.4%。

    • “HBM3 Memory” 的问题最多,达到 22.9%。

    • PCIe Device 的问题也很多,可能也和从 A100 的 PCIe Gen4 升级到 H100 的 PCIe Gen5 后的稳定性下降有关。

    3.2 100K GPU 的挑战

    如下图 Figure 2 所示(其中 cold-N 表示整个任务终止,warm-N 标准只终止故障有关联的设备),当 GPU 规模从 16K 增加到 98K 时会面临几大挑战:

    • Allocation:GPU 分配时间超长,warm-N 方案只替换异常相关设备的分配需要 20-40s;而全部重新分配的时间高达 3-5min。

    • NCCL:NCCL 初始化时间也会随着 GPU 数量的增加大幅提升(字节的 [2402.15627] MegaScale: Scaling Large Language Model Training to More Than 10,000 GPUs [2] 也也提到类似问题),16K GPU 的 NCCL 初始化时间 17s 左右,而 98K GPU 的 NCCL 初始化时间高达 200s。

    • FirstStep:训练的第一个 Step 由于需要进行一些额外的工作,比如初始化 DataLoader,分配内存、JIT 编译等,往往会需要更长的时间,比如正常的 Step 只需要 20s 左右,而这里 FirstStep 高达 2-4min。

    • Loading:除此之外,还有一些 Checkpoint 加载,健康检查等一系列开销。

    3.3 集群 & 网络

    超过 100K GPU 的训练集群会分布在多个 DC Building 中,为此,Meta 设计了多 Building 网络架构,将多个相邻的 DC Building 连接到一个统一的 RoCE Fabric(Meta 在 [2510.20171] Collective Communication for 100k+ GPUs [3] 中也介绍过该集群网络架构)。

    • 如下图(a)所示,每一个 Building 里都是 3 层 Clos 架构。

      • RTSW(Rack Training Switch)连接一个 Rack 内的 GPU;

      • CTSW(Cluster Training Switch)实现一个 AI Zone 内所有 RTSW 的 Full-mesh 全互联;

      • ATSW(Aggregator Training Switch)将一个 Building 内的多个 AI Zone 连接起来,跨 AI Zone 的带宽收敛比为 1:2.8

    • 如下图(b)所示,各个 Building 之间的 ATSW 同样 Full-mesh 全互联,以实现多个 DC Building 的互联,这里跨 DC Building 的带宽收敛比同样是 1:2.8

    相应的通信时延也有较大区别,同一个 Rack 内 GPU 通信时延最低。同一个 AI Zone 不同 Rack同一个 DC Building 不同 AI Zone不同 DC Building 的通信时延分别达到其 7x、15x、30x。

    Meta 在 [2407.21783] The Llama 3 Herd of Models [4] 中也提到过 LLaMA 3 训练的网络架构。如下图所示,其部分采用 Arista 7800 系列 Switch(PS:参考 Arista 7800R3 Series [5],有多个版本,分别可以提供 576/432/288/144 个 400 Gbps Port,图中以 288 Port 版本为例)。但是其跨 AI Zone 的收敛比是 1:7,而在新的方案中进一步增加了跨 AI Zone 的带宽,收敛比为 1:2.8。跨 DC Build 也同样保持 1:2.8。

    四、相关工作

    4.1 Amazon HSDP

    HSDP(Hybrid sharded data parallelism - Amazon SageMaker AI [6]) 是对 FSDP 的扩展。简单来说,HSDP 相当于将 FSDP 作为一个 DP 副本在此基础上进一步扩展 DP 组,当然也会额外引入一些通信操作。具体来说:

    • FSDP

      • 全集群只有 1 个逻辑副本,模型参数、梯度、优化器状态全部均匀分片到所有 GPU 上。

      • 每张 GPU 只存 model_size / world_size 的状态 → 内存最低。

      • 所有通信(AllGather 参数、ReduceScatter 梯度)都要跨全集群,通信规模随节点数线性增长,容易成为瓶颈。

    • HSDP

      • 将所有 GPU 分成 R = word_size / K 个独立的分片组,每组包含 K 个 GPU。

      • 每组相当于一个小型的 FSDP:

        • 这个组里有完整的模型副本,模型参数、梯度、优化器状态均匀分布在组内的 K 个 GPU 上。

        • 整个任务有 R 个完整的模型副本。

      • 每个 GPU 的内存占用比 FSDP 更大,大了 R 倍,为 model_size / K。

      • 除了组内的 ReduceScatter 梯度聚合外还要进行组间(多个副本)的梯度 AllReduce,然后独立进行优化器状态和参数的更新。

    4.2 NVIDIA Nonuniform-Tensor-Parallelism

    其实 NVIDIA 在 [2504.06095] Nonuniform-Tensor-Parallelism: Mitigating GPU failure impact for Scaled-up LLM Training [7] 中也提出了一种缓解大规模训练中 GPU 故障导致训练效率低下的工作。简单来说,其包含 2 个关键技术:非均匀 TP(Nonuniform-TP,NTP)和具备增强供电与散热能力的机架方案

    非均匀 TP:在标准的 TP 中,Tensor 被均匀的切分到 TP 组中的 GPU 里,相应的存储、计算量一致。当某个 GPU 故障时,将故障 GPU 对应 Tensor 切片以及计算负载均匀切分到 TP 组内健康的 GPU。比如 TP 64,当某个 GPU 故障时,其他 63 个 GPU 重新构成一个 TP 组。

    然而,NTP 也会带来额外的挑战:

    • 一方面 DP 组之间的 TP 组大小不同,梯度 AllReduce 会更加复杂,为此,作者也对通信进行了相应的优化,以适配这种场景。

    • 另一方面,由于遭遇 GPU 故障的 DP 副本会以降低后的 TP 维度继续执行,其贡献的吞吐量与剩余正常 GPU 的比例相匹配,相应的 TP 组就会成为 Straggler。

    具备增强供电与散热能力的机架方案:为缓解 Straggler 导致的性能下降,作者提出了一种创新的机架电源动态分配方案。该设计允许将故障 GPU 的功率预算重新调配给同机架内正常工作的 GPU,使其在不降低 Local Batch 规模的前提下维持全吞吐量运行。这种机架设计可为剩余工作 GPU 提供最高 TDP 30% 的额外功率,通过提升运行频率实现单 GPU 性能增益。实验表明,该方案无需依赖机架备用 GPU 即可近乎完全消除因 GPU 故障导致的性能损失。

    PS:当然,如果是非单一 GPU 的故障,或者 Scale-Up 域较小,此方案也有一定的局限性。

    五、FT-HSDP 方案

    5.1 概览

    FT-HSDP 会创建多个训练副本,每个副本处理不同的数据子集。副本内的每个 GPU 根据其在副本中的位置分配唯一 Rank。在训练完一个 Step 后,不同副本中相同 Rank 的 GPU通过AllReduce 同步梯度。副本内部通信限制在同一 DC Building 内,而梯度交换则跨 DC 进行。

    FT-HSDP 的两大容错优势:

    • 单个 GPU 故障只需重建包含该 GPU 的单个副本,恢复规模大幅缩小,恢复时间显著缩短。(PS:副本太多 GPU 内存压力会比较大,副本太少则恢复规模太大,作者实践是 98K GPU 中使用 12 个副本,每个副本 8192 GPU)

    • 故障副本恢复期间,其他健康副本可以继续正常训练(仅整体吞吐量略降),避免整个系统停顿。

    整个流程如下图 Figure 4 所示,Rank 0(副本 Leader):

    • 包含多个 intra-replica 流(Forward/Backward计算与副本内的通信)。

    • 1个 inter-replica 流(执行 FTAR 梯度交换)。

    • main-tread 执行优化器步骤(OPT)更新模型权重。

    • FT-HSDP 将 FTAR 与 Backward 计算Overlap,提升训练速度

    • Rank 0 额外承担控制逻辑:通过共识服务协调各副本的 Rank 0,确定健康副本;同时查询本副本其他 Rank 是否完成梯度交换,决定是否执行优化器步骤。

    5.2 FTAR

    跨 DC 梯度交换无法直接使用 NCCL(不支持动态组重建、复杂错误处理、网络感知等)。FT-HSDP 引入自定义 FTAR 协议,满足四大目标:

    • 网络感知架构(跨 DC 带宽受限,需拥塞控制)。

    • 可重建通信组(故障后健康 Rank 可清理旧连接、重建新组)。

    • 易故障管理(区分可恢复/不可恢复错误)。

    • 最小资源争用(与 Backward 计算 Overlap)。

    为此,作者设计了 FTAR 协议,如下图 Figure 5 所示,其采用 CPU + GPU 混合设计:

    • CPU(控制平面):初始化 RDMA 连接、运行 reconfig 函数决定参与 Rank、处理拥塞控制、错误分类与重试等。

    • GPU(数据平面):拷贝数据到 send buffer、通知 CPU、执行 RDMA 发送/接收、reduce 操作等。

    除此之外,还对 Ring 算法、Kernel 等进行了优化,这里不再赘述。

    5.3 异常后的一致性保障

    FT-HSDP 使用了类似两阶段提交(Two-Phase Commit,2PC)的协议来作为更新权重前的屏障,以确保故障后的一致性。具体来说,在执行 Optimizer Step(更新模型权重)之前,副本的 Leader(Rank 0)会向副本内的所有 GPU 确认是否所有的梯度交换都已经完成。

    • 只有当副本内所有 GPU 都回答 “Yes” 时,才会统一执行权重更新。

    • 如果有人回答 “No”,也就是副本中存在故障,Rank 0 就会命令副本内的所有 GPU 重试这一步。此时该异常副本还没有更新模型权重,可以直接重新执行该副本的 Forward、Backward 以及梯度 ReduceScatter(PS:由于梯度聚合是分桶进行,并且与 Backward Overlap,因此部分梯度可能已经释放,因此需要从 Forward 重新开始)。

    需要注意的是,由于健康副本会进行权重更新,而异常副本会回退,就导致了不同副本之间 Step 可能存在不一致(比如,副本 1/2 在训练 Step 100,而副本 3 在训练 Step 99),这是 FT-HSDP 允许的,也是能够实现容错的关键。

    作者也通过实验证明这种不一致(与同步训练非数学等价)并不会影响模型效果:

    5.4 非阻塞追赶协议

    发生故障时,可能副本 1 成功完成了梯度交换(2PC 成功,更新了权重进入下一 Step),而副本 2 因为故障导致 2PC 失败(丢弃了梯度,停留在当前 Step)。FT-HSDP 允许这种跨副本的进度差异,Replica 2 随后会通过非阻塞追赶协议(Non-blocking Catch Up)重新与大部队同步。如下图 Figure 6 所示:

    • 每步开始,各副本通过共识服务上报“下一 Step 编号”。

    • Step 最高的副本(健康)正常训练当前 Step n。

    • 落后副本从健康副本 fetch Step n-1 的 Checkpoint。

    • FTAR 阶段:健康副本发送真实梯度,落后副本发送零梯度

    • FTAR 自动使所有副本状态一致,下一步共同训练 Step n+1。

    为了保证 fetch Checkpoint 的时间小于一个 Step 的训练时间,还实现了高效的 Checkpoint Fetching 方案,如下图 Figure 7 所示:

    5.5 实现

    在实现中也有一些额外的 Tips 需要注意:

    • 不允许跳过数据,也不允许重复训练同一个 Batch,这就需要记录好 DataLoader 的状态,就是一些 index 和偏移值,非常小。当然,如果某个副本频繁故障,可能导致数据的极端不均衡,此时需要进行数据 Batch 的重洗,不过这个概率极低。

    • 副本大小需要权衡,太小无法有效节约资源,太大的话 GPU 显存压力又会很大,为了缓解 GPU 显存压力,增加了优化器状态 offload 到 CPU 内存的机制,拉取 1GB 数据只需要 60ms,几乎不影响训练进度。

    • 恢复后的第一个训练 Step 很慢,为此将很多过程提前,以大幅降低 FirstStep 时间。

    • 真实的 100K GPU 测试成本极高,无法频繁跑。为此,创建了仿真工具,透明替换 GPU 模块为 CPU mock 版本,计算部分直接跳过,通信部分用 CPU 基础通信库替换。可以保障在 100K GPU 之前就完成大规模验证。

    六、参考链接

    1. https://arxiv.org/abs/2602.00277

    2. https://arxiv.org/abs/2402.15627

    3. https://arxiv.org/abs/2510.20171

    4. https://arxiv.org/abs/2407.21783

    5. https://www.arista.com/en/products/7800r3-series/specifications

    6. https://docs.aws.amazon.com/sagemaker/latest/dg/model-parallel-core-features-v2-sharded-data-parallelism.html

    7. https://arxiv.org/abs/2504.06095

    【声明】内容源于网络
    0
    0
    AI闲谈
    跟进最新 AI 动态,闲谈 AI Infra, GenAI 最新发展。
    内容 183
    粉丝 0
    AI闲谈 跟进最新 AI 动态,闲谈 AI Infra, GenAI 最新发展。
    总阅读481
    粉丝0
    内容183