Arena是基於Kubernetes的機器學習輕量級解決方案,支援資料準備、模型開發、模型訓練和模型預測的完整生命週期,提升資料科學家工作效率。同時和阿里雲的基礎雲端服務深度整合,支援GPU共用、CPFS等服務,可以運行阿里雲最佳化的深度學習架構,最大化使用阿里雲異構裝置的效能和成本的效益。本文介紹如何配置Arena用戶端。
前提條件
步驟一:配置Arena用戶端
串連叢集。
託管版叢集
因為託管版叢集無Master節點,所以您需要將Arena用戶端安裝在您的本機電腦上(例如:個人Mac)。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集。
專有版叢集
用SSH方式登入專有版叢集的管理節點,然後執行
arena
命令。具體操作,請參見通過SSH串連ACK專有叢集的Master節點。說明您可以通過執行命令
kubectl get nodes
判斷KubeConfig檔案是否正確配置。根據您所使用的作業系統類型(Linux/macOS)和處理器架構(amd64/arm64)執行相應的命令以安裝Arena用戶端。
Linux/amd64
# 下載arena安裝包 wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-linux-amd64.tar.gz # 解壓安裝包 tar -zxvf arena-installer-0.12.0-linux-amd64.tar.gz # 安裝arena cd arena-installer-0.12.0-linux-amd64 bash install.sh --only-binary
Linux/arm64
# 下載arena安裝包 wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-linux-arm64.tar.gz # 解壓安裝包 tar -zxvf arena-installer-0.12.0-linux-arm64.tar.gz # 安裝arena cd arena-installer-0.12.0-linux-arm64 bash install.sh --only-binary
macOS/amd64
# 下載arena安裝包 wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-darwin-amd64.tar.gz # 解壓安裝包 tar -zxvf arena-installer-0.12.0-darwin-amd64.tar.gz # 安裝arena cd arena-installer-0.12.0-darwin-amd64 bash install.sh --only-binary
macOS/arm64
# 下載arena安裝包 wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-darwin-arm64.tar.gz # 解壓安裝包 tar -zxvf arena-installer-0.12.0-darwin-arm64.tar.gz # 安裝arena cd arena-installer-0.12.0-darwin-arm64 bash install.sh --only-binary
(可選)安裝自動補全軟體。安裝自動補全軟體支援命令參數自動提示功能,協助您避免記憶命令列。安裝完成後,在命令列終端通過Tab鍵即可自動補全命令。
安裝補全軟體。
CentOS或Linux
sudo yum install bash-completion -y
Debian或Ubuntu
sudo apt-get install bash-completion
macOS
brew install bash-completion@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是否正常工作。
執行以下命令檢查叢集的可用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%)
通過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
執行以下命令列出所有作業。
arena list
預期輸出:
NAME STATUS TRAINER AGE NODE firstjob RUNNING TFJOB 5s 192.168.X.XXX
執行以下命令查看提交作業的狀態。
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
執行以下命令查看作業日誌。
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