其他模型适配原理

其他模型使用优雅容错模式的适配原理如下。

前提条件

修改启动脚本

修改模型启动脚本文件,将修改后的脚本文件和准备好的“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}