1. Introducción
En este codelab, crearemos un modelo de predicción de puntuación de películas con Vertex AI AutoML y haremos que el extremo del modelo implementado se active desde Cloud Functions de Java. El modelo se entrena con datos almacenados en BigQuery y registrados en Vertex AI. La lista de servicios se puede componer en dos secciones:
- Creación y la implementación de modelos de AA
- Activador para predecir con la API de ML
Creación de modelos de AA:
- Datos obtenidos de CSV a BigQuery
- Datos de BigQuery integrados en Vertex AI para la creación de modelos de AutoML
- Modelo implementado en Vertex AI Model Registry para generar la API de extremos
Activador para predecir con la API de ML:
- 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 la PUNTUACIÓN de la película predicha
A continuación, se muestra la descripción general de la arquitectura de alto nivel de la aplicación:

La aplicación de la arquitectura anterior está fuera del alcance de este codelab, pero, si deseas desarrollar la aplicación cliente, consulta el blog.
Veamos los pasos de implementación.
Qué compilarás
Crearás lo siguiente:
- Un conjunto de datos de BigQuery que contenga los componentes de la tabla y del modelo
- Modelo de Vertex AI AutoML (crear e implementar)
- Activador de Cloud Functions de Java para predecir con la API de ML
2. Requisitos
Estos son los requisitos previos:
Crea tu proyecto
- En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
- 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.
- Navega a BigQuery para habilitar la API. También puedes abrir la IU web de BigQuery directamente si ingresas la siguiente URL en el navegador: https://console.cloud.google.com/bigquery
Activa Cloud Shell
- Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud y que viene precargado con bq: En Cloud Console, haz clic en Activar Cloud Shell en la esquina superior derecha:

- Una vez que estés conectado a Cloud Shell, deberías ver que ya se autenticó y que el proyecto ya se configuró con tu ID de proyecto. En Cloud Shell, ejecuta el siguiente comando para confirmar que tienes la autenticación:
gcloud auth list
- En Cloud Shell, ejecuta el siguiente comando para confirmar que el comando gcloud conoce tu proyecto.
gcloud config list project
- 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. Prepara los datos de entrenamiento
Este es un paso importante en todos los proyectos, productos y apps relacionados con los datos que requieren mucha experiencia en el dominio, 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 de un conjunto de datos se almacenan en la misma ubicación de datos location. También puedes adjuntar controles de acceso personalizados para limitar el acceso a un conjunto de datos y sus tablas.
- En Cloud Shell, usa el comando bq mk para crear un conjunto de datos llamado "movies".
bq mk --location=<<LOCATION>> movies
Configura la ubicación en 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).
- Asegúrate de tener listo el archivo de datos (.csv). Ejecuta los siguientes comandos en Cloud Shell para clonar el repositorio y navegar al proyecto:
git clone <<repository link>>
cd movie-score
- 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
- Consulta de una de las 3 maneras:
Podemos interactuar con BigQuery de tres maneras, probaremos dos de ellas: a. IU web de BigQuery b. El comando bq c. API
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
Usé el espacio de trabajo de SQL web de BigQuery para ejecutar consultas. El espacio de trabajo de SQL se ve de la siguiente manera:

Usa el comando 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 realizar AutoML desde BigQuery y 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:

Selecciona la fuente de datos
En la siguiente página, selecciona una fuente de datos. Elige la opción "Selecciona una tabla o una vista de BigQuery" y selecciona la tabla de BigQuery en el campo NAVEGAR de la ruta 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.

Cuando selecciones tu tabla o vista de origen, en la lista de navegació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 accidentalmente en el nombre de la tabla o la vista, se te dirigirá a Dataplex. Solo debes volver a navegar a Vertex AI si esto te sucede.
Entrena el modelo
- Una vez que se cree el conjunto de datos, deberías ver la página Analizar con la opción para entrenar un modelo nuevo. Haz clic en ella:

- Deja Objetivo como Clasificación y selecciona la opción AutoML en la primera página y haz clic en Continuar:

- Asigna un nombre a tu modelo y selecciona el nombre de la columna de destino como "Puntuación" en el menú desplegable que se muestra y haz clic en Continuar.
- También ten en cuenta que puedes marcar la opción "Exportar conjunto de datos de prueba a BigQuery", lo que facilita ver el conjunto de pruebas con resultados en la base de datos de manera eficiente sin una capa de integración adicional ni tener que mover datos entre servicios.
- En la siguiente página, tienes la opción de seleccionar las opciones de entrenamiento avanzadas que necesites y las horas que deseas configurar para entrenar el modelo. Ten en cuenta que es posible que desees tener en cuenta los precios antes de aumentar la cantidad de horas de nodo que deseas usar para el entrenamiento.
Haz clic en Comenzar entrenamiento para empezar a entrenar tu modelo nuevo.

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ú de la izquierda) y ver tu entrenamiento en la sección Canalizaciones de entrenamiento. Haz clic en ella para acceder a la página Model Registry. Deberías poder hacer lo siguiente:
- Visualiza y evalúa los resultados del entrenamiento

- Implementa y prueba el modelo con tu extremo de API
Una vez que implementes tu modelo, se creará un extremo de API que se puede usar en tu aplicación para enviar solicitudes y obtener resultados de predicción del modelo en la respuesta.

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 de extremos de Vertex AI.
6. Cloud Functions de Java para activar la invocación de ML
¿Recuerdas cómo tenemos el extremo y otros detalles del paso de implementación de ML? Lo usaremos aquí y, como usamos Cloud Functions de Java, usaremos pom.xml para controlar las dependencias. Usamos la biblioteca google-cloud-aiplatform para consumir la API de extremos de Vertex AI AutoML.
- Busca Cloud Functions en la consola de Google Cloud y haz clic en "Crear función".
- Ingresa los detalles de configuración, como Entorno, Nombre de la función, Región, Activador (en este caso, HTTPS), Autenticación de tu elección, habilita "Requerir HTTPS" y haz clic en Siguiente/Guardar.

- En la siguiente página, selecciona Tiempo de ejecución (Java 11), Código fuente (intercalado o subida) y comienza a editar.

- Copia los archivos java y pom.xml del repositorio y pégalos en los archivos respectivos en el editor intercalado. Si usas tu editor local (recomendado), clona la fuente del repositorio.
- Cambia el ID del proyecto, el ID del extremo, la ubicación y el extremo en el archivo fuente .java para este ejemplo, pero ten en cuenta que la práctica recomendada es usar Secret Manager para almacenar credenciales.
- Para el alcance de este codelab, comenta las partes de MongoDB en la clase .java en tu código fuente copiado.
Continúa y, luego, implementa la función una vez que 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 la 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:
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
8. Felicitaciones
¡Felicitaciones! Creaste y, luego, 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.