Arena是基于Kubernetes的机器学习轻量级解决方案,支持数据准备、模型开发、模型训练和模型预测的完整生命周期,提升数据科学家工作效率。同时和阿里云的基础云服务深度集成,支持GPU共享、CPFS等服务,可以运行阿里云优化的深度学习框架,最大化使用阿里云异构设备的性能和成本的效益。本文介绍如何安装Arena。
前提条件
步骤一:安装Arena组件
- 未安装Arena组件:请参考安装云原生AI套件页面进行安装。
- 已安装Arena组件:请执行步骤二:配置Arena客户端。
步骤二:配置Arena客户端
如果您使用的是专有版集群,以SSH方式登录到专有版集群的管理节点上,然后直接执行arena命令。有关使用SSH方式登录集群的具体步骤,请参见通过SSH连接ACK专有版集群的Master节点。
如果您使用的是托管版集群,由于托管版集群无Master节点,您需要将Arena客户端安装在您的本地计算机上(比如:个人Mac)。在安装Arena之前,请确保KubeConfig文件在计算机的正确位置:$HOME/.kube/config,具体步骤,请参见获取集群KubeConfig并通过kubectl工具连接集群。然后配置Arena客户端,具体操作步骤如下。
说明
- 您可以通过执行命令
kubectl get nodes
判断KubeConfig文件是否正确配置。 - 您可以执行以下步骤升级Arena客户端。
- 下载Arena客户端。
- 解压安装包。
- 对于Linux版系统,执行以下命令解压安装包。
tar -xvf arena-installer-0.9.7-d51fe2e-linux-amd64.tar.gz
- 对于Mac版系统,执行以下命令解压安装包。
tar -xvf arena-installer-0.9.7-d51fe2e-darwin-amd64.tar.gz
- 对于Linux版系统,执行以下命令解压安装包。
- 执行以下命令安装Arena。
cd arena-installer bash install.sh --only-binary
- 可选:安装自动补齐软件。安装自动补齐软件支持命令参数自动提示功能,帮助您避免记忆命令行。
- 执行以下命令安装CentOS或Alibaba Cloud Linux 2。
sudo yum install bash-completion -y
- 执行以下命令安装Debian或Ubuntu。
sudo apt-get install bash-completion
- 执行以下命令安装macOS。
brew install bash-completion@2
- 执行以下命令安装CentOS或Alibaba Cloud Linux 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
在命令行终端通过Tab键即可自动补齐命令。 - Linux
步骤三:验证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