Descripci�n general de los contenedores personalizados

Un contenedor personalizado es una imagen de Docker que creas para ejecutar tu aplicaci�n de entrenamiento. Cuando ejecutas tu trabajo de entrenamiento de aprendizaje autom�tico (AA) en un contenedor personalizado, puedes usar frameworks de AA, dependencias, bibliotecas y objetos binarios que no sean de AA, que de otra manera no sean compatibles con Vertex AI.

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. Es posible que haya un contenedor compilado previamente que ya sea compatible con tus dependencias. De lo contrario, debes compilar un contenedor personalizado para tu trabajo de entrenamiento. En el contenedor personalizado, instala previamente la aplicaci�n de entrenamiento y todas sus dependencias en una imagen que se use para ejecutar el trabajo de entrenamiento.

  3. Almacena los datos de entrenamiento y verificaci�n en una fuente a la que pueda acceder Vertex�AI. Para simplificar la autenticaci�n y reducir la latencia, almacena tus datos en Cloud Storage, Bigtable o alg�n otro servicio de almacenamiento de Google Cloud en el mismo proyecto y regi�n de Google Cloud que usas para Vertex AI. Obt�n m�s informaci�n sobre las formas en que Vertex AI puede cargar tus datos.

  4. Cuando tu aplicaci�n est� lista para ejecutarse, debes compilar tu imagen de Docker y enviarla a Artifact Registry o Docker Hub. Aseg�rate de que Vertex AI pueda acceder a tu registro.

  5. Env�a tu trabajo de entrenamiento personalizado creando un trabajo personalizado o creando una canalizaci�n de entrenamiento personalizada.

  6. Vertex AI configura recursos para tu trabajo. Asigna una o m�s m�quinas virtuales (llamadas instancias de entrenamiento) en funci�n de la configuraci�n del trabajo. Para configurar una instancia de entrenamiento, usa el contenedor personalizado que especificas como parte del objeto WorkerPoolSpec cuando env�as tu trabajo de entrenamiento.

  7. Vertex�AI ejecuta la imagen de Docker y pasa cualquier argumento de la l�nea de comandos que especifiques cuando crees el trabajo de entrenamiento.

  8. Cuando tu trabajo de entrenamiento es correcto o encuentra un error irrecuperable, Vertex AI 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 framework de�AA que prefieras. Si no puedes encontrar un contenedor compilado previamente de Vertex AI con el marco de trabajo de AA que deseas usar, puedes compilar un contenedor personalizado con el marco de trabajo que elijas y usarlo para ejecutar trabajos en Vertex AI. Por ejemplo, puedes usar un contenedor del cliente para 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 menor de un marco de trabajo de AA. Por ejemplo, puedes compilar un contenedor personalizado para entrenar con tf-nightly.

Ajuste de hiperpar�metros con contenedores personalizados

Para realizar el ajuste de hiperpar�metros en Vertex AI, especifica las m�tricas del objetivo, junto con la posibilidad de minimizar o maximizar cada m�trica. Por ejemplo, es posible que desees maximizar la exactitud del modelo o minimizar la p�rdida del modelo. Tambi�n puedes enumerar los hiperpar�metros que deseas ajustar, junto con el rango de valores aceptables para cada hiperpar�metro. Vertex AI 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, Vertex AI informa los valores de la configuraci�n m�s efectiva de los hiperpar�metros y un resumen de cada prueba.

Para realizar ajustes de hiperpar�metros con contenedores personalizados, debes hacer 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 la l�nea de comandos para cada hiperpar�metro y controla el an�lisis de argumentos con un analizador de argumentos como argparse.

Consulta c�mo configurar un trabajo de ajuste de hiperpar�metros que usa contenedores personalizados o bien obt�n m�s informaci�n sobre c�mo funciona el ajuste de hiperpar�metros en Vertex AI.

GPU en 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. La forma recomendada de compilar un contenedor personalizado compatible con GPU es usar la imagen nvidia/cuda como la imagen base para el contenedor personalizado. La imagen del contenedor nvidia/cuda tiene versiones coincidentes del kit de herramientas CUDA y cuDNN preinstaladas, y te ayuda a configurar las variables de entorno relacionadas de manera correcta.
  • Instala la aplicaci�n de entrenamiento, junto con el marco de trabajo de�AA necesario y otras dependencias, en la imagen de Docker.

Consulta un ejemplo de Dockerfile para el entrenamiento con GPU.

�Qu� sigue?