参数说明

不同的故障处理模式需要配置的参数各不相同,如表1所示,每个参数所表示的含义及填写说明详见表2

表1 故障处理所需参数

-

hotReset

fault-scheduling

pod-rescheduling

process-recover-enable

recover-strategy

PROCESS_RECOVER

ELASTIC_PROCESS_RECOVER_ENABLE

--enable-high-availability

(MindIO侧参数)

--enable-hbmfault-repair

(MindIO侧参数)

--enable-worker-reboot(MindIO侧参数)

max_restarts

monitor_interval

Job级别重调度

-

-

-

-

-

-

-

-

-

-

-

Pod级别重调度

-

-

-

-

-

-

-

-

进程级别重调度

-

-

-

进程级在线恢复

-

-

-

优雅容错

-

-

-

-

-

-

-

-

-

-

-

表2 参数填写说明

参数名称

参数位置

参数说明

hotReset

Ascend Device Plugin组件的启动YAML

优雅容错功能开关。

取值为1:使用断点续训时,可以在重调度的基础上,开启热复位功能,使用优雅容错模式;

取值为2:使用进程级恢复时,请将hotReset参数值设置为2,开启离线恢复模式。

pod-rescheduling

训练任务YAML的metadata.labels

  • on:开启Pod级别重调度。
  • 其他值或不使用该字段:关闭Pod级别重调度。

fault-scheduling

训练任务YAML的metadata.labels

重调度开关。

process-recover-enable

训练任务YAML的metadata.labels

  • on:开启进程级别重调度及进程级在线恢复。
    • 进程级别重调度和优雅容错不能同时开启,若同时开启,断点续训将通过job级重调度恢复训练。
    • 开启进程级别重调度,需同时在MindIO侧同时传入参数--enable-high-availability、--enable-worker-reboot。
    • 开启进程级在线恢复,需同时在MindIO侧同时传入参数--enable-high-availability、--enable-hbmfault-repair。
  • pause:暂时关闭进程级别重调度及进程级在线恢复。
  • off或不使用该字段:关闭进程级别重调度及进程级在线恢复。

recover-strategy

训练任务YAML的metadata.annotations

任务可用恢复策略。

  • retry:进程级在线恢复。
  • recover:进程级别重调度。
  • dump:保存临终遗言。
  • exit:退出训练。

PROCESS_RECOVER

训练任务YAML的spec.replicaSpecs.{ Master|Scheduler| Worker}.template.spec.containers.env

进程级别重调度及进程级在线恢复Elastic Agent侧总开关。

  • on:开启。
  • off:关闭。

ELASTIC_PROCESS_RECOVER_ENABLE

启动训练YAML的

spec.replicaSpecs.{ Master|Scheduler| Worker}. template.spec.containers.args

Elastic Agent侧进程级别重调度、进程级在线恢复、临终CheckPoint恢复功能开关。

  • 取值为1:开启本功能。
  • 其他值:关闭本功能。

    关闭本功能时,MindIO侧相关功能需同时关闭。

--enable-high-availability

训练脚本pretrain_gpt.py的启动参数

故障快速恢复特性开关,默认关闭,配置后即开启临终遗言功能。

--enable-hbmfault-repair

训练脚本pretrain_gpt.py的启动参数

进程级在线恢复功能开关,默认关闭,配置后对片上内存进行故障检测,并完成在线修复。需同时开启enable-high-availability。

--enable-worker-reboot

训练脚本pretrain_gpt.py的启动参数

进程级别重调度功能开关,默认关闭。配置后在发生一般性故障时,进行进程级别调度。需同时开启enable-high-availability。

max_restarts

启动训练的shell脚本(例如train_start.sh)中

配置容器内最大允许触发的故障次数,取值为整数。超出次数后PyTorch训练进程会直接退出训练,不配置该参数时默认为32767次。

monitor_interval

启动训练的shell脚本(例如train_start.sh)中

配置监测训练进程状态的时间间隔,单位为秒,取值为整数。不配置该参数时默认为5秒。