Nesta página, mostramos como executar um job de treinamento em uma instância de Deep Learning Containers e executar essa imagem de contêiner em um cluster do Google Kubernetes Engine.
Antes de começar
Antes de começar, conclua as etapas a seguir.
Conclua as etapas de configuração na seção "Primeiros passos" em Primeiros passos com um contêiner de aprendizado profundo local.
Verifique se o faturamento está ativado para seu projeto do Google Cloud .
Ative as APIs do Google Kubernetes Engine, Compute Engine e Artifact Registry.
Abrir a ferramenta de linha de comando
Siga este guia usando o
Cloud Shell ou
as ferramentas de linha de comando localmente. O Cloud Shell vem pré-instalado
com as ferramentas de linha de comando gcloud, docker e kubectl usadas
neste tutorial. Se você usa o Cloud Shell, não precisa instalar essas ferramentas de linha de comando na sua estação de trabalho.
Cloud Shell
Para usar o Cloud Shell, conclua as etapas a seguir.
Acesse o console doGoogle Cloud .
Clique no botão Ativar o Cloud Shell no topo da janela do console.

Uma sessão do Cloud Shell abre dentro de um novo frame na parte inferior do console e exibe um prompt de linha de comando.

Linha de comando local
Para usar a linha de comando local, siga as etapas a seguir.
Instale a ferramenta de linha de comando Kubernetes usando a CLI gcloud. A ferramenta
kubectlé usada para se comunicar com o Kubernetes, que é o sistema de orquestração de clusters de contêineres de aprendizado profundo:gcloud components install kubectlAo concluir as etapas dos primeiros passos, você instalou a Google Cloud CLI e o Docker.
Criar um cluster do GKE
Execute o seguinte comando para criar um cluster de dois nós no GKE
chamado pytorch-training-cluster:
gcloud container clusters create pytorch-training-cluster \
--num-nodes=2 \
--zone=us-west1-b \
--accelerator="type=nvidia-tesla-p100,count=1" \
--machine-type="n1-highmem-2" \
--scopes="gke-default,storage-rw"
Para mais informações sobre essas configurações, consulte a documentação sobre como criar clusters para executar contêineres.
A criação do cluster pode levar vários minutos.
Como alternativa, em vez de criar um cluster, é possível usar um cluster
atual no seu projeto Google Cloud . Se você fizer isso, talvez seja necessário
executar o seguinte comando para garantir que a ferramenta de linha de comando
kubectl tenha as credenciais apropriadas para acessar seu cluster:
gcloud container clusters get-credentials YOUR_EXISTING_CLUSTER
Em seguida, instale os drivers do dispositivo da GPU NVIDIA.
Criar o Dockerfile
Há muitas maneiras de criar uma imagem de contêiner.
Nestas etapas, você verá como criar um para executar um script Python
chamado trainer.py.
Para ver uma lista de imagens de contêiner disponíveis:
gcloud container images list \
--repository="us-docker.pkg.dev/deeplearning-platform-release/gcr.io"
Acesse Como escolher um contêiner para ajudar a selecionar o contêiner desejado.
O exemplo a seguir mostra como colocar um script Python chamado
trainer.py em um tipo de contêiner de aprendizado profundo específico do PyTorch.
Para criar o dockerfile, grave os seguintes comandos em um arquivo chamado
Dockerfile. Nesta etapa, presume-se que você tenha o código para treinar um modelo de machine
learning em um diretório chamado model-training-code e que o
principal módulo Python nesse diretório seja denominado trainer.py. Neste
cenário, o contêiner será removido quando o job for concluído. Portanto, o script de treinamento precisa ser configurado para saída no Cloud Storage. Consulte
um exemplo de um script que envia para
Cloud Storage
ou a saída para
armazenamento permanente.
FROM us-docker.pkg.dev/deeplearning-platform-release/gcr.io/pytorch-gpu
COPY model-training-code /train
CMD ["python", "/train/trainer.py"]
Criar e fazer upload da imagem do contêiner
Para criar e fazer upload da imagem do contêiner para o Artifact Registry, use os seguintes comandos:
export PROJECT_ID=$(gcloud config list project --format "value(core.project)")
export IMAGE_REPO_NAME=pytorch_custom_container
export IMAGE_TAG=$(date +%Y%m%d_%H%M%S)
export IMAGE_URI=us-docker.pkg.dev/$PROJECT_ID/$IMAGE_REPO_NAME:$IMAGE_TAG
docker build -f Dockerfile -t $IMAGE_URI ./
docker push $IMAGE_URI
Implantar aplicativo
Crie um arquivo chamado pod.yaml com o seguinte conteúdo, substituindo IMAGE_URI pelo URI da imagem.
apiVersion: v1
kind: Pod
metadata:
name: gke-training-pod
spec:
containers:
- name: my-custom-container
image: IMAGE_URI
resources:
limits:
nvidia.com/gpu: 1
Use a ferramenta de linha de comando kubectl para executar o seguinte comando e
implantar o aplicativo:
kubectl apply -f ./pod.yaml
Para rastrear o status do pod, execute o comando abaixo:
kubectl describe pod gke-training-pod