昇腾社区首页
中文
注册
开发者
下载

参数说明

不同的故障处理模式需要配置的参数各不相同,如表1所示,每个参数所表示的含义及填写说明详见表2Ascend Operator在进程级别重调度、进程级在线恢复、进程级原地恢复和弹性训练场景下,会根据用户配置的recover-strategy和pod-rescheduling注入不同的环境变量,自动给任务打上process-recover-enable=on标签开启进程级恢复开关,无需用户手动指定。具体注入的环境变量如表3所示。

表1 故障处理所需参数

-

Job级别重调度

Pod级别重调度

进程级别重调度(recover策略)

进程级别原地恢复

(recover-in-place策略)

进程级在线恢复

优雅容错

弹性训练

hotReset

-

-

-

-

-

-

fault-scheduling

-

pod-rescheduling

-

-

-

-

-

-

process-recover-enable

-

-

-

-

recover-strategy

-

-

-

PROCESS_RECOVER

-

-

-

ENABLE_RESTART_FAULT_PROCESS

-

-

-

-

-

-

ELASTIC_PROCESS_RECOVER_ENABLE

-

-

-

-

--enable-high-availability(MindSpeed-LLM侧参数)

-

-

-

--enable-hbmfault-repair(MindSpeed-LLM侧参数)

-

-

-

-

-

-

--enable-worker-reboot(MindSpeed-LLM侧参数)

-

-

-

-

-

--enable-elastic-training(MindSpeed-LLM侧参数)

-

-

-

-

-

-

max_restarts

-

-

-

monitor_interval

-

-

-

表2 参数填写说明

参数名称

参数位置

参数说明

hotReset

Ascend Device Plugin组件的启动YAML

优雅容错功能开关。

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

取值为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:进程级别重调度。
  • recover-in-place:进程级原地恢复。
  • elastic-training:弹性训练。
  • 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侧进程级别重调度、进程级在线恢复、临终CKPT恢复功能开关。

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

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

ENABLE_RESTART_FAULT_PROCESS

启动训练YAML的

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

Elastic Agent/TaskD组件开启故障进程原地恢复功能的开关。

  • on:开启本功能;
  • 其他值:关闭本功能
    说明:
    • PyTorch框架下,本功能由Elastic Agent提供。
    • MindSpore框架下,本功能由TaskD提供。

--enable-high-availability

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

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

--enable-hbmfault-repair

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

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

--enable-worker-reboot

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

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

--enable-elastic-training

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

弹性训练功能开关,默认关闭。

max_restarts

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

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

monitor_interval

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

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

HIGH_AVAILABILITY

Ascend Operator注入容器的环境变量

Ascend Operator根据任务类型自动注入该环境变量,使用master分支MindSpeed-LLM会自动读取该环境变量,无需在train_start.sh中手动添加--enable-high-availability、--enable-hbmfault-repair、--enable-worker-reboot和--enable-elastic-training参数开启对应功能

表3 Ascend Operator注入的环境变量

-

recover

retry

recover-in-place

elastic-training

dump

exit

pod-rescheduling

PyTorch

  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • HIGH_AVAILABILITY=recover
  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • HIGH_AVAILABILITY=retry

  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • ENABLE_RESTART_FAULT_PROCESS=on
  • HIGH_AVAILABILITY=recover
  • PROCESS_RECOVER=on
  • HIGH_AVAILABILITY=elastic-training
  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • HIGH_AVAILABILITY=dump

-

-

MindSpore

  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • MINDIO_FOR_MINDSPORE=1
  • MS_ENABLE_TFT='{ ARF:1}'

  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • MINDIO_FOR_MINDSPORE=1
  • MS_ENABLE_TFT='{ UCE:1, HCCE:1}'

  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • MINDIO_FOR_MINDSPORE=1
  • MS_ENABLE_TFT='{ ARF:1}'

-

  • PROCESS_RECOVER=on
  • ELASTIC_PROCESS_RECOVER_ENABLE=1
  • MINDIO_FOR_MINDSPORE=1
  • MS_ENABLE_TFT='{ TTP:1}'

-

MS_ENABLE_TFT='{ RSC:1}'