专属资源池最佳实践-Notebook与训练任务联动
本文档是ModelArts专属池使用的一个子场景。本场景下,我们使用Notebook来承载调测阶段、ModelArts训练任务来承载批量运行阶段。
场景特点:
Notebook通过容器实例提供调试用算力资源。因华为云的安全要求,交互式环境不能直接提供root权限,必须以“ma-user”(user_id:1000)登陆、使用资源。
Notebook提供一系列的预制镜像,镜像已经提供了基础的cuda驱动、conda及python、人工智能引擎主流版本(TensorFlow、PyTorch)及其依赖。
Notebook提供镜像保存能力,支持客户固化对镜像环境的修改和变化。
Notebook提供ssh登陆能力,支持客户使用VS Code等插件远程登陆、调测。
Notebook和开发环境可以通过NFS来共享一个文件夹,支持对应文件夹内的文件实时同步。
场景依赖:
已购买ModelArts训练专属资池,完成开发环境初始化操作,NAS VPC已经正确配置。
权限已经合理设置,拥有SFS Turbo服务的普通权限及细粒度权限“sfsturbo:*:dataAction”。
实践流程:
调测阶段:
1.创建Notebook实例
访问链接: https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dev-container
点击“创建”按钮,并使用专属池资源创建Notebook实例。镜像选择公共镜像“pytorch 1.8”,存储选择“弹性文件服务SFS”。创建配置如截图:
注:如需使用ssh登陆及VS Code工具远程开发,请参考博客:https://bbs.huaweicloud.com/blogs/280541
打开Notebook实例,并打开terminal。
2.下载代码、数据并进行调测
代码使用pytorch官方针对ImageNet的样例,github链接如:https://github.com/pytorch/examples;数据使用公开的猫狗数据集(裁剪版传送门)。
下载及解压命令如:
mkdir -p dog_cat_case
cd dog_cat_case
#wget https://raw.githubusercontent.com/pytorch/examples/main/imagenet/main.py
wget https://github.com/pytorch/examples/raw/0cb38ebb1b6e50426464b3485435c0c6affc2b65/imagenet/main.py
wget https://ma-sa.obs.cn-north-4.myhuaweicloud.com/yangzilong/demos/dog_cat_1w.zip
unzip dog_cat_1w.zip
安装环境,调试代码后,在Notebook里可以使用以下命令运行训练任务:
cd /home/ma-user/work/dog_cat_case
/home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python main.py -a resnet50 -b 128 --epochs 5 dog_cat_1w/
3.保存运行环境
按照如下流程保存当前的Notebook环境。
填写名称和备注:
对应的notebook实例可能3-10分钟不可用,需要耐心等待。保存完成后,就可以在SWR的对应组织中查看到相应的镜像,也可以在训练里查到对应的镜像。
注:
/cache及/home/ma-user/work两个目录的内容需要额外关注。/cache目录在训练会重新挂载,导致内容被覆盖;/home/ma-user/work目录的内容是notebook中挂载的,不会保存在容器镜像中。建议/cache目录不要存放任何数据,/home/user/work目录存放临时的数据和代码。
批量运行阶段:
1.创建训练任务
访问链接: https://console.huaweicloud.com/modelarts/?region=cn-north-4#/training
创建参数注意以下几项:
a.镜像tag:镜像tag要填写刚刚保存的Notebook镜像名称
b.启动命令:和Notebook的terminal里测试使用的一致,即:
cd /home/ma-user/work/dog_cat_case
/home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python main.py -a resnet50 -b 128 --epochs 5 dog_cat_1w/
c.云存储的挂载路径:和Notebook里挂载的工作目录一致,即“/home/ma-user/work”。
2.查看训练任务执行详情
在任务列表页点击任务名即可进入详情页。页面会显示任务的日志情况和GPU利用率情况。
若日志会同步存储在SFS盘中,可以在Notebook里使用tensorboard(使用官方提供的pytorch镜像)进行日志的实时分析。
3.重建训练任务
根据研发需要,对代码、配置进行修改(使用Notebook,或ECS挂载SFS盘的方式(注意linux的uid需要是1000)),并重建训练任务。重建任务方法如截图:
- 点赞
- 收藏
- 关注作者
评论(0)