其他模型使用优雅容错模式的适配原理如下。
修改模型启动脚本文件,将修改后的脚本文件和准备好的“reset_process.py”文件放在同一目录下,即可启动训练。
模型启动脚本文件修改示例如下。
... # Launch Command 如GPT-3的启动命令 ${DLS_PROGRAM_EXECUTOR} -m torch.distributed.launch $DISTRIBUTED_ARGS ${boot_file_path}${boot_file} ${train_param} &> ${output_url}/log & #训练进程需要在后台运行 train_pid=$! #获取训练进程的pid tail -f ${output_url}/log & old_log_pid=$! # 将以下命令复制在启动脚本里 python -u reset_process.py -p "${train_pid}" & #将训练进程的pid传给监测进程 reset_pid=$! wait ${train_pid} #等待训练进程结束获取其退出码 exit_code=$? if [ ${exit_code} -eq 0 ]; then kill -15 ${reset_pid} #如果训练进程正常退出则向监测进程发送-15信号 echo "training finished." exit ${exit_code} else if [ -d "训练进程工作目录"]; then touch "训练进程工作目录"/newlog # 创建新训练进程的日志 tail -f "训练进程工作目录" & # 查看新训练进程的日志 fi kill -9 ${old_log_pid} wait ${reset_pid} # 如果训练进程异常退出则等待监测进程结束 exit_code=$? fi exit ${exit_code}