Implemente e use um contentor de aprendizagem profunda (DL)

Um contentor de aprendizagem profunda (DL) é um contentor Docker com frameworks, bibliotecas e ferramentas de ciência de dados pré-instalados. Um utilizador, como um cientista de dados, escolhe um único contentor do DL e implementa-o. O contentor implementado tem um ambiente consistente e otimizado para o desempenho que ajuda a criar protótipos e implementar fluxos de trabalho rapidamente.

Implemente um contentor do DL

Antes de usar um contentor de DL, tem de escolher e implementar uma imagem de contentor que execute a sua tarefa de aprendizagem automática (AA). As frameworks, as bibliotecas e as ferramentas pré-instaladas aprovisionam um contentor de DL.

Implemente um contentor da DL com ficheiros kubeconfig

O dispositivo isolado do Google Distributed Cloud (GDC) fornece o seguinte ficheiro kubeconfig que implementa o seu contentor de DL:

  • CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster Kubernetes de metal puro. O GDC fornece um cluster para todas as cargas de trabalho.

Para mais informações sobre como iniciar sessão na IU e na ferramenta kubectl, consulte o artigo Inicie sessão. Para aceder ao ficheiro CLUSTER_KUBECONFIG , consulte o artigo Obtenha um ficheiro kubeconfig.

Transfira o script e o conjunto de dados de aprendizagem automática (AA) de exemplo

Transfira o script de ML de exemplo, beginner.ipynb, e o conjunto de dados, mnist.npz, para executar o tutorial de início rápido de ML. O tutorial demonstra como implementar e usar um contentor de DL para executar experiências 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 do domínio usado para aceder ao GDC. Quando abre qualquer URL pela primeira vez, o GDC redireciona-o para a página de início de sessão do seu fornecedor de identidade.

Procure o endereço IP do registo do Harbor

Antes de usar o script e o conjunto de dados de exemplo, tem de encontrar a localização da imagem do contentor do DL no registo do Harbor. O registo do Harbor é um serviço que armazena imagens de contentores privados.

A primeira linha do código de exemplo define o caminho da variável de ambiente, que recebe o endereço do registo do Harbor.KUBECONFIG O endereço do registo do Harbor dá acesso a uma lista de imagens de contentores 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 registo do Harbor na variável de ambiente REGISTRY_IP.

Na última linha do exemplo de código, a ferramenta kubectl obtém a palavra-passe do utilizador 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)

Escolha uma imagem do contentor

Tem de escolher uma imagem de contentor para implementar antes de poder executar uma tarefa de ML. Use o domínio do registo do Harbor e o caminho na tabela seguinte do registo do Harbor para ver a lista de imagens de contentores disponíveis:

Framework Processador Nome da imagem do contentor
Base GPU base-cu113
Base CPU base-cpu
TensorFlow Enterprise 2.x GPU tf2-gpu
PyTorch GPU pytorch-gpu

Esta tabela está organizada por framework e processador. Para escolher uma imagem do contentor de DL que possa processar a sua experiência de ML, siga estes passos:

  1. Identifique a framework que contém as ferramentas de AA.
  2. Escolha o processador. Escolhe o processador com base no tipo de tarefa de ML a executar e na intensidade de computação dessa tarefa. Por exemplo, escolha um dos processadores de GPU quando tiver uma tarefa de ML com utilização intensiva de computação e atribua um recurso de GPU ao contentor de DL.

Crie e implemente um contentor de DL no cluster do Kubernetes

Para criar a instância do GDC, especifique o caminho para o ficheiro kubeconfig do cluster do Kubernetes bare metal. A variável de ambiente KUBECONFIGespecifica a que cluster a ferramenta kubectl implementa o contentor da DL. O comando kubectl apply implementa a instância do contentor do DL.

Substitua CONTAINER_IMAGE_NAME pela imagem selecionada na lista de imagens em Escolha uma imagem de contentor e certifique-se de que fornece a etiqueta.

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

Use um contentor da CND implementado

Os tópicos seguintes fornecem um exemplo de como usar uma imagem de contentor de DL para preparar e usar um modelo para gerar previsões.

Copie os ficheiros do tutorial para o pod do contentor de DL

Copie os ficheiros do tutorial de início rápido para o pod do contentor de DL. O beginner.ipynb contém os passos para preparar e usar um modelo para fazer previsões. O tutorial de preparação de ML usa o ficheiro do conjunto de dados mnist.npz para preparar um modelo.

cd /tmp/datasets

kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp

Execute o tutorial de início rápido de ML

Execute o tutorial com os seguintes comandos. Use a primeira linha para introduzir o pod do contentor. Depois de estar no pod do contentor, mude o diretório para tmp e execute a ferramenta papermill incluída no contentor do DL. A ferramenta papermill executa o tutorial para criar um bloco de notas que gera previsões.

  1. Introduza um terminal interativo no pod do DL:

    kubectl exec -it dl-container-pod -- /bin/bash
    
  2. No contexto do pod DL, execute os seguintes comandos:

    cd tmp
    papermill beginner.ipynb result.ipynb
    

    A implementação gera um ficheiro result.ipynb no diretório /tmp.

  3. Veja o conteúdo e os resultados da previsão do modelo de ML gerado:

    cat result.ipynb
    

Opcional: elimine o pod do contentor da DL

Depois de terminar a execução da experiência no pod do contentor de DL, elimine o pod como prática recomendada:

kubectl delete pod dl-container-pod