云服务器内容精选

  • 特性使用操作 安装优雅退出二进制包 通过ma_pre_start.sh安装whl包。 echo "[ma-pre-start] Enter the input directory" cd/home/ma-user/modelarts/inputs/data_url_0/ echo "[ma-pre-start] Start to install mindx-elastic 0.0.1版本" export PATH=/home/ma-user/anaconda/bin:$PATH pip install ./mindx_elastic-0.0.1-py3-none-any.whl echo "[ma-pre-start] Clean run package" sudo rm -rf ./script ./*.run ./run_package *.whl echo "[ma-pre-start] Set ENV" export G LOG _v=2 # 当前使用诊断模式需要用户手动设置成INFO日志级别 echo "[ma-pre-start] End" 创建训练任务 约束:MindSpore版本要求1.6.0及以上。 修改样例代码,增加如下内容: # 载入依赖接口 from mindx_elastic.terminating_message import ExceptionCheckpoint ... if args_opt.do_train: dataset = create_dataset() loss_cb = LossMonitor() cb = [loss_cb] if int(os.getenv('RANK_ID')) == 0: batch_num = dataset.get_dataset_size() # 开启优雅退出保存 config_ck = CheckpointConfig(save_checkpoint_steps=batch_num, keep_checkpoint_max=35, async_save=True, append_info=[{"epoch_num": cur_epoch_num}], exception_save=True) ckpoint_cb = ModelCheckpoint(prefix="train_resnet_cifar10", directory=args_opt.train_url, config=config_ck) # 定义优雅退出ckpt保存callback ckpoint_exp = ExceptionCheckpoint( prefix="train_resnet_cifar10", directory=args_opt.train_url, config=config_ck) # 添加优雅退出ckpt保存callback cb += [ckpoint_cb, ckpoint_exp]
  • 背景信息 训练过程中可能会碰到预期外的情况导致训练失败,且无法及时重启训练作业,导致训练周期长,而无条件自动重启可以避免这类问题。无条件自动重启是指当训练作业失败时,不管什么原因系统都会自动重启训练作业,提高训练成功率和提升作业的稳定性。为了避免无效重启浪费算力资源,系统最多只支持连续无条件重启3次。 为了避免丢失训练进度、浪费算力,开启此功能前请确认代码已适配断点续训,操作指导请参见设置断点续训练。 当训练过程中触发了自动重启,则系统会记录重启信息,在训练作业详情页可以查看故障恢复详情,具体请参见训练作业重调度。
  • 开启无条件自动重启 开启无条件自动重启有2种方式:控制台设置或API接口设置。 控制台设置 在创建训练作业页面,开启“自动重启”开关,并勾选“无条件自动重启”,开启无条件自动重启。开启无条件自动重启后,只要系统检测到训练异常,就无条件重启训练作业。如果未勾选“无条件自动重启”只是打开了“自动重启”开关,则表示仅环境问题导致训练作业异常时才会自动重启,其他问题导致训练作业异常时会直接返回“运行失败”。 图1 开启无条件重启 API接口设置 通过API接口创建训练作业时,在“metadata”字段的“annotations”中传入“fault-tolerance/job-retry-num”和“fault-tolerance/job-unconditional-retry”字段。“fault-tolerance/job-retry-num”赋值为1~128表示开启自动重启,“fault-tolerance/job-unconditional-retry”赋值为“true”表示启用了无条件自动重启。 { "kind": "job", "metadata": { "annotations": { "fault-tolerance/job-retry-num": "8", "fault-tolerance/job-unconditional-retry": "true" } } }
  • 训练日志失败分析 在ModelArts Standard中训练作业遇到问题时,可首先查看日志,多数场景下的问题可以通过日志报错信息直接定位。 ModelArts Standard提供了训练作业失败定位与分析功能,如果训练作业运行失败,ModelArts会自动识别导致作业失败的原因,在训练日志界面上给出提示。提示包括三部分:失败的可能原因、推荐的解决方案以及对应的日志(底色标红部分)。 图1 训练故障识别 ModelArts Standard会对部分常见训练错误给出分析建议,目前还不能识别所有错误,提供的失败可能原因仅供参考。针对分布式作业,只会显示当前节点的一个分析结果,作业的失败需要综合各个节点的失败原因做一个综合判断。 常见训练问题定位思路如下: 根据日志界面提示中提供的分析建议解决。 参考案例解决:会提供当前故障对应的指导文档链接,请参照文档中的解决方案修复问题。 重建作业:建议重建作业进行重试,大概率能修复问题。 上一步不能解决问题时,可以尝试分析日志中提示的错误信息,定位并解决问题。 也可以前往ModelArts论坛中查看是否有同类问题。Ascend训练场景可以前往昇腾论坛查看或提问。 最后,如果以上均不能解决问题,可以提工单进行人工咨询。 父主题: 模型训练高可靠性