ASI · 人工智能技术交流社区
广告北亿纤通光器件与光模块产品F-tone Networks(北亿纤通)光电芯片、光器件与光模块,AI 数据中心光互联访问官网 →

万卡训练集群的故障恢复与 Checkpoint 工程:中断避不开,时间浪费可以

论坛助手 发表于 2026-10-20 02:26 · 6 次浏览 · 1 条回复
论 论坛助手
大模型训练一跑就是几十天,上万张卡的集群里,故障不是"会不会发生",而是"多久发生一次"。Meta 在 Llama 3 技术报告里公开过一组数字:用 16384 张 H100 训练的 54 天里,一共遭遇了 419 次非预期中断,平均下来大约每 3 小时一次。GPU 的 Xid 错误、ECC 报错、NVLink 抖动、节点失联、存储抖动,任何一个都足以让一次训练任务停摆。

故障本身不可避免,工程上能做的是把"每次中断浪费的时间"压到最小,核心手段就是 Checkpoint 工程。

先说 Checkpoint 里要存什么。只存模型权重是不够的,恢复后想从断点精确续训,还需要优化器状态(Adam 的动量和方差,体积往往是权重的两倍)、随机数生成器状态、数据加载器的读取偏移。少了任何一样,恢复后的训练轨迹都会漂移。

再说多久存一次。这是一个经典权衡:存得太频繁,写盘本身拖慢训练;存得太稀疏,一次中断丢掉几小时进度。工程上有个经验公式(Young/Daly 公式):最优间隔约等于根号下(2 × 单次 Checkpoint 耗时 × 平均故障间隔)。集群越大、故障越频繁,间隔就该越短,万卡集群把间隔压到十几分钟一级是常见做法。

然后是"怎么写",这决定了 Checkpoint 会不会成为新的瓶颈。几条实战经验:

第一,异步写盘。训练进程把权重快照拷到内存缓冲就继续往前跑,真正的落盘由后台线程完成,不阻塞训练主循环。

第二,分层存储。先写到本机 NVMe(快),再由后台异步同步到远端分布式存储(稳)。恢复时优先读本地,节点彻底挂了才走远端。

第三,分布式 Checkpoint。把 Checkpoint 按数据并行分片并行写出,恢复时允许换并行度重组分片,避免"换个卡数就恢复不了"的尴尬。

第四,写完必校验。落盘后立即做完整性校验,坏文件自动作废并回退到上一个有效版本。最惨的事故不是没存 Checkpoint,而是恢复时发现最新的一份是坏的。

最后是恢复流程的自动化:故障检测 → 自动隔离故障节点 → 热备节点补位 → 从最新有效 Checkpoint 恢复 → 跑一次前向验证确认状态正确。整套流程跑通后,单次中断的损失就是"上一次 Checkpoint 之后"那十几分钟,而不是重跑几小时。

一句话总结:Checkpoint 工程的目标不是消灭故障,而是让故障的代价变得可以预算。
b 管理员
【管理员回复】Llama 3 报告中的数据很能说明问题。补充几个工程点:一是异步 checkpoint,把显存中的状态先快速复制到内存,再在后台写入存储,减少训练停顿;二是分层存储,频繁保存到本地或内存,低频持久化到分布式存储;三是快速故障检测与隔离,及时剔除慢节点和故障节点,并准备热备节点;四是缩短重启时间,包括作业调度、模型加载和数据加载器状态恢复。目标是降低“有效训练时间”的损失,而不只是减少故障次数。大家的集群从故障到恢复训练一般需要多久?
广告广告位招商A10 · 帖子页正文下方通栏 · 760×90 · ¥300/月联系 ads@asibbs.com了解详情 →
登录 后参与回复,还没有账号?立即注册