O Arena é um CLI leve para gerenciar tarefas de machine learning no Kubernetes. Ele abrange todo o fluxo de trabalho de ML—preparação de dados, desenvolvimento de modelos, treinamento e predição—melhorando a eficiência de trabalho dos cientistas de dados. O Arena é executado em frameworks de deep learning otimizados pela Alibaba Cloud e se integra aos serviços da Alibaba Cloud para maximizar o desempenho e a utilização de recursos de computação heterogêneos por meio do compartilhamento de GPU e do suporte ao Cloud Paralleled File System (CPFS).
Pré-requisitos
Antes de começar, certifique-se de ter:
-
Um cluster do Container Service for Kubernetes (ACK) com nós acelerados por GPU. Consulte Criar um cluster ACK com nós acelerados por GPU ou Criar um cluster ACK dedicado com nós acelerados por GPU.
-
Acesso à Internet a partir dos nós do cluster.
-
O componente Arena instalado. Consulte Implantar o pacote de IA nativa de nuvem.
Etapa 1: Conectar ao cluster
O método de conexão depende do tipo do seu cluster.
ACK managed clusters
Os clusters gerenciados do ACK não têm nós master. Instale o cliente Arena em seu computador local (por exemplo, um computador macOS) e conecte-se via kubeconfig. Consulte Conectar a um cluster usando kubectl.
ACK dedicated clusters
Use SSH para fazer login em um nó master e execute os comandos do Arena diretamente nesse nó. Consulte Usar SSH para conectar-se a nós master de um cluster dedicado ACK.
Execute kubectl get nodes para confirmar que o kubeconfig está configurado corretamente.
Etapa 2: Instalar o cliente Arena
Escolha o pacote que corresponde ao seu sistema operacional e arquitetura de processador e execute os comandos para baixar, extrair e instalar.
Linux/amd64
# Download the Arena installation package.
wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-linux-amd64.tar.gz
# Extract the package.
tar -zxvf arena-installer-0.12.0-linux-amd64.tar.gz
# Install Arena.
cd arena-installer-0.12.0-linux-amd64
bash install.sh --only-binary
Linux/arm64
# Download the Arena installation package.
wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-linux-arm64.tar.gz
# Extract the package.
tar -zxvf arena-installer-0.12.0-linux-arm64.tar.gz
# Install Arena.
cd arena-installer-0.12.0-linux-arm64
bash install.sh --only-binary
macOS/amd64
# Download the Arena installation package.
wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-darwin-amd64.tar.gz
# Extract the package.
tar -zxvf arena-installer-0.12.0-darwin-amd64.tar.gz
# Install Arena.
cd arena-installer-0.12.0-darwin-amd64
bash install.sh --only-binary
macOS/arm64
# Download the Arena installation package.
wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-darwin-arm64.tar.gz
# Extract the package.
tar -zxvf arena-installer-0.12.0-darwin-arm64.tar.gz
# Install Arena.
cd arena-installer-0.12.0-darwin-arm64
bash install.sh --only-binary
Etapa 3: (Opcional) Ativar o autocompletar do shell
O autocompletar do shell permite pressionar Tab para completar comandos do Arena digitados parcialmente.
Instalar o pacote de autocompletar
CentOS or Linux
sudo yum install bash-completion -y
Debian or Ubuntu
sudo apt-get install bash-completion
macOS
brew install bash-completion@2
Ativar o autocompletar no perfil do shell
bash (Linux)
echo "source <(arena completion bash)" >> ~/.bashrc
chmod u+x ~/.bashrc
bash (macOS)
echo "source $(brew --prefix)/etc/profile.d/bash_completion.sh" >> ~/.bashrc
Etapa 4: Verificar a instalação
Execute os comandos a seguir para confirmar que o Arena está funcionando.
-
Verifique os recursos de GPU disponíveis no cluster:
arena top nodeA saída lista os nós e a capacidade de GPU de cada um. Por exemplo:
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%) -
Envie um job de treinamento de teste:
arena submit tf \ --name=firstjob \ --gpus=1 \ --image=registry.cn-hangzhou.aliyuncs.com/tensorflow-samples/tf-mnist-standalone:gpu \ "python /app/main.py"Saída esperada:
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 -
Liste todos os jobs:
arena listSaída esperada:
NAME STATUS TRAINER AGE NODE firstjob RUNNING TFJOB 5s 192.168.X.XXX -
Verifique o status do job:
arena get firstjobSaída esperada:
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 -
Visualize os logs do job:
arena logs --tail=10 firstjobSaída esperada:
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 999O job foi concluído com êxito.