Um contêiner de aprendizado profundo (DL, na sigla em inglês) é um contêiner do Docker com frameworks, bibliotecas e ferramentas de ciência de dados pré-instalados. Um usuário, como um cientista de dados, escolhe um único contêiner de DL e o implanta. O contêiner implantado tem um ambiente consistente e otimizado para desempenho que ajuda a prototipar e implementar fluxos de trabalho rapidamente.
Implantar um contêiner de DL
Antes de usar um contêiner de aprendizado profundo, escolha e implante uma imagem de contêiner que execute sua tarefa de machine learning (ML). Frameworks, bibliotecas e ferramentas pré-instaladas provisionam um contêiner de DL.
Implantar um contêiner de DL usando arquivos kubeconfig
O dispositivo com isolamento físico do Google Distributed Cloud (GDC) fornece o seguinte arquivo kubeconfig
que implanta seu contêiner de DL:
CLUSTER_KUBECONFIG
: o arquivo kubeconfig do cluster do Kubernetes bare metal. O GDC oferece um cluster para todas as cargas de trabalho.
Para mais informações sobre como fazer login na UI e na ferramenta kubectl
, consulte
Fazer login.
Para recuperar o arquivo CLUSTER_KUBECONFIG
, consulte Receber um arquivo kubeconfig
.
Fazer o download do script e do conjunto de dados de amostra de machine learning (ML)
Faça o download do script de ML de amostra, beginner.ipynb
, e do conjunto de dados, mnist.npz
, para
executar o tutorial de início rápido de ML. O tutorial demonstra como implantar e usar
um contêiner de DL para executar experimentos de ML.
mkdir -p /tmp/datasets
cd /tmp/datasets
wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/beginner.ipynb
wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/mnist.npz
Substitua GDC_APPLIANCE_URL
pelo nome de domínio usado para acessar
o GDC. Ao abrir um URL pela primeira
vez, o GDC redireciona você para a página de login do
provedor de identidade.
Procure o endereço IP do registro do Harbor.
Antes de usar o script e o conjunto de dados de amostra, encontre o local da imagem do contêiner de DL no registro do Harbor. O registro do Harbor é um serviço que armazena imagens de contêiner particulares.
A primeira linha do código de exemplo define o caminho da variável de ambiente KUBECONFIG
, que recebe o endereço do registro do Harbor. O endereço do registro do Harbor
fornece acesso a uma lista de imagens de contêiner disponíveis.
Na segunda linha do exemplo de código, a ferramenta kubectl
usa a variável de ambiente KUBECONFIG
.
Na terceira linha do exemplo de código, o comando REGISTRY_URL#https://
remove o
prefixo https://
do URL e armazena o domínio do registro do Harbor na
variável de ambiente REGISTRY_IP
.
Na última linha do exemplo de código, a ferramenta kubectl busca a senha do
usuário admin
.
export KUBECONFIG=CLUSTER_KUBECONFIG
REGISTRY_URL=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
REGISTRY_IP=${REGISTRY_URL#https://}
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin -o jsonpath="{.data.secret}" | base64 -d)
Escolher uma imagem de contêiner
É necessário escolher uma imagem de contêiner para implantar antes de executar uma tarefa de ML. Use o domínio do registro do Harbor e o caminho na tabela a seguir do registro do Harbor para conferir a lista de imagens de contêiner disponíveis:
Framework | Processador | Nome da imagem do contêiner |
---|---|---|
Base | GPU | base-cu113 |
Base | CPU | base-cpu |
TensorFlow Enterprise 2.x | GPU | tf2-gpu |
PyTorch | GPU | pytorch-gpu |
Essa tabela é organizada por framework e processador. Para escolher uma imagem de contêiner de DL que possa processar seu experimento de ML, siga estas etapas:
- Identifique o framework, que contém as ferramentas de ML.
- Escolha o processador. Você escolhe o processador com base no tipo de tarefa de ML a ser executada e na intensidade de computação dessa tarefa. Por exemplo, escolha um dos processadores de GPU quando tiver uma tarefa de ML com uso intenso de computação e aloque um recurso de GPU ao contêiner de DL.
Criar e implantar um contêiner de DL no cluster do Kubernetes
Para criar a instância do GDC, especifique o caminho para o arquivo
kubeconfig
do cluster do Kubernetes bare metal. A variável de ambiente KUBECONFIG
especifica em qual cluster a ferramenta kubectl
implanta o contêiner de aprendizado profundo. O comando
kubectl apply
implanta a instância do contêiner de DL.
Substitua CONTAINER_IMAGE_NAME
pela imagem selecionada na
lista de imagens em Escolher uma imagem de contêiner e forneça a tag.
export KUBECONFIG=CLUSTER_KUBECONFIG
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: dl-container-pod
namespace: NAMESPACE
spec:
containers:
- image: gcr.io/private-cloud-staging/notebooks/deeplearning-platform-release/CONTAINER_IMAGE_NAME:CONTAINER_IMAGE_TAG
command: ["tail", "-f", "/dev/null"]
name: training
EOF
Usar um contêiner de DL implantado
Os tópicos a seguir mostram um exemplo de como usar uma imagem de contêiner de aprendizado profundo para treinar e usar um modelo para gerar previsões.
Copie os arquivos do tutorial para o pod do contêiner de DL
Copie os arquivos do tutorial de início rápido para o pod do contêiner de DL. O beginner.ipynb
contém as etapas para treinar e usar um modelo para fazer previsões.
O tutorial de treinamento de ML usa o arquivo de conjunto de dados mnist.npz
para treinar um modelo.
cd /tmp/datasets
kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp
Executar o tutorial de início rápido de ML
Execute o tutorial com os seguintes comandos. Use a primeira linha para inserir o pod do contêiner. Depois de entrar no pod do contêiner, mude o diretório para tmp
e execute a ferramenta papermill
incluída no contêiner de DL.
A ferramenta papermill
executa o tutorial para criar um notebook que gera previsões.
Insira um terminal interativo no pod de DL:
kubectl exec -it dl-container-pod -- /bin/bash
No contexto do pod de DL, execute os seguintes comandos:
cd tmp papermill beginner.ipynb result.ipynb
A implantação gera um arquivo
result.ipynb
no diretório/tmp
.Confira o conteúdo e as saídas de previsão do modelo de ML gerado:
cat result.ipynb
Opcional: excluir o pod do contêiner de DL
Depois de concluir o experimento no pod do contêiner de DL, exclua o pod como prática recomendada:
kubectl delete pod dl-container-pod