Un contenedor de aprendizaje profundo es un contenedor de Docker con frameworks, bibliotecas y herramientas de ciencia de datos preinstalados. Un usuario, como un científico de datos, elige un solo contenedor de DL y lo implementa. El contenedor desplegado tiene un entorno coherente y con rendimiento optimizado que permite crear prototipos e implementar flujos de trabajo rápidamente.
Desplegar un contenedor de DL
Antes de usar un contenedor de aprendizaje profundo, debes elegir y desplegar una imagen de contenedor que ejecute tu tarea de aprendizaje automático. Los frameworks, las bibliotecas y las herramientas preinstalados proporcionan un contenedor de aprendizaje profundo.
Desplegar un contenedor de DL con archivos kubeconfig
El dispositivo air-gapped de Google Distributed Cloud (GDC) proporciona el siguiente archivo kubeconfig
para implementar tu contenedor de datos:
CLUSTER_KUBECONFIG
: el archivo kubeconfig del clúster de Kubernetes bare metal. GDC proporciona un clúster para todas las cargas de trabajo.
Para obtener más información sobre cómo iniciar sesión en la interfaz de usuario y en la herramienta kubectl
, consulta Iniciar sesión.
Para recuperar el archivo CLUSTER_KUBECONFIG
, consulta Obtener un archivo kubeconfig
.
Descargar la secuencia de comandos y el conjunto de datos de aprendizaje automático (ML) de ejemplo
Descarga la secuencia de comandos de aprendizaje automático de ejemplo, beginner.ipynb
, y el conjunto de datos, mnist.npz
, para ejecutar el tutorial de inicio rápido de aprendizaje automático. En el tutorial se muestra cómo desplegar y usar un contenedor de aprendizaje profundo para ejecutar experimentos de aprendizaje automático.
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
Sustituye GDC_APPLIANCE_URL
por el nombre de dominio que se usa para acceder a GDC. Cuando abres cualquier URL por primera vez, GDC te redirige a la página de inicio de sesión de tu proveedor de identidad.
Buscar la dirección IP del registro de Harbor
Antes de usar la secuencia de comandos y el conjunto de datos de ejemplo, debes encontrar la ubicación de la imagen del contenedor de DL en el registro de Harbor. El registro de Harbor es un servicio que almacena imágenes de contenedor privadas.
La primera línea de código de ejemplo define la ruta de la variable de entorno KUBECONFIG
, que obtiene la dirección del registro de Harbor. La dirección del registro de Harbor proporciona acceso a una lista de imágenes de contenedor disponibles.
En la segunda línea del código de ejemplo, la herramienta kubectl
usa la variable de entorno KUBECONFIG
.
En la tercera línea del código de muestra, el comando REGISTRY_URL#https://
quita el prefijo https://
de la URL y almacena el dominio del registro de Harbor en la variable de entorno REGISTRY_IP
.
En la última línea del código de ejemplo, la herramienta kubectl obtiene la contraseña del usuario 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)
Elegir una imagen de contenedor
Debes elegir una imagen de contenedor para desplegarla antes de poder ejecutar una tarea de aprendizaje automático. Usa el dominio del registro de Harbor y la ruta de la siguiente tabla del registro de Harbor para ver la lista de imágenes de contenedor disponibles:
Framework | Procesador | Nombre de la imagen del contenedor |
---|---|---|
Base | GPU | base-cu113 |
Base | CPU | base-cpu |
TensorFlow Enterprise 2.x | GPU | tf2-gpu |
PyTorch | GPU | pytorch-gpu |
Esta tabla se organiza por framework y procesador. Para elegir una imagen de contenedor de DL que pueda procesar tu experimento de aprendizaje automático, sigue estos pasos:
- Identifica el framework, que contiene las herramientas de aprendizaje automático.
- Elige el procesador. Elige el procesador en función del tipo de tarea de aprendizaje automático que quieras ejecutar y de la intensidad de computación de esa tarea. Por ejemplo, elige uno de los procesadores de GPU cuando tengas una tarea de aprendizaje automático que requiera muchos recursos de computación y asigna un recurso de GPU al contenedor de aprendizaje profundo.
Crear y desplegar un contenedor de aprendizaje profundo en el clúster de Kubernetes
Para crear la instancia de GDC, especifica la ruta al archivo kubeconfig
del clúster de Kubernetes de hardware desnudo. La variable de entorno KUBECONFIG
especifica en qué clúster implementa la herramienta kubectl
el contenedor de descarga. El comando kubectl apply
despliega la instancia de contenedor de DL.
Sustituye CONTAINER_IMAGE_NAME
por la imagen seleccionada de la lista de imágenes de Elige una imagen de contenedor y asegúrate de proporcionar la 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
Usar un contenedor de DL implementado
En los siguientes temas se muestra un ejemplo de cómo usar una imagen de contenedor de aprendizaje profundo para entrenar un modelo y usarlo para generar predicciones.
Copia los archivos del tutorial en el pod del contenedor de DL
Copia los archivos del tutorial de inicio rápido en tu pod de contenedor de DL. La beginner.ipynb
contiene los pasos para entrenar y usar un modelo para hacer predicciones.
En el tutorial de entrenamiento de aprendizaje automático se usa el archivo del conjunto de datos mnist.npz
para entrenar un modelo.
cd /tmp/datasets
kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp
Ejecutar el tutorial de inicio rápido de aprendizaje automático
Ejecuta el tutorial con los siguientes comandos. Usa la primera línea para introducir el pod del contenedor. Cuando estés en el pod del contenedor, cambia el directorio a tmp
y ejecuta la herramienta papermill
que se incluye en el contenedor de DL.
La herramienta papermill
ejecuta el tutorial para crear un cuaderno que genera predicciones.
Introduce una terminal interactiva en el pod de DL:
kubectl exec -it dl-container-pod -- /bin/bash
En el contexto del pod de DL, ejecuta los siguientes comandos:
cd tmp papermill beginner.ipynb result.ipynb
La implementación genera un archivo
result.ipynb
en el directorio/tmp
.Consulta el contenido y los resultados de las predicciones del modelo de AA generado:
cat result.ipynb
Opcional: Elimina el pod del contenedor de descarga
Una vez que hayas terminado de ejecutar el experimento en el pod del contenedor de datos de cliente, elimina el pod. Es una práctica recomendada:
kubectl delete pod dl-container-pod