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
相關視頻
下方視頻介紹如何安裝Arena并使用Arena提交Gang Scheduling任務。