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:
- Identifique a framework que contém as ferramentas de AA.
- 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 KUBECONFIG
especifica 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.
Introduza um terminal interativo no pod do DL:
kubectl exec -it dl-container-pod -- /bin/bash
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
.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