环境准备
- 在阿里云ACK上创建集群,集群规格选择Pro版,Kubernetes版本选择1.20或以上版本。
- 在ACK控制台,点击左侧菜单应用 - AI工程加速,进入云原生AI套件安装页面。
- 点击一键部署,交互方式中默认已勾选Arena,其他组件可根据需要自行勾选安装。
- 点击页面最下方部署云原生AI套件按钮即可,安装成功后,可以在组件管理页面看到当前安装的组件信息。
基于ECS抢占式实例的训练任务
使用ECS抢占式实例训练模型,需要先在ACK中创建节点池,并给节点池打标。然后在Arena提交训练任务时,通过--selector 参数指定把训练任务调度到抢占式实例上。
操作步骤如下:
- 在ACK控制台,点击左侧菜单节点管理 - 节点池,进入节点池页面。首次创建节点池,需要先点击页面右上角集群自动弹性伸缩配置按钮,根据提示完成配置。
- 在节点池页面,点击右上角创建节点池按钮,在弹出的创建节点池窗口中完成配置。其中付费类型要选择抢占式实例。
然后点击页面最下方的显示高级选项。
在展开的配置项中,节点标签部分,为节点添加标签,这样节点池中的所有抢占式实例都被打上了instance=spot的标签。
最后指定节点池中实例规格和数量,点击确认配置,完成节点池创建。
- 使用Arena提交训练任务到抢占式实例上,这里以提交一个tensorflow单机训练任务为例说明。
arena \ submit \ tfjob \ --gpus=1 \ --selector=instance=spot \ --name=tf-standalone-test-with-git \ --env=TEST_TMPDIR=code/tensorflow-sample-code/ \ --sync-mode=git \ --sync-source=https://github.com/happy2048/tensorflow-sample-code.git \ --logdir=/training_logs \ --image="registry.cn-beijing.aliyuncs.com/ai-samples/tensorflow:1.5.0-devel-gpu" \ "'python code/tensorflow-sample-code/tfjob/docker/mnist/main.py --max_steps 5000'"
执行上面的命令,注意其中的--selector=instance=spot参数,通过设置该参数就可以把训练任务调度到抢占式实例上。