En esta página se explica cómo obtener predicciones de Vertex AI a partir de datos de comercio minorista exportados a BigQuery. Proporcionamos varios bloques de código SQL para ayudarle a transformar los datos de productos y eventos de usuario del comercio en un formato que pueda usar Vertex AI. Estos bloques de código van seguidos de procedimientos para la consola de Vertex AI con el fin de crear un conjunto de datos, entrenar un modelo y, a continuación, generar una previsión.
Antes de empezar
Para poder generar previsiones de ventas con sus datos de comercio, debe hacer lo siguiente:
Sube tus datos de comercio con Vertex AI Search para el sector del comercio. Para obtener más información, consulta:
Exporta tus datos de comercio minorista de Vertex AI Search para el comercio a BigQuery. De esta forma, tendrás una tabla de productos y una tabla de eventos de usuario en BigQuery, que podrás usar en los siguientes procedimientos. Para obtener más información, consulta Exportar datos a BigQuery.
Si los datos de eventos de sus productos y usuarios ya están en BigQuery con el formato de Vertex AI Search para comercio, puede usarlos para generar previsiones de ventas a partir de datos de comercio. En este caso, no es necesario que suba sus datos de comercio y los exporte a BigQuery. Para obtener más información sobre el formato, consulta Esquema de producto y Acerca de los eventos de usuario.
Asegúrate de que se te ha concedido el rol de
roles/aiplatform.user
de gestión de identidades y accesos para poder llevar a cabo los procedimientos con la consola de Vertex AI.
Crear una tabla de ventas agregada
El código SQL de esta sección transforma la tabla de eventos de usuario en una tabla de ventas agregada. Esto significa que, para cada producto de la tabla de eventos de usuario que se haya vendido al menos una vez, la cantidad de ventas del producto se agrega durante un periodo semanal. Además, el código SQL hace lo siguiente:
En el caso de cualquier producto de la tabla de eventos de usuario, si faltan marcas de tiempo entre la primera venta del producto en la tabla y la última venta de cualquier producto de la tabla, cada una de las marcas de tiempo que falten se rellenará con una fila nueva con cero ventas. De esta forma, se eliminan las lagunas en el historial de ventas.
Si no hay al menos un producto en la tabla de eventos de usuario que tenga al menos 20 marcas de tiempo, se elige un producto de la tabla al azar y se rellena con suficientes filas (cada una con cero ventas) para alcanzar las 20 marcas de tiempo. Esto se debe a que Vertex AI requiere al menos 20 marcas de tiempo para entrenar un modelo.
Para crear una tabla de ventas agregadas, sigue estos pasos:
Sustituye las variables del siguiente código de ejemplo de SQL de la siguiente manera:
starting_day_of_week. El día en el que empieza la semana. Valores válidos:
MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,SATURDAY
,SUNDAY
.rdm_user_event_table. Los IDs del proyecto, el conjunto de datos y la tabla de eventos de usuario que ha exportado a BigQuery. El formato es
project_id.dataset_id.table_id
.rdm_product_table. Los IDs del proyecto, el conjunto de datos y la tabla del producto que ha exportado a BigQuery. El formato es
project_id.dataset_id.table_id
.aggregated_sales_table. Los IDs del proyecto, el conjunto de datos y la tabla de BigQuery de la nueva tabla de ventas agregadas. Usa el mismo ID de proyecto que las tablas de eventos de producto y de usuario. Usa el ID de un conjunto de datos que ya tengas. Especifica un ID de tabla, pero no uses el ID de una tabla que ya exista, a menos que quieras sobrescribirla. El formato es
project_id.dataset_id.table_id
.
Copia el código de ejemplo de SQL.
Abre la página de BigQuery en la Google Cloud consola.
Si aún no lo ha hecho, seleccione el proyecto que contenga las tablas de eventos de producto y de usuario.
En el panel Editor, pega el código de ejemplo de SQL.
Haz clic en
Ejecutar y espera a que se complete la consulta.
La nueva tabla de ventas agregadas se escribe en la ubicación de BigQuery que hayas definido con la variable aggregated_sales_table.
Procesar la tabla de productos
El código SQL de esta sección actúa en la tabla de productos que ha exportado a BigQuery. Elimina los campos repetidos y de estructura, y desanida el campo price_info en sus campos secundarios. Esto es obligatorio porque Vertex AI no acepta listas ni estructuras anidadas. El resultado es la tabla de productos procesados.
Para procesar la tabla de productos, sigue estos pasos:
Sustituye las variables del siguiente código de ejemplo de SQL de la siguiente manera:
rdm_product_table. Los IDs del proyecto, el conjunto de datos y la tabla del producto que ha exportado a BigQuery. El formato es
project_id.dataset_id.table_id
.processed_product_table. Los IDs del proyecto, el conjunto de datos y la tabla de BigQuery de la nueva tabla de productos procesados. Usa el mismo ID de proyecto que las tablas de eventos de producto y de usuario. Usa el ID de un conjunto de datos que ya tengas. Especifica un ID de tabla, pero no uses el ID de una tabla que ya exista, a menos que quieras sobrescribirla. El formato es
project_id.dataset_id.table_id
.
CREATE OR REPLACE TABLE `PROCESSED_PRODUCT_TABLE` AS SELECT * EXCEPT (id, attributes, price_info, rating, expire_time, available_time, fulfillment_info, images, audience, color_info, promotions, publish_time, retrievable_fields, categories, brands, conditions, sizes, collection_member_ids, tags, materials, patterns), id as sku, price_info.price as price_info_price, price_info.currency_code as price_info_currency_code, price_info.cost as price_info_cost, FROM `RDM_PRODUCT_TABLE`
Copia el código de ejemplo de SQL.
Abre la página de BigQuery en la Google Cloud consola.
Si aún no lo ha hecho, seleccione el proyecto que contenga las tablas de eventos de producto y de usuario.
En el panel Editor, pega el código de ejemplo de SQL.
Haz clic en
Ejecutar y espera a que se complete la consulta.
La nueva tabla de productos procesados se escribe en la ubicación de BigQuery que hayas definido con la variable processed_product_table.
Crear una tabla de predicción de eventos
El código SQL de esta sección extrae cada SKU que se ha vendido al menos una vez en la tabla de eventos de usuario. El código crea una tabla de predicción de eventos que contiene todos los SKUs extraídos en todas las marcas de tiempo futuras. Las marcas de tiempo futuras son una matriz de marcas de tiempo semanales continuas que empiezan en la última semana de la tabla de eventos de usuario + 1 semana y terminan en la última semana de la tabla de eventos de usuario + future_length semanas. El valor de future_length es el número de semanas en el futuro que quieres que prediga el modelo. Cada fila de la tabla de predicción de eventos se puede identificar de forma única mediante un SKU y una marca de tiempo.
Para crear una tabla de predicción de eventos, siga estos pasos:
Sustituye las variables del siguiente código de ejemplo de SQL de la siguiente manera:
starting_day_of_week. El día en el que empieza la semana. Valores válidos:
MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,SATURDAY
,SUNDAY
.rdm_user_event_table. Los IDs del proyecto, el conjunto de datos y la tabla de eventos de usuario que ha exportado a BigQuery. El formato es
project_id.dataset_id.table_id
.events_prediction_table. Los IDs del proyecto, el conjunto de datos y la tabla de BigQuery de la nueva tabla de predicción de eventos. Usa el mismo ID de proyecto que las tablas de eventos de producto y de usuario. Usa el ID de un conjunto de datos que ya tengas. Especifica un ID de tabla, pero no uses el ID de una tabla que ya exista, a menos que quieras sobrescribirla. El formato es
project_id.dataset_id.table_id
.rdm_product_table. Los IDs del proyecto, el conjunto de datos y la tabla del producto que ha exportado a BigQuery. El formato es
project_id.dataset_id.table_id
.future_length. El número de semanas posteriores a la última semana de la tabla de eventos de usuario que el modelo predecirá.
Copia el código de ejemplo de SQL.
Abre la página de BigQuery en la Google Cloud consola.
Si aún no lo ha hecho, seleccione el proyecto que contenga las tablas de eventos de producto y de usuario.
En el panel Editor, pega el código de ejemplo de SQL.
Haz clic en
Ejecutar y espera a que se complete la consulta.
La nueva tabla de predicciones de eventos se escribe en la ubicación de BigQuery que hayas definido con la variable events_prediction_table.
Crear una tabla de entrenamiento de Vertex AI
El código SQL de esta sección combina la tabla de ventas agregadas con la tabla de productos procesados. El resultado es una tabla de entrenamiento de Vertex AI, que Vertex AI usa para entrenar el modelo.
Para crear una tabla de entrenamiento de Vertex AI, sigue estos pasos:
Sustituye las variables del siguiente código de ejemplo de SQL de la siguiente manera:
vertex_ai_training_table. Los IDs de proyecto, conjunto de datos y tabla de BigQuery de la nueva tabla de entrenamiento de Vertex AI. Usa el mismo ID de proyecto que las tablas de eventos de producto y de usuario. Usa el ID de un conjunto de datos que ya tengas. Especifica un ID de tabla, pero no uses el ID de una tabla que ya exista a menos que quieras sobrescribirla. El formato es
project_id.dataset_id.table_id
.aggregated_sales_table. Los IDs del proyecto, del conjunto de datos y de la tabla de BigQuery de la tabla de ventas agregadas, que creó en Crear una tabla de ventas agregadas.
processed_product_table. Los IDs del proyecto, el conjunto de datos y la tabla de BigQuery de la tabla de productos procesada que ha creado en Procesar la tabla de productos.
CREATE OR REPLACE TABLE `VERTEX_AI_TRAINING_TABLE` AS SELECT t1.*, t2.* EXCEPT(sku) FROM `AGGREGATED_SALES_TABLE` AS t1 LEFT JOIN `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
Copia el código de ejemplo de SQL.
Abre la página de BigQuery en la Google Cloud consola.
Si aún no lo ha hecho, seleccione el proyecto que contenga las tablas de eventos de producto y de usuario.
En el panel Editor, pega el código de ejemplo de SQL.
Haz clic en
Ejecutar y espera a que se complete la consulta.
La nueva tabla de entrenamiento de Vertex AI se escribe en la ubicación de BigQuery que hayas definido con la variable vertex_ai_training_table.
Crear una tabla de predicción de Vertex AI
El código SQL de esta sección añade la tabla de predicción de eventos a la tabla de ventas agregada y, a continuación, la combina con la tabla de productos procesados. El resultado es la tabla de predicciones de Vertex AI, que se usa para crear una previsión.
Para crear una tabla de predicción de Vertex AI, sigue estos pasos:
Sustituye las variables del siguiente código de ejemplo de SQL de la siguiente manera:
vertex_ai_prediction_table. Los IDs del proyecto, el conjunto de datos y la tabla de BigQuery de la nueva tabla de predicciones de Vertex AI. Usa el mismo ID de proyecto y de conjunto de datos que usaste para las tablas de eventos de producto y de usuario. No uses el ID de una tabla que ya exista a menos que quieras sobrescribirla. El formato es
project_id.dataset_id.table_id
.aggregated_sales_table. Los IDs de proyecto, conjunto de datos y tabla de BigQuery de la tabla de ventas agregadas que creaste en Crear una tabla de ventas agregadas.
processed_product_table. Los IDs del proyecto, el conjunto de datos y la tabla de BigQuery de la tabla de productos procesada que ha creado en Procesar la tabla de productos.
events_prediction_table. Los IDs del proyecto, el conjunto de datos y la tabla de BigQuery de la tabla de predicción de eventos que has creado en Crear una tabla de predicción de eventos.
CREATE OR REPLACE TABLE `VERTEX_AI_PREDICTION_TABLE` AS WITH append_predict_to_history AS ( SELECT add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity, last_day_of_week, quantity, search_quantity, sku FROM `AGGREGATED_SALES_TABLE` UNION ALL SELECT NULL AS add_to_cart_quantity, NULL AS category_page_view_quantity, NULL AS detail_page_view_quantity, last_day_of_week, NULL AS quantity, NULL AS search_quantity, sku FROM `EVENTS_PREDICTION_TABLE` ) SELECT t1.*, t2.* EXCEPT(sku) FROM append_predict_to_history AS t1 LEFT JOIN `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
Copia el código de ejemplo de SQL.
Abre la página de BigQuery en la Google Cloud consola.
Si aún no lo ha hecho, seleccione el proyecto que contenga las tablas de eventos de producto y de usuario.
En el panel Editor, pega el código de ejemplo de SQL.
Haz clic en
Ejecutar y espera a que se complete la consulta.
La nueva tabla de predicciones de Vertex AI se escribe en la ubicación de BigQuery que hayas definido con la variable vertex_ai_prediction_table.
Crear un conjunto de datos de Vertex AI
En esta sección se explica cómo crear un conjunto de datos de Vertex AI que puedes usar para entrenar un modelo de previsión. Para obtener más información, consulta el artículo Crear un conjunto de datos para entrenar modelos de previsión en la documentación de Vertex AI.
Para crear un conjunto de datos de Vertex AI, sigue estos pasos:
En la Google Cloud consola, en la sección Vertex AI, ve a la página Conjunto de datos.
Haz clic en Crear para abrir la página Crear conjunto de datos.
En el campo Nombre del conjunto de datos, escribe el nombre del nuevo conjunto de datos.
Selecciona la pestaña Tabular.
Seleccione el objetivo Previsión.
En la lista Región, seleccione la región que usó al crear un conjunto de datos para exportar sus datos de comercio a BigQuery. Si seleccionaste us al crear tu conjunto de datos de BigQuery, puedes seleccionar cualquier región de Estados Unidos. Del mismo modo, si seleccionó eu al crear su conjunto de datos de BigQuery, puede seleccionar cualquier región de la Unión Europea. Para obtener más información, consulta el artículo sobre cómo exportar tus datos a BigQuery.
Haz clic en Crear para crear el conjunto de datos vacío y ve a la pestaña Origen.
Selecciona Selecciona una tabla o vista de BigQuery.
En Select a table or view from BigQuery (Seleccionar una tabla o una vista de BigQuery), introduce los IDs del proyecto, del conjunto de datos y de la tabla de entrenamiento de Vertex AI que has creado en Crear una tabla de entrenamiento de Vertex AI. El formato es
project_id.dataset_id.table_id
.Haz clic en Continuar.
La fuente de datos está asociada al conjunto de datos.
En la pestaña Analizar, seleccione sku en la lista Columna de identificador de serie y last_day_of_week en la lista Columna de marca de tiempo.
Haga clic en Entrenar nuevo modelo para ir a la página Entrenar nuevo modelo. Para obtener instrucciones sobre cómo entrenar tu modelo, consulta Entrenar un modelo de previsión.
Entrenar un modelo de previsión
En esta sección se explica cómo entrenar un modelo de previsión con el conjunto de datos que has creado en Crear un conjunto de datos de Vertex AI. Para obtener más información, consulta Entrenar un modelo de previsión en la documentación de Vertex AI.
Antes de empezar
Antes de entrenar un modelo de previsión, debes crear un conjunto de datos de Vertex AI.
Preparar un modelo
En la página Método de entrenamiento, selecciona el método de entrenamiento del modelo. Para obtener información sobre los métodos de entrenamiento, consulta Entrenar un modelo en la documentación de Vertex AI.
Haz clic en Continuar.
En la página Detalles del modelo, configura los siguientes parámetros:
Seleccione Entrenar nuevo modelo si aún no lo ha hecho.
Introduce un nombre para el nuevo modelo.
Seleccione cantidad (INTEGER) en la lista Columna de destino.
En la lista Granularidad de los datos, seleccione Semanal.
Introduce los valores de Ventana de contexto y Horizonte de previsión.
El horizonte de previsión determina hasta qué punto en el futuro el modelo pronostica el valor objetivo de cada fila de datos de predicción. El horizonte de previsión se especifica en unidades de granularidad de los datos.
La ventana de contexto define cuánto tiempo hacia atrás consulta el modelo durante el entrenamiento (y para las previsiones). Es decir, en cada punto de datos de entrenamiento, la ventana de contexto determina cuánto tiempo atrás busca el modelo patrones predictivos. Si no especifica una ventana de contexto, se usará el valor predeterminado de Horizonte de previsión. La ventana de contexto se especifica en unidades de granularidad de los datos.
Para obtener más información, consulta las consideraciones para definir la ventana de contexto y el horizonte de previsión en la documentación de Vertex AI.
Haz clic en Continuar.
En la página Opciones de entrenamiento, configure los ajustes de la siguiente manera. Ten en cuenta que, si la flecha desplegable
está en gris o no aparece, el valor no se puede cambiar.Seleccione un valor de Transformación para las columnas de la lista Nombre de columna de la siguiente manera:
Si el valor de Tipo de BigQuery es Float, Integer o Numeric, asigna el valor Numeric a Transformación.
Si el valor de Tipo de BigQuery es Cadena o Booleano, asigna el valor Categórico a Transformación.
Si el valor de Tipo de BigQuery es Fecha, asigna el valor Marca de tiempo a Transformación.
Seleccione un valor de Tipo de función para las columnas de la lista Nombre de columna de la siguiente manera:
En add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity y search_quantity, asigna el valor Covariate a Feature type.
De las columnas restantes, en las que se pueda cambiar el valor, defina el Tipo de función como Atributo.
Seleccione un valor de Disponible en la previsión para las columnas de la lista Tipo de columna de la siguiente manera:
En el caso de add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity y search_quantity, asigne el valor No disponible al atributo Disponibilidad en la previsión.
De las columnas restantes, en las que se puedan cambiar, asigne el valor Disponible a Tipo de función.
Haz clic en Continuar.
En la página Procesamiento y precios, indica el número máximo de horas que quieres que se entrene tu modelo. Este ajuste te ayuda a limitar los costes de entrenamiento. El tiempo transcurrido real puede ser superior a este valor porque hay otras operaciones implicadas en la creación de un modelo. Para obtener información sobre el tiempo que se puede necesitar para entrenar modelos de alta calidad, consulta Entrenar un modelo en la documentación de Vertex AI.
Haz clic en Iniciar entrenamiento.
El entrenamiento del modelo puede llevar muchas horas, en función del tamaño y la complejidad de los datos, así como del presupuesto de entrenamiento, si has especificado uno. Puedes cerrar esta pestaña y volver a ella más adelante. Recibirás un correo cuando tu modelo haya terminado de entrenarse. Si quieres monitorizar el progreso del entrenamiento del modelo, consulta Monitorizar el progreso del entrenamiento.
Monitorizar el progreso de tu entrenamiento
En la Google Cloud consola, en la sección Vertex AI, ve a la página Entrenamiento.
Si aún no lo ha hecho, seleccione la pestaña Pipelines de entrenamiento. El modelo que estás entrenando debería aparecer en la lista. El entrenamiento habrá finalizado cuando el estado cambie de Entrenando a Finalizado.
Crear una previsión
En esta página se explica cómo crear una previsión con el modelo que ha entrenado en Entrenar un modelo de previsión.
Antes de empezar
Para crear una previsión, primero debes entrenar un modelo de previsión.
Enviar una solicitud de predicción por lotes a tu modelo
En la Google Cloud consola de Cloud, en la sección Vertex AI, ve a la página Predicciones por lotes.
Haga clic en Crear para abrir la ventana Nueva predicción por lotes y siga estos pasos:
Escribe un nombre para la predicción por lotes.
En la lista Nombre del modelo, seleccione el modelo que ha entrenado en Entrenar un modelo de previsión.
En la lista Versión, selecciona la versión del modelo.
En Seleccionar fuente:
Seleccione Tabla de BigQuery si aún no está seleccionada.
Introduce los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la tabla de predicciones de Vertex AI que has creado en Crear una tabla de predicciones de Vertex AI. El formato es
project_id.dataset_id.table_id
.
En Salida de predicción por lotes:
En la lista Formato de salida, seleccione Tabla de BigQuery.
Introduzca los IDs del proyecto y del conjunto de datos de BigQuery de la tabla de salida de predicciones por lotes que esté creando. Use el mismo ID de proyecto y de conjunto de datos que usó para las tablas de eventos de producto y de usuario. El formato es
project_id.dataset_id.
.
Haz clic en Crear. Aparecerá la página Predicciones por lotes.
La predicción se completa cuando el estado cambia de Pendiente a Finalizado. También recibirás un correo cuando se haya completado la predicción por lotes. El resultado de tu solicitud de predicción por lotes se devuelve en el conjunto de datos del proyecto de BigQuery que hayas especificado. El nombre de la nueva tabla de salida es "predictions_" seguido de la marca de tiempo de cuando se inició la tarea de predicción. Para obtener más información sobre cómo recuperar e interpretar los resultados de las previsiones, consulta los artículos Recuperar resultados de predicciones por lotes e Interpretar resultados de previsiones en la documentación de Vertex AI.