Un contenedor de aprendizaje profundo (DL) 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 implementado tiene un entorno coherente y optimizado para el rendimiento que ayuda a crear prototipos e implementar flujos de trabajo rápidamente.
Implementa un contenedor de DL
Antes de usar un contenedor de AA, debes elegir e implementar una imagen de contenedor que ejecute tu tarea de aprendizaje automático (AA). Los frameworks, las bibliotecas y las herramientas preinstalados aprovisionan un contenedor de AA.
Implementa un contenedor de AA con archivos kubeconfig
El dispositivo aislado de Google Distributed Cloud (GDC) proporciona el siguiente archivo kubeconfig
que implementa tu contenedor de DL:
CLUSTER_KUBECONFIG
: Es el archivo kubeconfig del clúster de Kubernetes de metal desnudo. GDC proporciona un clúster para todas las cargas de trabajo.
Para obtener más información sobre cómo acceder a la IU y a la herramienta de kubectl
, consulta Accede.
Para recuperar el archivo CLUSTER_KUBECONFIG
, consulta Cómo obtener un archivo kubeconfig
.
Descarga el script y el conjunto de datos de muestra de aprendizaje automático (AA)
Descarga la secuencia de comandos de AA de muestra, beginner.ipynb
, y el conjunto de datos, mnist.npz
, para ejecutar el instructivo de inicio rápido de AA. En este instructivo, se muestra cómo implementar y usar un contenedor de AA para ejecutar experimentos de AA.
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
Reemplaza GDC_APPLIANCE_URL
por el nombre de dominio que se usó para acceder a GDC. Cuando abres cualquier URL por primera vez, GDC te redirecciona a la página de acceso de tu proveedor de identidad.
Busca la dirección IP del registro de Harbor
Antes de usar el conjunto de datos y la secuencia de comandos de muestra, debes encontrar la ubicación de la imagen del contenedor de AA en el registro de Harbor. El registro de Harbor es un servicio que almacena imágenes de contenedores privadas.
La primera línea del código de ejemplo establece la ruta de acceso 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 muestra, 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 muestra, la herramienta kubectl recupera 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 implementar antes de poder ejecutar una tarea de AA. Usa el dominio del registro de Harbor y la ruta de acceso 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 está organizada por framework y procesador. Para elegir una imagen de contenedor de AA que pueda procesar tu experimento de AA, sigue estos pasos:
- Identifica el framework, que contiene las herramientas de AA.
- Elige el procesador. Elige el procesador según el tipo de tarea de AA que deseas ejecutar y la intensidad de procesamiento de esa tarea. Por ejemplo, elige uno de los procesadores de GPU cuando tengas una tarea de AA que requiera mucha capacidad de procesamiento y asigna un recurso de GPU al contenedor de DL.
Crea e implementa un contenedor de DL en el clúster de Kubernetes
Para crear la instancia de GDC, especifica la ruta de acceso al archivo kubeconfig
del clúster de Kubernetes de Bare Metal. La variable de entorno KUBECONFIG
especifica en qué clúster la herramienta kubectl
implementa el contenedor de DL. El comando kubectl apply
implementa la instancia del contenedor de DL.
Reemplaza CONTAINER_IMAGE_NAME
por la imagen seleccionada de la lista de imágenes en 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
Usa un contenedor de DL implementado
En los siguientes temas, se proporciona un ejemplo de cómo usar una imagen de contenedor de AA para entrenar un modelo y usarlo para generar predicciones.
Copia los archivos del instructivo en el pod del contenedor de DL
Copia los archivos del instructivo de inicio rápido en el pod de tu contenedor de AA. El beginner.ipynb
contiene los pasos para entrenar y usar un modelo para hacer predicciones.
En el instructivo de entrenamiento de AA, 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
Ejecuta el instructivo de inicio rápido de AA
Ejecuta el instructivo con los siguientes comandos. Usa la primera línea para ingresar al pod del contenedor. Después de que 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 instructivo para crear un notebook que genera predicciones.
Ingresa a 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 la predicción del modelo de AA generado:
cat result.ipynb
Opcional: Borra el Pod del contenedor de DL
Después de terminar de ejecutar el experimento en el pod del contenedor de DL, borra el pod como práctica recomendada:
kubectl delete pod dl-container-pod