人工智能服务
>
模型训练
>
最佳实践
1、登录超算互联网https://www.scnet.cn个人账号,点击右上角【控制台】。
2、点击快捷入口中的【Notebook】,进入创建Notebook页面。
3、选择区域、加速卡型号,选择异构加速卡AI-64GB。
4、选择开发镜像-【基础镜像】,点击【创建】。
5、创建成功后,点击【jupyterLab】进入Notebook页面。
6、进入终端,安装依赖。
7、拉取项目工程。
git clone http://developer.sourcefind.cn/codes/modelzoo/yolov9\_pytorch.git
注意:/root/private_data 为用户个人目录,建议将项目工程文件,数据集及模型文件等放在该路径下。
8、进入项目文件夹,复制下面的代码,进行依赖安装。
cd yolov9_pytorch
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
9、验证环境的可用性,运行单机单卡任务,具体命令如下:
python train_dual.py --sync-bn --batch 16 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights yolov9-c.pt --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15
以上截图表示,训练任务正常进行,环境配置完成。
10、保存镜像,返回 notebook 页面,点击右侧按钮,点击【保存镜像】,并修改名称,点击【确认】,开始保存镜像。
11、可以在【我的镜像】模块,查看到已经保存好的镜像,接下来我们将使用这个保存好的镜像,创建多机多卡分布式训练任务。
1、在超算互联网首页点击右上角【控制台】。
2、点击服务导航中的【人工智能】,进入服务。
3、选择【模型训练】,点击【创建任务】按钮。
在此示例中,是选择昆山区域的【异构加速卡AI-64GB】,【每实例加速卡数量】处选择2,【实例数】选择2,代表使用两个容器,每个容器中两张加速卡,点击【我的镜像】,在列表中选择示例镜像jupyterlab-yolov9-pytorch:2.4.1-ubuntu22.04-dtk25.04.1-py3.10-devel
示例启动脚本如下:
cd /root/private_data/xxx/yolov9_pytorch
torchrun \
--nnodes=$WORLD_SIZE \
--nproc_per_node=4 \
--node_rank=$RANK \
--master_addr=$MASTER_ADDR \
--master_port=$MASTER_PORT \
train_dual.py --sync-bn --batch 128 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights yolov9-c.pt --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 50 --close-mosaic 15
后台默认传入的参数解释:
--nnodes $WORLD_SIZE 分布式训练中参与的总节点数,例如,若提交一个包含2实例的作业,则$WORLD_SIZE设置为2,$WORLD_SIZE为平台自动填充,无需更改
--node_rank $RANK 分布式训练节点的排序,$RANK 为平台自动填充,无需更改
--master_addr $MASTER_ADDR 分布式训练的主节点IP地址,$MASTER_ADDR 为平台自动填充,无需更改
--master_port=$MASTER_PORT 分布式训练的主节点端口号,$MASTER_PORT 为平台自动填充,无需更改
4、随后点击创建(上述所有参数设置完全后,完整截图如下)。
至此,多机多卡分布式训练任务创建完毕,接下来就可以运行此任务了。
1、创建成功后可以在【模型训练】列表看到我们创建的具体任务(如下图所示,此实例在 "运行中" 状态)。
2、查看实例详情:点击作业实例名称,在右下角的【实例列表】中,点击【操作】栏的【日志】,可以查看当前模型训练的日志内容。
由上图可知,此训练示例有2个实例,分别为 'worker0' 和 'worker1'。
3、点击作业实例名称,点击右下角的【监控详情】,可以查看当前模型训练的加速卡利用率、CPU利用率、网络速率等信息。
4、上述任务训练完成后,可以在创建的实例列表中看到具体实例处于 "完成" 状态,具体截图如下:
以上,我们就完成了在 超算平台-模型训练模块 提交多机多卡训练任务的完整流程。