環境準備
- 在阿里雲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參數,通過設置該參數就可以把訓練任務調度到搶佔式實例上。