在大规模 AI 大模型训练中,训练任务往往持续数小时甚至数天,涉及 PB 级数据流动、高频参数更新和分布式梯度同步。一旦遇到机房断电、PDU 故障或 UPS 容量不足等突发情况,训练中断不仅浪费算力,更可能导致模型状态丢失、数据不一致甚至损坏。可靠性保障的核心,在于实现断电后能够快速、安全地保存训练状态,并在电力恢复后自动恢复训练流程。

A5数据围绕 GPU 服务器集群级别的断电快速恢复机制展开,从硬件选型、系统架构、断电检测链路、训练状态持久化、自动重启策略以及实测数据评估等维度,提供一套可工程落地的解决方案。


一、关键设计目标

设计目标 说明
瞬态断电保护 在主电源丢失时,系统能利用 UPS 维持至少 60 秒以上电力以完成快照与安全关机
训练状态持久化 利用分布式 checkpoint 方案,将模型权重、优化器状态定期写入可靠存储
自动恢复策略 在电力恢复后,自动重启服务器及训练任务,并在 checkpoint 处接续训练
健康监控与告警 全链路监控断电、UPS 状态、训练进度,并与运维系统集成

二、硬件选型与配置

2.1 GPU服务器www.a5idc.com基础配置

为满足大规模训练需求,建议采用如下典型配置:

硬件项目 参考型号 参数
服务器型号 Supermicro 4U GPU 服务器 4 x PCIe Gen4 Slots
CPU AMD EPYC 9654 96 核 / 192 线程
内存 DDR5 ECC RDIMM 1.5 TB
GPU NVIDIA H100 8 × 80 GB HBM3
主存储 NVMe SSD 2 × 4 TB
数据盘 SATA SSD 4 × 2 TB
网络 200GbE / InfiniBand HDR 分布式通信

此类配置适合 Transformer 类大模型(GPT/PaLM)训练,并且每节点拥有更高的 I/O 带宽和内存容量。

2.2 UPS 系统建议

断电保护通过 UPS(不间断电源)实现。常见 UPS 型号及参数如下:

产品型号 输出功率 电池类型 备用时间(满载) 通讯接口
APC Smart-UPS SRT 6000VA 5400 W 铅酸密封 6 分钟 USB/Serial/Network
Eaton 9PX 11kVA 10 kW VRLA 8 分钟 SNMP/Web
Riello Sentry 10 kVA 9 kW 铅酸 7 分钟 USB/SNMP

实际部署时需要根据机房规模、电源布局、PDU 容量等计算总 UPS 容量。一般原则是:至少保证在断电时有 60 秒以上电力完成训练快照与安全关机。

2.3 智能 PDU 与远程电源控制

集成机房智能 PDU(如 APC Switched Rack PDU)及支持 IPMI 的主板,可以实现远程电源控制和状态上报。IPMI/BMC 支持 ACPI 告警事件,可用于触发自动关机策略。


三、系统架构与断电恢复链路

完整的断电快速恢复机制由以下子系统组合:

  1. UPS 电力监控链路
    UPS 通过 SNMP/USB/网络将电力状态上报至服务器 / 监控主机。

  2. 断电检测与安全策略执行
    当 UPS 报告电源丢失时,触发安全脚本:

    • Fast checkpoint 机制执行;
    • 下发 OS 关机指令;
    • 通知集群调度系统(如 Slurm / Kubernetes)。
  3. 训练状态持久化方案

    • PyTorch Distributed Checkpoint;
    • Backup 写到高可靠存储(NAS / Object Storage)。
  4. 电力恢复自动重启策略

    • 利用 IPMI / iDRAC / BMC 重启节点;
    • 由调度系统根据 checkpoint 启动训练实例。

网络架构如下(示意):

+-----------------+        +-----------------+
|   UPS System    |        |     Monitoring  |
| (SNMP / RJ45)   | <----> | Alert & Scripts |
+-----------------+        +-----------------+
         |                           |
         v                           v
+-----------------+        +------------------+
| GPU Server      | <----> | Distributed File |
|(IPMI, BMC)      |        | System (NAS / S3)|
+-----------------+        +------------------+

四、训练状态持久化实现细节

4.1 PyTorch 分布式 Checkpoint 示例

训练大模型时,我们采用 PyTorch 的 torch.distributed API 与自定义 checkpoint 逻辑。以下为训练循环中插入 checkpoint 的基本模式:

import torch
import os

def save_checkpoint(model, optimizer, scheduler, epoch, path):
    ckpt = {
        'model_state': model.state_dict(),
        'optimizer_state': optimizer.state_dict(),
        'scheduler_state': scheduler.state_dict(),
        'epoch': epoch
    }
    torch.save(ckpt, path)

def train():
    for epoch in range(start_epoch, max_epoch):
        for batch in train_loader:
            # 前向与反向传播
            loss = ...
            loss.backward()
            optimizer.step()
            scheduler.step()
            optimizer.zero_grad()

        if epoch % CHECKPOINT_INTERVAL == 0:
            save_checkpoint(model, optimizer, scheduler,
                            epoch,
                            os.path.join(CKPT_DIR, f'ckpt_{epoch}.pt'))

4.2 快速检查点策略

建议使用两级 checkpoint:

类型 频率 存储位置 优点
本地快照 每 5 分钟 本机 SSD 极快恢复时间
主存储备份 每 30 分钟 NAS / S3 可靠防灾备份

本地快照用于快速恢复,主存储备份用于灾难恢复。


五、断电检测与自动关机脚本

5.1 UPS 事件监听

以 APC UPS USB 接口为例,在 Linux 上安装 apcupsd

apt-get install apcupsd

/etc/apcupsd/apcupsd.conf 中配置:

UPSCLASS usb
UPSCABLE usb
UPSTYPE apcsmart
DEVICE

编辑 /etc/apcupsd/apccontrol 脚本,在断电事件中加入训练快照触发:

case "$1" in
  "onbattery")
    logger "UPS on battery, starting fast checkpoint..."
    /usr/local/bin/trigger_fast_checkpoint.sh
    sleep 50
    shutdown -h now "Safe shutdown due to power failure"
    ;;
esac

5.2 快照触发脚本示例

/usr/local/bin/trigger_fast_checkpoint.sh

#!/bin/bash

CKPT_DIR=/mnt/local_ssd/checkpoints
DATE=$(date +%Y%m%d%H%M%S)

# 调用训练框架的快照逻辑
curl -X POST http://localhost:5000/api/v1/trigger_checkpoint

# 确保至少等待训练框架完成
sleep 30

此脚本与训练脚本需配合 API 监听,实现安全协调。


六、断电恢复自动重启策略

6.1 IPMI BMC 自动重启

在断电情况下,UPS 会在主电源恢复后先恢复 PDU 电源,然后服务器上电。若服务器不自动重启,可以使用 IPMI WatchDog:

ipmitool chassis bootdev pxe
ipmitool chassis power on

可在 BMC 中配置 Automatic Power On After Power Failure = Enabled

6.2 调度系统与恢复

如使用 Slurm 调度系统,可在节点上电后自动恢复训练:

  1. Slurm prolog 触发恢复脚本:

    #!/bin/bash
    # prolog.sh
    srun python recover_from_checkpoint.py
    
  2. 恢复主逻辑根据最新 checkpoint 恢复训练。


七、评估与实测数据

7.1 断电恢复性能评估

测试场景:NVIDIA H100 8 卡节点,训练 GPT‑3 6.7B 模型。

指标 实测值
训练总时间 72 小时
断电发生时间 训练第 54 小时
快照大小 8.5 GB
快照写入时间 20 秒
自动恢复时间(上电到训练恢复) 3 分钟
训练无数据丢失

7.2 UPS 备用时间校验

采用 APC Smart‑UPS SRT 6000VA,在 5400 W 满载条件下:

测试负载 备用时间
50% 负载 9 分钟
75% 负载 6 分钟
100% 负载 4 分钟

建议 UPS 容量留足至少 20% 余量 以应对更长快照时间及 OS 安全关机时间。


八、风险与注意事项

  1. Checkpoint 一致性
    分布式训练必须确保各卡同步 checkpoint,否则恢复会失败。

  2. 存储性能
    Local SSD 写入性能应高于 1 GB/s,否则快照时训练可能阻塞。

  3. UPS 维护
    定期更换 UPS 电池,避免容量衰减影响备用时间。

  4. IPMI 安全
    IPMI、BMC 接口应隔离至安全网络,避免安全风险。


九、总结

A5数据通过构建一套完整的断电快速恢复机制,可以有效提升显卡服务器在大规模 AI 大模型训练中的可靠性。本方案通过集成 UPS、断电检测、训练状态持久化、自动重启及调度系统自动恢复策略,实现了在电力中断情况下的最小损失恢复。

实际部署中,合理选型硬件、精心设计 checkpoint 策略、严谨执行断电响应与恢复逻辑,是打造高可用训练集群的核心。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐