不同的故障处理模式需要配置的参数各不相同,如表1所示,每个参数所表示的含义及填写说明详见表2。
- |
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级别重调度 |
- |
√ |
√ |
- |
- |
- |
- |
- |
- |
- |
√ |
√ |
进程级别重调度 |
- |
√ |
- |
√ |
√ |
√ |
√ |
√ |
- |
√ |
√ |
√ |
进程级在线恢复 |
- |
√ |
- |
√ |
√ |
√ |
√ |
√ |
√ |
- |
√ |
√ |
优雅容错 |
√ |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
参数名称 |
参数位置 |
参数说明 |
---|---|---|
hotReset |
Ascend Device Plugin组件的启动YAML |
优雅容错功能开关。 取值为1:使用断点续训时,可以在重调度的基础上,开启热复位功能,使用优雅容错模式; 取值为2:使用进程级恢复时,请将hotReset参数值设置为2,开启离线恢复模式。 |
pod-rescheduling |
训练任务YAML的metadata.labels |
|
fault-scheduling |
训练任务YAML的metadata.labels |
重调度开关。 |
process-recover-enable |
训练任务YAML的metadata.labels |
|
recover-strategy |
训练任务YAML的metadata.annotations |
任务可用恢复策略。
|
PROCESS_RECOVER |
训练任务YAML的spec.replicaSpecs.{ Master|Scheduler| Worker}.template.spec.containers.env |
进程级别重调度及进程级在线恢复Elastic Agent侧总开关。
|
ELASTIC_PROCESS_RECOVER_ENABLE |
启动训练YAML的 spec.replicaSpecs.{ Master|Scheduler| Worker}. template.spec.containers.args |
Elastic Agent侧进程级别重调度、进程级在线恢复、临终CheckPoint恢复功能开关。 |
--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秒。 |