Predicción de calificaciones de películas con AutoML de Vertex AI

1. Introducción

En este codelab, crearemos un modelo de predicción de puntuaciones de películas con AutoML de Vertex AI y activaremos el extremo del modelo implementado desde Cloud Functions para Java. El modelo se entrena con datos almacenados en BigQuery y registrados en Vertex AI. La lista de servicios puede dividirse en dos secciones:

  1. Creación e implementación de modelos de AA
  2. Activador para predecir con la API de AA

Creación del modelo de AA:

  1. Datos procedentes de CSV a BigQuery
  2. Datos de BigQuery integrados en Vertex AI para la creación de modelos de AutoML
  3. Modelo implementado en Vertex AI Model Registry para generar la API de extremos

Activador para predecir con la API de AA:

  1. Cloud Functions de Java para activar la invocación del extremo del modelo de AutoML implementado que toma los detalles de la película como solicitud de la IU y muestra el PUNTAJE de la película previsto

A continuación, se muestra una descripción general de la arquitectura de alto nivel de la aplicación:

5ae50607c0f2db20.png

La aplicación de la arquitectura anterior está fuera del alcance de este codelab, pero si también deseas desarrollar la aplicación cliente, consulta el blog.

Analicemos los pasos de implementación.

Qué compilarás

Crearás un

  • Un conjunto de datos de BigQuery que contenga los componentes de la tabla y del modelo
  • Modelo de AutoML de Vertex AI (crear e implementar)
  • Activador de Cloud Functions para Java para predecir con la API de AA

2. Requisitos

  • Un navegador, como Chrome o Firefox.
  • Un proyecto de Google Cloud con la facturación habilitada.

Estos son los requisitos previos:

Crea tu proyecto

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.
  3. Navega a BigQuery para habilitar la API. También puedes abrir la IU web de BigQuery directamente ingresando la siguiente URL en tu navegador: https://console.cloud.google.com/bigquery

Activa Cloud Shell

  1. Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud y que viene precargado con bq. En la consola de Cloud, haz clic en Activar Cloud Shell, en la esquina superior derecha: 6757b2fb50ddcc2d.png
  2. Una vez que te conectes a Cloud Shell, deberías ver que ya se te autenticó y que el proyecto ya se configuró con el ID de tu proyecto. En Cloud Shell, ejecuta el siguiente comando para confirmar que tienes la autenticación:
gcloud auth list
  1. En Cloud Shell, ejecuta el siguiente comando para confirmar que el comando gcloud conoce tu proyecto.
gcloud config list project
  1. Si tu proyecto no está configurado, usa el siguiente comando para hacerlo:
gcloud config set project <PROJECT_ID>

Consulta la documentación para ver los comandos y el uso de gcloud.

3. Cómo preparar los datos de entrenamiento

Este es un paso importante en todos los proyectos, productos y apps relacionados con datos que requiere mucha experiencia en el área, además de la tecnología para preparar un conjunto de datos óptimo y prepararlo para tu proyecto de AA. Para los fines de este codelab, supondremos que los datos ya están preparados y usaremos este archivo de datos ya procesado.

4. Crea y carga el conjunto de datos

Un conjunto de datos de BigQuery es una colección de tablas. Todas las tablas en un conjunto de datos se almacenan en la misma ubicación de datos. También puedes adjuntar controles de acceso personalizados para limitar el acceso a un conjunto de datos y sus tablas.

  1. En Cloud Shell, usa el comando bq mk para crear un conjunto de datos llamado “movies”.
bq mk --location=<<LOCATION>> movies

Establece la ubicación como una región (asia-south1). Recuerda configurarla también como la región para el paso de VERTEX AI (ambas instancias deben estar en la misma región).

  1. Asegúrate de tener el archivo de datos (.csv) listo. Ejecuta los siguientes comandos en Cloud Shell para clonar el repositorio y navegar al proyecto:
git clone <<repository link>>

cd movie-score
  1. Usa el comando bq load para cargar tu archivo CSV en una tabla de BigQuery (ten en cuenta que también puedes subirlo directamente desde la IU de BigQuery):
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
  1. Realiza consultas de una de las siguientes 3 maneras:

Podemos interactuar con BigQuery de tres maneras. Probaremos dos de ellas: a. IU web de BigQuery b. El comando de bq c. API

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

Usé el espacio de trabajo de BigQuery Web SQL para ejecutar consultas. El lugar de trabajo de SQL se ve así:

109a0b2c7155e9b3.png

Usa el comando de bq:

bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

5. Usa datos de BigQuery en Vertex AI AutoML

Usa tus datos de BigQuery para crear directamente un modelo de AutoML con Vertex AI. Recuerda que también podemos ejecutar AutoML desde BigQuery, registrar el modelo con Vertex AI y exponer el extremo. Consulta la documentación de BigQuery AutoML. Sin embargo, en este ejemplo usaremos Vertex AI AutoML para crear nuestro modelo.

Crea un conjunto de datos de Vertex AI

Ve a Vertex AI desde la consola de Google Cloud, habilita la API de Vertex AI si aún no lo hiciste, expande los datos y selecciona Conjuntos de datos, haz clic en Crear conjunto de datos, selecciona el tipo de datos TABULAR y la opción “Regresión / clasificación” y haz clic en Crear:

4104c75c34cbd2d9.png

Seleccionar fuente de datos

En la página siguiente, selecciona una fuente de datos. Elige la opción “Seleccionar una tabla o vista de BigQuery” y selecciona la tabla de BigQuery en el campo EXPLORAR la ruta de acceso de BigQuery. Haz clic en Continuar.

Recuerda: La instancia de BigQuery y los conjuntos de datos de Vertex AI deben tener la misma región para que la tabla de BigQuery aparezca en Vertex AI.

b787ef18dbca4cff.png

Cuando selecciones la tabla o vista de origen, en la lista de exploración, recuerda hacer clic en el botón de selección para continuar con los pasos que se indican a continuación. Si haces clic por accidente en el nombre de la tabla o vista, se te redireccionará a Dataplex. Solo debes volver a navegar a Vertex AI si esto te sucede.

Entrena el modelo

  1. Una vez creado el conjunto de datos, deberías ver la página Analizar con la opción de entrenar un modelo nuevo. Haz clic en el siguiente vínculo:

bf095263d57106de.png

  1. Deje Objetivo como Clasificación, seleccione la opción AutoML en la primera página y haga clic en Continuar: e50597bc3f29894c.png
  2. Asígnale un nombre al modelo y selecciona el nombre de la columna objetivo como “Puntuación”. en el menú desplegable que aparece y haz clic en Continuar.
  3. Además, ten en cuenta que puedes marcar la casilla “Export test dataset to BigQuery” que facilita ver el conjunto de prueba con resultados en la base de datos de forma eficiente, sin una capa de integración adicional ni la necesidad de mover datos entre servicios.
  4. En la página siguiente, tienes la opción de seleccionar cualquier opción de entrenamiento avanzada que necesites y las horas en las que deseas configurar el modelo para que se entrene. Ten en cuenta que te recomendamos considerar los precios antes de aumentar la cantidad de horas de procesamiento de nodo que quieres usar para el entrenamiento.

Haz clic en Comenzar el entrenamiento para empezar a entrenar tu modelo nuevo.

e72b004a17849bd.png

Evalúa, implementa y prueba el modelo

Una vez que se complete el entrenamiento, deberías poder hacer clic en Entrenamiento (en el encabezado Desarrollo de modelos en el menú del lado izquierdo) y verlo en la sección Canalizaciones de entrenamiento. Haz clic en esa opción para acceder a la página Registro de modelos. Deberías ser capaz de hacer lo siguiente:

  1. Visualiza y evalúa los resultados del entrenamiento 4767b4bbd7cf93fa.png
  2. Implementa y prueba el modelo con el extremo de tu API

Una vez que implementas el modelo, se crea un extremo de API que puede usarse en tu aplicación para enviar solicitudes y obtener resultados de predicción del modelo en la respuesta.

95fb4495618174f0.png

Antes de continuar con esta sección, asegúrate de tomar nota del ID del extremo, la ubicación y otros detalles del modelo implementado en la sección del extremo de Vertex AI.

6. Cloud Function de Java para activar la invocación del AA

¿Recuerdas que tenemos el extremo y otros detalles del paso de implementación del AA? Lo usaremos aquí y, como usamos Java Cloud Functions, usaremos pom.xml para manejar las dependencias. Usamos la biblioteca google-cloud-aiplatform para consumir la API de extremo de AutoML de Vertex AI.

  1. Busca Cloud Functions en la consola de Google Cloud y haz clic en “Crear función”.
  2. Ingresa los detalles de configuración, como el entorno, el nombre de la función, la región, el activador (en este caso, HTTPS), la autenticación que prefieras y habilita la opción “Solicitar HTTPS”. y haz clic en Siguiente/Guardar

a68272022df062f2.png

  1. En la página siguiente, selecciona Entorno de ejecución (Java 11), Código fuente (Intercalado o carga) y comienza a editar.

13df616369ca5951.png

  1. Copia los archivos java y pom.xml del repositorio y pégalos en los archivos correspondientes en el editor directo. Si usas el editor local (recomendado), clona el código fuente del repositorio.
  2. Cambia el ID del proyecto, el ID del extremo, la ubicación y el extremo en el archivo fuente .java de este ejemplo, pero ten en cuenta que la práctica recomendada es usar Secret Manager para almacenar credenciales
  3. Para el alcance de este codelab, comenta las partes de MongoDB en la clase .java en el código fuente copiado.

Implementa la función cuando se completen todos los cambios. Deberías ver la URL del extremo que se puede usar en tu aplicación cliente para enviar solicitudes a esta Cloud Function y recibir la puntuación de película como respuesta.

7. Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta publicación:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.
  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.

8. Felicitaciones

¡Felicitaciones! Creaste e implementaste correctamente un modelo de predicción de puntuación de películas en Vertex AI AutoML y activaste el modelo implementado desde Cloud Functions.