天天看點

ACK上使用搶占式執行個體訓練模型

環境準備

  1. 在阿裡雲 ACK 上建立叢集,叢集規格選擇Pro版,Kubernetes版本選擇1.20或以上版本。
  2. 在ACK控制台,點選左側菜單應用 - AI工程加速,進入雲原生AI套件安裝頁面。
  3. 點選一鍵部署,互動方式中預設已勾選Arena,其他元件可根據需要自行勾選安裝。
  4. 點選頁面最下方部署雲原生AI套件按鈕即可,安裝成功後,可以在元件管理頁面看到目前安裝的元件資訊。

基于ECS搶占式執行個體的訓練任務

使用ECS搶占式執行個體訓練模型,需要先在ACK中建立節點池,并給節點池打标。然後在Arena送出訓練任務時,通過--selector 參數指定把訓練任務排程到搶占式執行個體上。

操作步驟如下:

  1. 在ACK控制台,點選左側菜單節點管理 - 節點池,進入節點池頁面。首次建立節點池,需要先點選頁面右上角叢集自動彈性伸縮配置按鈕,根據提示完成配置。
  1. 在節點池頁面,點選右上角建立節點池按鈕,在彈出的建立節點池視窗中完成配置。其中付費類型要選擇搶占式執行個體。
ACK上使用搶占式執行個體訓練模型

然後點選頁面最下方的顯示進階選項。

ACK上使用搶占式執行個體訓練模型

在展開的配置項中,節點标簽部分,為節點添加标簽,這樣節點池中的所有搶占式執行個體都被打上了instance=spot的标簽。

ACK上使用搶占式執行個體訓練模型

最後指定節點池中執行個體規格和數量,點選确認配置,完成節點池建立。

  1. 使用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參數,通過設定該參數就可以把訓練任務排程到搶占式執行個體上。

繼續閱讀