環境準備
- 在阿裡雲 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參數,通過設定該參數就可以把訓練任務排程到搶占式執行個體上。