Descripción general de los contenedores

Los contenedores de AI Platform te permiten ejecutar tu aplicación dentro de una imagen de Docker. Puedes compilar tu propio contenedor personalizado para ejecutar trabajos en AI Platform, con marcos de trabajo y versiones de AA, así como con dependencias, bibliotecas y objetos binarios que no sean de AA, que de otra manera no serían compatibles con AI Platform.

Cómo funciona el entrenamiento con contenedores

Tu aplicación de entrenamiento, implementada en el marco de trabajo de AA que hayas elegido, es el núcleo del proceso de entrenamiento.

  1. Crea una aplicación que entrene a tu modelo, con el marco de trabajo de AA que elijas.
  2. Decide si usarás un contenedor personalizado. Podría haber una versión del entorno de ejecución que ya sea compatible con tus dependencias. De lo contrario, deberás compilar un contenedor personalizado para tu trabajo de entrenamiento. En tu contenedor personalizado, instala previamente tu aplicación de entrenamiento y todas sus dependencias en una imagen que usarás para ejecutar tu trabajo de entrenamiento.
  3. Almacena tus datos de entrenamiento y verificación en una fuente a la que pueda acceder AI Platform. Por regla general, esto significa ponerlos en Cloud Storage, Cloud Bigtable o algún otro servicio de almacenamiento de Google Cloud Platform asociado con el mismo proyecto de GCP que usas para AI Platform.
  4. Cuando tu aplicación esté lista para ejecutarse, debes compilar tu imagen de Docker y enviarla a Container Registry. Asegúrate de que el servicio de AI Platform pueda acceder a tu registro.
  5. Envía tu trabajo mediante gcloud ai-platform jobs submit training y especifica tus argumentos en un archivo config.yaml o con las marcas de gcloud correspondientes.
  6. El servicio de entrenamiento de AI Platform configura recursos para tu trabajo. Asigna una o más máquinas virtuales (llamadas instancias de entrenamiento) en función de la configuración de tu trabajo. Para configurar una instancia de entrenamiento, usa el contenedor personalizado que especificas como parte del objeto TrainingInput cuando envías tu trabajo de entrenamiento.
  7. El servicio de entrenamiento ejecuta tu imagen de Docker y pasa cualquier argumento de la línea de comandos que especifiques cuando crees el trabajo de entrenamiento.
  8. Puedes obtener información sobre tu trabajo en ejecución de las siguientes maneras:
  9. Cuando tu trabajo de entrenamiento es correcto o encuentra un error irrecuperable, AI Platform detiene todos los procesos de trabajo y limpia los recursos.

Ventajas de los contenedores personalizados

Los contenedores personalizados te permiten especificar y también instalar previamente todas las dependencias que necesitas para tu aplicación.

  • Menor tiempo de inicio. Si usas un contenedor personalizado con tus dependencias instaladas previamente, puedes ahorrar el tiempo que tu aplicación de entrenamiento tardaría en instalar las dependencias al momento del inicio.
  • Usa el marco de trabajo de AA que prefieras. Si no puedes encontrar una versión del entorno de ejecución de AI Platform que admita el marco de trabajo de AA que deseas usar, puedes compilar un contenedor personalizado que instale el marco elegido y usarlo para ejecutar trabajos en AI Platform. Por ejemplo, puedes entrenar con PyTorch.
  • Compatibilidad extendida con el entrenamiento distribuido. Con los contenedores personalizados, puedes realizar un entrenamiento distribuido con cualquier marco de trabajo de AA.
  • Utiliza la versión más reciente. También puedes usar la última versión de compilación o una versión anterior de un marco de trabajo de AA. Por ejemplo, puedes compilar un contenedor personalizado para entrenar con tf-nightly o, también, obtener una vista previa de TensorFlow 2.0.

Ajuste de hiperparámetros con contenedores personalizados

Para ajustar hiperparámetros en AI Platform, especifica una métrica de objetivo, junto con la opción de minimizarla o maximizarla. Por ejemplo, es posible que desees maximizar la exactitud de tu modelo o minimizar la pérdida de tu modelo. También puedes enumerar los hiperparámetros que deseas ajustar, junto con un valor objetivo para cada hiperparámetro. AI Platform realiza varias pruebas de tu aplicación de entrenamiento, y realiza un seguimiento y un ajuste de los hiperparámetros después de cada prueba. Cuando se completa el trabajo de ajuste de hiperparámetros, AI Platform informa los valores de la configuración más efectiva de tus hiperparámetros, así como un resumen para cada prueba.

Para realizar ajustes de hiperparámetros con contenedores personalizados, debes realizar lo siguiente:

  • En tu Dockerfile, instala cloudml-hypertune.
  • En tu código de entrenamiento:
    • Usa cloudml-hypertune a fin de informar los resultados de cada prueba. Para ello, llama a su función auxiliar, report_hyperparameter_tuning_metric.
    • Agrega argumentos de línea de comandos para cada hiperparámetro y controla el análisis de argumentos con un analizador de argumentos como argparse.
  • En tu solicitud de trabajo, agrega un HyperparameterSpec al objeto TrainingInput.

Consulta un ejemplo de entrenamiento con contenedores personalizados mediante el ajuste de hiperparámetros, o bien obtén más información sobre cómo funciona el ajuste de hiperparámetros en AI Platform.

Cómo usar GPU con contenedores personalizados

Para el entrenamiento con GPU, tu contenedor personalizado debe cumplir con algunos requisitos especiales. Debes compilar una imagen de Docker diferente de la que usarías para entrenar con CPU.

  • Instala previamente el kit de herramientas CUDA y cuDNN en tu imagen de Docker. El uso de la imagen nvidia/cuda como tu imagen base es la forma recomendada de manejar esto. Tiene las versiones coincidentes del kit de herramientas CUDA y cuDNN preinstaladas, y te ayuda a configurar las variables de entorno relacionadas de manera correcta.
  • Instala tu aplicación de entrenamiento, junto con tu marco de trabajo de AA requerido y otras dependencias, en tu imagen de Docker.

Consulta un ejemplo de Dockerfile para el entrenamiento con GPU.

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.