
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Launch Vertex AI Workbench instance
/ 30
Create a Dockerfile and add model training code
/ 30
Build the container
/ 20
Run a hyperparameter tuning job on Vertex AI
/ 20
En este lab, aprenderás a usar Vertex AI para ejecutar un trabajo de ajuste de hiperparámetros en un modelo de TensorFlow. Si bien en este lab se usa TensorFlow para el código del modelo, puedes reemplazarlo por otro framework fácilmente.
En este lab, se utiliza la oferta de productos de IA más reciente de Google Cloud. Vertex AI integra las ofertas de AA de Google Cloud en una experiencia de desarrollo fluida. Anteriormente, se podía acceder a los modelos personalizados y a los entrenados con AutoML mediante servicios independientes. La nueva oferta combina ambos en una sola API, junto con otros productos nuevos. También puedes migrar proyectos existentes a Vertex AI. Para enviarnos comentarios, visita la página de asistencia.
Vertex AI incluye muchos productos distintos para respaldar flujos de trabajo de AA de extremo a extremo. Este lab se enfoca en los productos que se destacan a continuación: entrenamiento/ajuste de hiperparámetros y notebooks.
Vertex AI ofrece dos soluciones de notebook, Workbench y Colab Enterprise.
Vertex AI Workbench es una buena opción para los proyectos que priorizan el control y la personalización. Es excelente para proyectos complejos que abarcan múltiples archivos, con dependencias complejas. También es una buena opción para científicos de datos que están haciendo la transición a la nube desde una estación de trabajo o laptop.
Las instancias de Vertex AI Workbench tienen un conjunto previamente instalado de paquetes de aprendizaje profundo, lo que incluye la compatibilidad con los frameworks de TensorFlow y PyTorch.
En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
Accede a Qwiklabs desde una ventana de incógnito.
Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00
) y asegúrate de finalizarlo en el plazo asignado.
No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.
Cuando esté listo, haga clic en Comenzar lab.
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
Haga clic en Abrir Google Console.
Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
Si usa otras credenciales, se generarán errores o incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación.
En la consola de Cloud, haz clic en el menú de navegación > APIs y servicios > Biblioteca.
Busca la API de Compute Engine y, luego, haz clic en Habilitar si aún no está habilitada. La necesitarás para crear la instancia de notebook.
En la consola de Cloud, haz clic en el menú de navegación > APIs y servicios > Biblioteca.
Busca la API de Google Container Registry y selecciona Habilitar si aún no está habilitada. La usarás para crear un contenedor para tu trabajo de entrenamiento personalizado.
En el menú de navegación () de la consola de Google Cloud, selecciona Vertex AI.
Haz clic en Habilitar todas las APIs recomendadas.
En el menú de navegación, haz clic en Workbench.
En la parte superior de la página de Workbench, asegúrate de estar en la vista Instancias.
Haz clic en Crear nueva.
Configura la instancia:
La instancia tardará algunos minutos en crearse. Se mostrará una marca de verificación verde junto a su nombre cuando esté lista.
Haz clic en Revisar mi progreso para verificar el objetivo.
Para enviar este trabajo de ajuste de hiperparámetros a Vertex, pon el código de entrenamiento de la aplicación en un contenedor de Docker y envíalo a Google Container Registry. Con este enfoque, puedes ajustar los hiperparámetros para un modelo compilado con cualquier framework.
horses_or_humans
y usa el comando cd para acceder a él:El primer paso para alojar el código en un contenedor es crear un Dockerfile. En él, incluirás todos los comandos necesarios para ejecutar la imagen. Así, se instalarán todas las bibliotecas necesarias, incluida la CloudML Hypertune, y se configurará el punto de entrada para el código de entrenamiento.
Este Dockerfile usa la imagen de Docker para GPU con TensorFlow Enterprise 2.9 para contenedores de aprendizaje profundo.. Los contenedores de aprendizaje profundo en Google Cloud tienen preinstalados muchos frameworks comunes de AA y ciencia de datos.
Después de descargar esa imagen, este Dockerfile configura el punto de entrada para el código de entrenamiento. Aún no has creado estos archivos; en el siguiente paso, agregarás el código para entrenar y ajustar el modelo.
Ahora, deberías tener lo siguiente en el directorio horses_or_humans/
:
Antes de crear el contenedor, analicemos el código en detalle. Hay algunos componentes que son específicos para el uso del servicio de ajuste de hiperparámetros.
Con la secuencia de comandos, se importa la biblioteca hypertune
. Ten en cuenta que el Dockerfile del paso 1 incluía instrucciones para instalar la biblioteca mediante pip.
La función get_args()
define un argumento de línea de comandos para cada hiperparámetro que deseas ajustar. En este ejemplo, los hiperparámetros que se ajustarán serán la tasa de aprendizaje, el valor de momentum en el optimizador y la cantidad de neuronas en la última capa oculta del modelo, pero puedes experimentar con otros si lo deseas. El valor que se pasa en dichos argumentos luego se usa para configurar el hiperparámetro correspondiente en el código.
Al final de la función main()
, se usa la biblioteca hypertune
para definir la métrica que deseas optimizar. En TensorFlow, el método model.fit
de Keras devuelve un objeto History
. El atributo History.history
es un registro de los valores de pérdida en el entrenamiento y los valores de métricas en ciclos de entrenamiento consecutivos. Si pasas datos de validación a model.fit
, el atributo History.history
también incluirá valores de métricas y de pérdida de validación.
Por ejemplo, si entrenas un modelo para tres ciclos de entrenamiento con datos de validación y con accuracy
definida como una métrica, el atributo History.history
sería similar al siguiente diccionario.
Si quieres que el servicio de ajuste de hiperparámetros descubra qué valores maximizan la exactitud de la validación del modelo, debes definir la métrica como la última entrada (o NUM_EPOCS - 1
) de la lista val_accuracy
. Luego, pasa esta métrica a una instancia de HyperTune
. Puedes seleccionar cualquier cadena para hyperparameter_metric_tag
, pero deberás volver a usarla cuando inicies el trabajo de ajuste de hiperparámetros.
Haz clic en Revisar mi progreso para verificar el objetivo.
your-cloud-project
por el ID del proyecto:gcloud config list --format 'value(core.project)'
en la terminal.Ahora que enviaste el contenedor a Container Registry, puedes iniciar el trabajo de ajuste de hiperparámetros para un modelo personalizado.
Haz clic en Revisar mi progreso para verificar el objetivo.
En este lab, se usa un entrenamiento personalizado con un contenedor personalizado en Google Container Registry, pero también puedes ejecutar un trabajo de ajuste de hiperparámetros con los contenedores creados previamente.
Haz clic en Entrenar un modelo nuevo para ingresar los parámetros del trabajo de ajuste de hiperparámetros:
horses-humans-hyptertune
(o el nombre que quieras) en Nombre del modelo.En el paso Contenedor de entrenamiento, selecciona Contenedor personalizado:
gcr.io/<your-cloud-project>/horse-human:hypertune
, con el nombre de tu proyecto. Deja el resto de los campos en blanco y haz clic en Continuar.A continuación, deberás agregar los hiperparámetros que configuraste como argumentos de la línea de comandos en el código de entrenamiento de la aplicación. Cuando agregues un hiperparámetro, primero deberás proporcionar el nombre. Este debe coincidir con el nombre del argumento que pasaste a argparse
.
En Nombre del parámetro, ingresa learning_rate
.
En Tipo, selecciona Doble.
Ingresa 0.01
en Mínimo y 1
en Máximo.
En Escalamiento, selecciona Registro.
Haz clic en LISTO.
Después de agregar el hiperparámetro learning_rate
, agrega los parámetros para momentum
y num_neurons
.
Para momentum:
momentum
.0
en Mínimo y 1
en Máximo.Para num_neurons:
num_neurons
.64,128,512
en Valores.Después de agregar los hiperparámetros, deberás proporcionar la métrica que deseas optimizar y el objetivo. Debe ser igual al argumento hyperparameter_metric_tag que configuraste en la aplicación de entrenamiento.
Exactitud
en Métrica que se optimizará.El servicio de ajuste de hiperparámetros de Vertex AI ejecutará múltiples pruebas de tu aplicación de entrenamiento con los valores que configuraste en los pasos anteriores. Deberás establecer un límite superior para la cantidad de pruebas que ejecutará el servicio.
Si se realizan más pruebas, se obtendrán mejores resultados, pero habrá un punto en el que habrá menos resultados y las pruebas adicionales tendrán un efecto nulo o muy bajo en la métrica que intentas optimizar. Se recomienda comenzar con una cantidad más pequeña de pruebas para tener una idea del impacto de los hiperparámetros elegidos antes de aumentar a una gran cantidad de pruebas.
También deberás establecer un límite superior para la cantidad de pruebas paralelas. Si las aumentas, se reducirá el tiempo que tarda el trabajo de ajuste de hiperparámetros en completarse; sin embargo, esta acción puede reducir su eficacia general. Esto se debe a que la estrategia de ajuste predeterminada utiliza los resultados de pruebas anteriores para asignar los valores en las pruebas posteriores. Si ejecutas demasiadas pruebas en paralelo, algunas no se beneficiarán de los resultados de las que ya están en curso.
A los efectos de ofrecer una demostración, puedes establecer la Cantidad máxima de pruebas en 15
, y la Cantidad máxima de pruebas paralelas en 3
. Puedes experimentar con distintas cantidades, aunque esto puede aumentar el tiempo de ajuste y el costo.
Selecciona Predeterminado en Algoritmo, el cual utilizará Google Vizier para efectuar una optimización bayesiana en el ajuste de hiperparámetros. Puedes obtener más información sobre este algoritmo en el blog Hyperparameter tuning in Cloud Machine Learning Engine using Bayesian Optimization.
Haz clic en Continuar.
En Procesamiento y precios, no cambies la región seleccionada y, en Configuración de procesamiento, selecciona Implementa en un grupo de trabajadores nuevo.
Configura el Grupo de trabajadores 0 (Worker pool 0) de la siguiente manera:
100
.Cuando termine, podrás hacer clic en el nombre del trabajo y ver los resultados de las pruebas de ajuste.
Haz clic en Revisar mi progreso para verificar el objetivo.
Si quieres continuar usando el notebook que creaste en este lab, te recomendamos que lo desactives cuando no lo utilices. En la IU de Notebooks de la consola de Cloud, selecciona el notebook y, luego, haz clic en Detener.
Si quieres borrar el notebook, haz clic en el botón Borrar en la parte superior derecha.
Para borrar el bucket de Storage, ve al menú de navegación > Cloud Storage, selecciona el bucket y haz clic en Borrar.
Aprendiste a usar Vertex AI para hacer lo siguiente:
Iniciar un trabajo de ajuste de hiperparámetros para entrenar el código de un contenedor personalizado. En este ejemplo, usaste un modelo de TensorFlow, pero puedes entrenar un modelo creado con cualquier framework a través de contenedores personalizados o integrados. Para obtener más información sobre las distintas partes de Vertex, consulta la documentación de Vertex AI.
Cuando haya completado su lab, haga clic en Finalizar lab. Qwiklabs quitará los recursos que usó y limpiará la cuenta por usted.
Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.
La cantidad de estrellas indica lo siguiente:
Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.
Copyright 2020 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.
Este contenido no está disponible en este momento
Te enviaremos una notificación por correo electrónico cuando esté disponible
¡Genial!
Nos comunicaremos contigo por correo electrónico si está disponible
One lab at a time
Confirm to end all existing labs and start this one