Generar previsiones de ventas a partir de datos de venta minorista

En esta página, se proporciona orientación para obtener predicciones de Vertex AI, en función de los datos de venta minorista exportados a BigQuery. Proporcionamos varios bloques de código SQL para ayudarte a transformar los datos de eventos de usuarios y productos de venta minorista en un formato que Vertex AI pueda usar. Luego de estos bloques de código, se realizan procedimientos para que la consola de Vertex AI cree un conjunto de datos, entrene un modelo y, luego, genere una previsión.

Antes de comenzar

Antes de generar previsiones de ventas con tus datos de venta minorista, debes hacer lo siguiente:

  • Sube tus datos de venta minorista con Vertex AI Search para venta minorista. Para obtener más información, consulta los siguientes vínculos:

  • Exporta tus datos de venta minorista de Vertex AI Search para venta minorista a BigQuery. Esto te deja una tabla de productos y una tabla de eventos del usuario en BigQuery, que puedes usar en los siguientes procedimientos. Para obtener más información, consulta Exporta tus datos a BigQuery.

    Como alternativa, si tus datos de productos y eventos de usuario ya están en BigQuery, en el formato de Vertex AI Search para venta minorista, puedes usar esos datos para generar previsiones de ventas a partir de los datos de venta minorista. En este caso, no necesitas subir tus datos de venta minorista y exportarlos a BigQuery. Para obtener más información sobre el formato, consulta Esquema del producto y Acerca de los eventos de usuarios.

  • Asegúrate de que se te haya otorgado el rol de IAM roles/aiplatform.user para que puedas realizar los procedimientos con la consola de Vertex AI.

Crear una tabla de ventas agregadas

El código SQL en 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 vendió al menos una vez, la cantidad de ventas del producto se agrega durante un período 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 y la última venta de cualquier producto de la tabla, cada una de las marcas de tiempo faltantes se reabastecerá con una fila nueva sin ventas. Esto es para eliminar brechas 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 reabastece con suficientes filas (cada una sin ventas) para alcanzar 20 marcas de tiempo. Esto es para cumplir con el requisito de Vertex AI de tener al menos 20 marcas de tiempo cuando se entrena un modelo.

Para crear una tabla de ventas agregadas, sigue estos pasos:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • starting_day_of_week. El día en que comienza la semana. Valores válidos: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY y SUNDAY.

    • rdm_user_event_table. Los IDs del proyecto, del conjunto de datos y de la tabla de la tabla de eventos del usuario que exportaste a BigQuery. El formato es project_id.dataset_id.table_id.

    • rdm_product_table. Los IDs del proyecto, del conjunto de datos y de la tabla de la tabla del producto que exportaste a BigQuery. El formato es project_id.dataset_id.table_id.

    • aggregated_sales_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la nueva tabla de ventas agregadas. Usa el mismo ID del proyecto que las tablas de productos y eventos de usuario. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente a menos que quieras reemplazarla. El formato es project_id.dataset_id.table_id.

  2. Copia la muestra de código SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionado, selecciona el proyecto que contiene tus tablas de productos y eventos de usuario.

  5. En el panel Editor, pega la muestra de código SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

Tu nueva tabla de ventas agregadas se escribe en la ubicación de BigQuery que configuraste con la variable aggregated_sales_table.

Procesa la tabla de productos

El código SQL en esta sección actúa en la tabla de productos que exportaste a BigQuery, quita los campos repetidos y de struct, y desanida el campo price_info en sus campos secundarios. Esto es necesario 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:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • rdm_product_table. Los IDs del proyecto, del conjunto de datos y de la tabla de la tabla del producto que exportaste a BigQuery. El formato es project_id.dataset_id.table_id.

    • processed_product_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la nueva tabla de productos procesados. Usa el mismo ID del proyecto que las tablas de productos y eventos de usuario. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente a menos que quieras reemplazarla. 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`
    
  2. Copia la muestra de código SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionado, selecciona el proyecto que contiene tus tablas de productos y eventos de usuario.

  5. En el panel Editor, pega la muestra de código SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La nueva tabla de productos procesados se escribe en la ubicación de BigQuery que configuraste con la variable processed_product_table.

Crea una tabla de predicción de eventos

El código SQL en esta sección extrae cada SKU que se vendió 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 SKU extraídos de todas las marcas de tiempo futuras. Las marcas de tiempo futuras son un array de marcas de tiempo semanales continuas, que comienzan en la última semana de la tabla de eventos del usuario más 1 semana y finalizan en la última semana de la tabla de eventos del usuario + future_length semanas. Establece el valor de future_length en el número de semanas en el futuro que deseas que el modelo prediga. 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, sigue estos pasos:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • starting_day_of_week. El día en que comienza la semana. Valores válidos: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY y SUNDAY.

    • rdm_user_event_table. Los IDs del proyecto, del conjunto de datos y de la tabla de la tabla de eventos del usuario que exportaste a BigQuery. El formato es project_id.dataset_id.table_id.

    • events_prediction_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la tabla de predicción de eventos nuevos. Usa el mismo ID del proyecto que las tablas de productos y eventos de usuario. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente a menos que quieras reemplazarla. El formato es project_id.dataset_id.table_id.

    • rdm_product_table. Los IDs del proyecto, del conjunto de datos y de la tabla de la tabla del producto que exportaste a BigQuery. El formato es project_id.dataset_id.table_id.

    • future_length. La cantidad de semanas en el futuro, después de la última semana en la tabla de eventos de usuario, que el modelo predecirá.

  2. Copia la muestra de código SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionado, selecciona el proyecto que contiene tus tablas de productos y eventos de usuario.

  5. En el panel Editor, pega la muestra de código SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La tabla de predicción de eventos nuevos se escribe en la ubicación de BigQuery que configuraste con la variable events_prediction_table.

Crea una tabla de entrenamiento de Vertex AI

El código SQL en esta sección une la tabla de ventas agregadas con la tabla de productos procesados. El resultado es una tabla de entrenamiento de Vertex AI para el entrenamiento de modelos.

Sigue estos pasos para crear una tabla de entrenamiento de Vertex AI:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • vertex_ai_training_table. Los IDs del proyecto, el conjunto de datos y la tabla en BigQuery para la nueva tabla de entrenamiento de Vertex AI. Usa el mismo ID del proyecto que las tablas de productos y eventos de usuarios. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente a menos que desees reemplazarla. El formato es project_id.dataset_id.table_id.

    • aggregated_sales_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery de la tabla de ventas agregadas que creaste en Crea una tabla de ventas agregadas.

    • processed_product_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la tabla de productos procesados, que creaste en Procesa 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
    
  2. Copia la muestra de código SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionado, selecciona el proyecto que contiene tus tablas de productos y eventos de usuario.

  5. En el panel Editor, pega la muestra de código SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La tabla de entrenamiento de Vertex AI nueva se escribe en la ubicación de BigQuery que configuraste con la variable vertex_ai_training_table.

Crea una tabla de predicción de Vertex AI

El código SQL de esta sección anexa la tabla de predicción de eventos a la tabla de ventas agregadas y, luego, la une con la tabla de productos procesados. El resultado es la tabla de predicción de Vertex AI, que se usa para crear una previsión.

Sigue estos pasos para crear una tabla de predicción de Vertex AI:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • vertex_ai_prediction_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la nueva tabla de predicción de Vertex AI. Usa el mismo ID del proyecto y el mismo ID del conjunto de datos que usaste para las tablas de productos y eventos del usuario. No uses el ID de una tabla existente a menos que desees reemplazarla. El formato es project_id.dataset_id.table_id.

    • aggregated_sales_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery correspondientes a la tabla de ventas agregadas que creaste en Crea una tabla de ventas agregadas.

    • processed_product_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la tabla de productos procesados, que creaste en Procesa la tabla de productos.

    • events_prediction_table. Los IDs del proyecto, del conjunto de datos y de la tabla en BigQuery para la tabla de predicción de eventos que creaste en Crea 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
    
  2. Copia la muestra de código SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionado, selecciona el proyecto que contiene tus tablas de productos y eventos de usuario.

  5. En el panel Editor, pega la muestra de código SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La nueva tabla de predicción de Vertex AI se escribe en la ubicación de BigQuery que configuraste con la variable vertex_ai_prediction_table.

Crea un conjunto de datos de Vertex AI

En esta sección, se muestra cómo crear un conjunto de datos de Vertex AI que puedes usar para entrenar un modelo de previsión. Si quieres obtener más información, consulta Crea un conjunto de datos para entrenar modelos de previsión en la documentación de Vertex AI.

Sigue estos pasos para crear un conjunto de datos de Vertex AI:

  1. En la consola de Google Cloud, en la sección Vertex AI, ve a la página Conjunto de datos.

    Ir a la página Conjuntos de datos

  2. Haz clic en Crear para abrir la página Crear conjunto de datos.

  3. En el campo Nombre del conjunto de datos, ingresa un nombre para tu nuevo conjunto de datos.

  4. Selecciona la pestaña Tabular.

  5. Selecciona el objetivo Previsión.

  6. En la lista Región, selecciona la región que usaste cuando creaste un conjunto de datos para exportar tus datos de venta minorista a BigQuery. Si seleccionaste us cuando creaste el conjunto de datos de BigQuery, puedes elegir cualquier región de los Estados Unidos. Del mismo modo, si seleccionaste eu cuando creaste el conjunto de datos de BigQuery, puedes seleccionar cualquier región de la Unión Europea. Para obtener más información, consulta Exporta tus datos a BigQuery.

  7. Haz clic en Crear para crear el conjunto de datos vacío y avanza a la pestaña Origen.

  8. Elige Selecciona una tabla o vista de BigQuery.

  9. En Selecciona una tabla o vista de BigQuery, ingresa el proyecto, el conjunto de datos y los IDs de la tabla de la tabla de entrenamiento de Vertex AI que creaste en Crea una tabla de entrenamiento de Vertex AI. El formato es project_id.dataset_id.table_id.

  10. Haz clic en Continuar.

    Tu fuente de datos está asociada a tu conjunto de datos.

  11. En la pestaña Analizar, selecciona sku en la lista de la columna Identificador de la serie y last_day_of_week en la lista Columna de marca de tiempo.

  12. Haz clic en Entrenar un modelo nuevo para avanzar a la página Entrenar un modelo nuevo. Si deseas obtener instrucciones para entrenar tu modelo, consulta Entrena un modelo de previsión.

Entrena un modelo de previsión

En esta sección, se muestra cómo entrenar un modelo de previsión con el conjunto de datos que creaste en Crea un conjunto de datos de Vertex AI. Para obtener más información, consulta Entrena un modelo de previsión en la documentación de Vertex AI.

Antes de comenzar

Antes de entrenar un modelo de previsión, debes crear un conjunto de datos de Vertex AI.

Entrenar un modelo

  1. En la página Método de entrenamiento, selecciona el método de entrenamiento de modelos. Para obtener información sobre los métodos de entrenamiento, consulta Entrena un modelo en la documentación de Vertex AI.

    Haz clic en Continuar.

  2. En la página Detalles del modelo, configura lo siguiente:

    1. Selecciona Entrenar un modelo nuevo si todavía no está seleccionada.

    2. Ingresa un nombre para tu modelo nuevo.

    3. Selecciona la cantidad (NÚMERO ENTERO) de la lista Columna objetivo.

    4. Selecciona Semanal en la lista Nivel de detalle de los datos.

    5. Ingresa la ventana de contexto y el horizonte de previsión.

      El horizonte de previsión determina hasta qué punto del futuro el modelo predice el valor objetivo de cada fila de datos de predicción. El horizonte de previsión se especifica en unidades de Nivel de detalle de los datos.

      La ventana de contexto establece qué tan atrás debe mirar el modelo durante el entrenamiento (y para las previsiones). En otras palabras, para cada dato de entrenamiento, la ventana de contexto determina desde qué momento atrás el modelo busca patrones predictivos. Si no especificas una ventana de contexto, se usará de forma predeterminada el valor establecido para el horizonte de previsión. La ventana de contexto se especifica en unidades de nivel de detalle de los datos.

      Si deseas obtener más información, consulta Consideraciones para configurar la ventana de contexto y el horizonte de previsión en la documentación de Vertex AI.

    6. Haz clic en Continuar.

  3. Configura la página Opciones de entrenamiento como se indica a continuación. Ten en cuenta que cuando una flecha desplegable es gris, o cuando no hay una flecha desplegable, ese valor no se puede cambiar.

    1. Selecciona un valor de Transformación para las columnas en la lista Nombre de columna de la siguiente manera:

      • Si el valor del tipo de BigQuery es Float, Integer o Numeric, configura el valor de Transformation como Numeric.

      • Si el valor de Tipo de BigQuery es String o Boolean, configura el valor de Transformation como Categórico.

      • Si el valor del tipo de BigQuery es Date, configura el valor de Transformation como Timestamp.

    2. Selecciona un valor en Tipo de atributo (Feature type) para las columnas de la lista Nombre de la columna (Column name) de la siguiente manera:

      • Para add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity y search_quantity, configura el valor Feature type como Covariate.

      • De las columnas restantes, para las que se pueden cambiar, establece el Tipo de atributo (Feature type) en Atributo (Attribute).

    3. Selecciona un valor Disponible con previsión para las columnas de la lista Tipo de columna de la siguiente manera:

      • En add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity y search_quantity, configura el valor de Disponibilidad en previsión como No disponible.

      • De las columnas restantes, para las que se pueden cambiar, establece el valor Feature type en Available.

    4. Haz clic en Continuar.

  4. En la página Procesamiento y precios, ingresa la cantidad máxima de horas durante las que quieres que se entrene el modelo. Esta configuración te ayuda a limitar los costos de entrenamiento. El tiempo real transcurrido puede ser mayor que este valor porque existen otras operaciones involucradas en la creación de un modelo nuevo. Si quieres obtener información sobre la cantidad de tiempo que se necesita para entrenar modelos de alta calidad, consulta Entrena un modelo en la documentación de Vertex AI.

  5. Haz clic en Comenzar el entrenamiento.

    El entrenamiento de modelos puede tardar muchas horas, según el tamaño y la complejidad de tus datos y tu presupuesto de entrenamiento, si especificaste uno. Puedes cerrar esta pestaña y volver a ella más tarde. Recibirás un correo electrónico cuando tu modelo complete el entrenamiento. Si deseas supervisar el progreso del entrenamiento de modelos, consulta Supervisa el progreso del entrenamiento.

Supervisa el progreso de tu capacitación

  1. En la consola de Google Cloud, en la sección Vertex AI, ve a la página Entrenamiento.

    Ir a la página de entrenamiento

  2. Si aún no está seleccionada, selecciona la pestaña Canalizaciones de entrenamiento. El modelo que estás entrenando debería estar en la lista. El entrenamiento finaliza cuando el estado cambia de Training a Finished.

Cómo crear una previsión

En esta página, se muestra cómo crear una previsión con el modelo de previsión que entrenaste en Entrena un modelo de previsión.

Antes de comenzar

Antes de crear una previsión, debes entrenar un modelo de previsión.

Realiza una solicitud de predicción por lotes a tu modelo

  1. En la consola de Google Cloud, en la sección Vertex AI, ve a la página Predicciones por lotes.

    Ir a la página Batch predictions

  2. Haz clic en Crear para abrir la ventana Nueva predicción por lotes y completa los siguientes pasos:

    1. Ingresa un nombre para la predicción por lotes.

    2. En la lista Nombre del modelo, selecciona el modelo que entrenaste en Entrena un modelo de previsión.

    3. En la lista Versión, selecciona la versión del modelo.

    4. En Seleccionar fuente, haz lo siguiente:

      1. Selecciona Tabla de BigQuery si aún no está seleccionada.

      2. Ingresa los IDs del proyecto, el conjunto de datos y la tabla en BigQuery para la tabla de predicción de Vertex AI que creaste en Crea una tabla de predicción de Vertex AI. El formato es project_id.dataset_id.table_id.

    5. En Resultado de la predicción por lotes, haz lo siguiente:

      1. En la lista Formato de salida, selecciona Tabla de BigQuery.

      2. Ingresa los ID del proyecto y del conjunto de datos en BigQuery para la tabla de resultados de la predicción por lotes que estás creando. Usa el mismo ID del proyecto y el mismo ID del conjunto de datos que usaste para las tablas de productos y eventos de usuario. El formato es project_id.dataset_id.

    6. Haz clic en Crear. Aparecerá la página Predicciones por lotes.

      La predicción finaliza cuando el estado cambia de Pending (Pendiente) a Completed (Finalizada). También recibirás un correo electrónico cuando finalice la predicción por lotes. El resultado de tu solicitud de predicción por lotes se muestra en el conjunto de datos del proyecto de BigQuery que especificaste. El nombre de tu tabla de salida nueva es “predictions_” y se le agrega la marca de tiempo de inicio del trabajo de predicción. Si quieres obtener más información para recuperar e interpretar los resultados de la previsión, consulta Recupera resultados de la predicción por lotes y Interpreta los resultados de la previsión en la documentación de Vertex AI.