NVIDIA 在技术博客中给出了一个概率计算:即使每块 GPU 单日无故障概率为 99.9%,一个横跨 10,000 块 GPU 的作业在当天不被中断的概率仅约 0.005%。据该博客介绍,NVIDIA Recovery 是一个开源的工作负载级服务,用于自动化分布式训练作业在故障后的检测、归因、隔离和重启;在 7 月 9 日至 10 月 9 日期间,它在一个生产训练集群上以平均检测延迟 69 秒、恢复动作下发延迟 94 秒,日均覆盖近 200 个作业,期间累计记录约 8,550 次异常检测。

它解决什么问题

据 NVIDIA 博客,大规模分布式训练中,单个 GPU 的故障概率虽低,但节点数量一多,作业被中断几乎是必然的。博客还转引 Meta 的一项研究称:在一项为期 11 个月、涉及 24,000 块 A100 GPU 的研究中,硬件故障只影响了不到 1% 的作业数量,但这些作业占据了 19% 的 GPU 运行时间——最大、运行最久的作业受影响最严重。

据 NVIDIA 博客,每次中断都需要人工分析日志、隔离节点、从检查点重启,当这一流程需要全天候覆盖集群上所有作业时,”变得不可持续”。

它怎么做

NVIDIA 在博客中将 Recovery 的工作流程描述为四个阶段的循环:

检测(Detect)。 据 NVIDIA 博客,异常检测器结合应用日志和调度器信号来识别崩溃、挂起和掉速节点(straggler,即拖慢整个作业的慢节点)。它能识别 PyTorch 和 NCCL 故障、CUDA 错误以及互连故障模式。缺少进度信号或出现已知的通信挂起模式表示可能挂起;相对于近期基线的持续吞吐量下降则表示可能存在掉速节点。

归因(Attribute)。 NVIDIA 介绍,Recovery 利用检测阶段收集的调度器信号和应用日志对中断进行分类,以指导恢复动作。可选地与 NVIDIA Attribution 集成,后者可进一步区分硬件故障、系统软件问题和应用 bug。运营方也可以接入自己的归因服务。

隔离(Isolate)。 据该博客,异常修复器根据恢复建议,将被判定有问题的节点从后续重启尝试中排除,或在继续重试无意义时停止作业。它会跨多次尝试追踪问题节点,避免反复踩同一个坑。此外还有一个看门狗服务作为安全网:如果恢复决策耗时过长或失败,看门狗会放行正常调度,防止作业无限等待。

重启或停止(Restart or Stop)。 NVIDIA 在博客中称,调度器集成层根据 Recovery 的建议重启作业或停止无效重试。重启时,应用使用自身已有的重启逻辑从最近保存的检查点恢复。如果作业在可配置的若干次尝试中都未能保存新检查点,后续重试可被终止。整个循环的每一步都会写入一条持久化、可查询的审计记录,包括匹配到的检测模式、采取的动作、时间戳、作业标识符,以及 NVIDIA Attribution 返回的诊断结论(如有)。

和以前的做法有何不同

NVIDIA 在博客中将 Recovery 定位为一个独立的”工作负载恢复层”,与已有的几类工具各管一段。Break-fix 自动化负责识别故障节点、下线和送修硬件;NVRx 等框架级库在单个训练作业内部提供恢复和挂起检测,但需要每个用户自行配置;Slurm 等调度器管理资源分配和容器执行。Recovery 在这些之上做的是跨作业的协调:将故障归因到具体原因、决定受影响的作业是否以及在哪里重启、在共享基础设施的多个作业间保持一致的恢复策略。

据 NVIDIA 博客,一个关键的设计是”先观察再行动”。新部署默认以监控模式(monitor mode)运行:Recovery 只发布建议并记录它本来会做什么,不对调度器采取任何实际操作。运营方可以将这些建议与工程师的人工判断做对比,确认信噪比满意后再切换到行动模式。博客提到,IBM Research 在其 Slurm 集群上就走了这条路径——先在监控模式下运行,将建议与自身的人工恢复决策对比,验证通过后才启用自主恢复。

目前的边界

NVIDIA 在博客中明确,当前版本支持 Slurm 作业(包括通过 slurm-operator 在 Kubernetes 上运行的 Slurm),Kubernetes 原生支持尚在路线图上。接下来计划支持的两项能力是:Slurm 作业数组的恢复(让超参数搜索中的每个失败任务单独恢复,出现系统性故障时整体停止);以及原生 Kubernetes 恢复,首先覆盖 JobSet 和 Kubeflow PyTorchJob。路线图还提到更精确的故障分类、更完善的恢复决策记录,以及向稳定版本推进的工作。

据 NVIDIA 博客,Recovery 的恢复动作延迟止于自动化动作下发;调度和检查点恢复所需的时间决定了生产性训练实际何时恢复。项目以 Apache 2.0 许可证开源,托管在 GitHub 的 dsx-ai-factory/NVIDIA-Recovery 仓库。

主题分类:AI基础设施

参考资料

  1. Keep Distributed Training Running with Automated Workload Recovery — NVIDIA Developer Blog, 日期未标注
  2. dsx-ai-factory/NVIDIA-Recovery README — GitHub, 日期未标注