全部產品
Search
文件中心

Container Service for Kubernetes:配置Arena用戶端

更新時間:Oct 25, 2024

Arena是基於Kubernetes的機器學習輕量級解決方案,支援資料準備、模型開發、模型訓練和模型預測的完整生命週期,提升資料科學家工作效率。同時和阿里雲的基礎雲端服務深度整合,支援GPU共用、CPFS等服務,可以運行阿里雲最佳化的深度學習架構,最大化使用阿里雲異構裝置的效能和成本的效益。本文介紹如何配置Arena用戶端。

前提條件

步驟一:配置Arena用戶端

  1. 串連叢集。

    專有版叢集

    用SSH方式登入專有版叢集的管理節點,然後執行arena命令。具體操作,請參見通過SSH串連ACK專有叢集的Master節點

    託管版叢集

    因為託管版叢集無Master節點,所以您需要將Arena用戶端安裝在您的本機電腦上(例如:個人Mac)。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集

    說明

    您可以通過執行命令kubectl get nodes判斷KubeConfig檔案是否正確配置。

  2. 配置Arena用戶端。

    1. 下載Arena用戶端。

    2. 解壓安裝包。

      Linux

      tar -xvf arena-installer-0.9.16-881780f-linux-amd64.tar.gz

      Mac

      tar -xvf arena-installer-0.9.16-881780f-darwin-amd64.tar.gz
    3. 安裝Arena。

      cd arena-installer
      bash install.sh --only-binary
  3. (可選)安裝自動補全軟體。安裝自動補全軟體支援命令參數自動提示功能,協助您避免記憶命令列。安裝完成後,在命令列終端通過Tab鍵即可自動補全命令。

    1. 安裝補全軟體。

      CentOS或Linux

      sudo yum install bash-completion -y

      Debian或Ubuntu

      sudo apt-get install bash-completion

      macOS

      brew install bash-completion@2
    2. 在profile檔案中增加自動補全功能。

      Linux

      echo "source <(arena completion bash)" >> ~/.bashrc
      chmod u+x ~/.bashrc

      macOS

      echo "source $(brew --prefix)/etc/profile.d/bash_completion.sh" >> ~/.bashrc

步驟二:驗證Arena

您可以執行以下步驟驗證Arena是否正常工作。

  1. 執行以下命令檢查叢集的可用GPU資源。

    arena top node

    看到輸出為節點和GPU卡的資訊,代表輸出正確。

    NAME                        IPADDRESS      ROLE    STATUS  GPU(Total)  GPU(Allocated)
    cn-huhehaote.192.168.X.XXX  192.168.0.117  <none>  ready   8           0
    cn-huhehaote.192.168.X.XXX  192.168.0.118  <none>  ready   8           0
    cn-huhehaote.192.168.X.XXX  192.168.0.119  <none>  ready   8           0
    cn-huhehaote.192.169.X.XXX  192.168.0.120  <none>  ready   8           0
    -----------------------------------------------------------------------------------------
    Allocated/Total GPUs In Cluster:
    0/32 (0%)
  2. 通過arena提交一個訓練作業,看到任務被成功提交。

    arena submit tf \
          --name=firstjob \
          --gpus=1 \
          --image=registry.cn-hangzhou.aliyuncs.com/tensorflow-samples/tf-mnist-standalone:gpu \
          "python /app/main.py"

    預期輸出:

    configmap/firstjob-tfjob created
    configmap/firstjob-tfjob labeled
    tfjob.kubeflow.org/firstjob created
    INFO[0001] The Job firstjob has been submitted successfully
    INFO[0001] You can run `arena get firstjob --type tfjob` to check the job status
  3. 執行以下命令列出所有作業。

    arena list

    預期輸出:

    NAME      STATUS   TRAINER  AGE  NODE
    firstjob  RUNNING  TFJOB    5s   192.168.X.XXX
  4. 執行以下命令查看提交作業的狀態。

    arena get firstjob

    預期輸出:

    STATUS: SUCCEEDED
    NAMESPACE: default
    PRIORITY: N/A
    TRAINING DURATION: 52s
    NAME      STATUS     TRAINER  AGE  INSTANCE          NODE
    firstjob  SUCCEEDED  TFJOB    14m  firstjob-chief-0  192.168.X.XXX
  5. 執行以下命令查看作業日誌。

    arena logs --tail=10 firstjob

    預期輸出:

    Accuracy at step 910: 0.9694
    Accuracy at step 920: 0.9687
    Accuracy at step 930: 0.9676
    Accuracy at step 940: 0.9678
    Accuracy at step 950: 0.9704
    Accuracy at step 960: 0.9692
    Accuracy at step 970: 0.9721
    Accuracy at step 980: 0.9696
    Accuracy at step 990: 0.9675
    Adding run metadata for 999