(可选)构造故障
本章节将指导用户构造简单的故障,包括节点故障、参数面网络故障和业务面故障。
构造芯片故障存在安全风险,如需构造请联系华为技术支持工程师处理。
构造节点故障
通过重启训练节点,模拟节点下电导致节点状态丢失。该故障在节点重启完成后可自动恢复。
- 在训练任务正常训练出iteration后,登录正在训练的节点。
- 执行以下命令,重启该训练节点,模拟节点状态丢失故障。
reboot
- 在Master节点多次执行以下命令,查看Pod状态。
kubectl get pod -A
可以看到Pod状态从Terminating到Pending,最后为Running状态,表示训练任务已经重新拉起。
- 在Master节点执行以下命令,查看训练日志,记录续训成功时间。
kubectl logs -n 命名空间名称 Pod名称
回显示例如下,表示发生故障时,使用最近保存的第9步的CheckPoint文件恢复,实现训练任务第10个iteration开始继续训练。1 2 3
[2025-06-22 14:47:00] iteration 10/ 5000 | consumed samples: 640 | elapsed time per iteration (ms): 1932.5 | learning rate: 2.500000E-07 | global batch size: 64 | lm loss: 1.053084E+01 | loss scale: 1.0 | g rad norm: 56.739 | num zeros: 0 | number of skipped iterations: 0 | number of nan iterations: 0 | [2025-06-22 14:47:02] iteration 11/ 5000 | consumed samples: 704 | elapsed time per iteration (ms): 1981.0 | learning rate: 2.750000E-07 | global batch size: 64 | lm loss: 1.044677E+01 | loss scale: 1.0 | g rad norm: 57.590 | num zeros: 0 | number of skipped iterations: 0 | number of nan iterations: 0 | ......
构造参数面网络故障
通过断开NPU网络链路模拟参数面网络故障。NPU网络故障不影响单机训练任务。用户在断开链路后需手动恢复,否则该故障会一直存在。
- 在训练任务正常训练出iteration后,登录正在训练的节点。
- 执行以下命令,构造NPU网络链路故障。
hccn_tool -i {device_id} -link -s down
device_id为NPU的ID,可以通过npu-smi info命令查看NPU的ID。
- 执行以下命令,查看NPU链路状态。
hccn_tool -i {device_id} -net_health -g回显示例如下,表示NPU网络链路故障构造成功。1net health status: Fault
- 在Master节点多次执行以下命令,查看Pod状态。
kubectl get pod -A
可以看到Pod状态从Terminating到Pending,最后为Running状态,表示训练任务已经重新拉起。
- 在Master节点执行以下命令,查看训练日志,记录续训成功时间。
kubectl logs -n 命名空间名称 Pod名称
回显示例如下,表示发生故障时,使用最近保存的第9步的CheckPoint文件恢复,实现训练任务第10个iteration开始继续训练。1 2 3
[2025-06-22 14:47:00] iteration 10/ 5000 | consumed samples: 640 | elapsed time per iteration (ms): 1932.5 | learning rate: 2.500000E-07 | global batch size: 64 | lm loss: 1.053084E+01 | loss scale: 1.0 | g rad norm: 56.739 | num zeros: 0 | number of skipped iterations: 0 | number of nan iterations: 0 | [2025-06-22 14:47:02] iteration 11/ 5000 | consumed samples: 704 | elapsed time per iteration (ms): 1981.0 | learning rate: 2.750000E-07 | global batch size: 64 | lm loss: 1.044677E+01 | loss scale: 1.0 | g rad norm: 57.590 | num zeros: 0 | number of skipped iterations: 0 | number of nan iterations: 0 | ......
- 执行以下命令,恢复NPU网络链路故障。
hccn_tool -i {device_id} -cfg recovery - 执行以下命令,查看NPU链路状态。
hccn_tool -i {device_id} -net_health -g回显示例如下,表示NPU网络链路故障已经恢复。1net health status: Success
构造业务面故障
通过删除训练进程,模拟业务面故障。
- 在训练任务正常训练出iteration后,登录正在训练的节点。
- 执行以下命令,使用训练启动脚本,查询训练进程信息。
ps -ef | grep python| grep 训练启动脚本.py
- 执行以下命令,手动删除PID最小的训练进程。
kill -9 pid
- 在Master节点多次执行以下命令,查看Pod状态。
kubectl get pod -A
可以看到Pod状态从Terminating到Pending,最后为Running状态,表示训练任务已经重新拉起。
- 在Master节点执行以下命令,查看训练日志,记录续训成功时间。
kubectl logs -n 命名空间名称 Pod名称
回显示例如下,表示发生故障时,使用最近保存的第9步的CheckPoint文件恢复,实现训练任务第10个iteration开始继续训练。
1 2 3
[2025-06-22 14:47:00] iteration 10/ 5000 | consumed samples: 640 | elapsed time per iteration (ms): 1932.5 | learning rate: 2.500000E-07 | global batch size: 64 | lm loss: 1.053084E+01 | loss scale: 1.0 | g rad norm: 56.739 | num zeros: 0 | number of skipped iterations: 0 | number of nan iterations: 0 | [2025-10-16 14:47:02] iteration 11/ 5000 | consumed samples: 704 | elapsed time per iteration (ms): 1981.0 | learning rate: 2.750000E-07 | global batch size: 64 | lm loss: 1.044677E+01 | loss scale: 1.0 | g rad norm: 57.590 | num zeros: 0 | number of skipped iterations: 0 | number of nan iterations: 0 | ......
父主题: 查看训练结果