A página fornece orientações para receber previsões da Vertex AI, com base em dados de varejo exportados para o BigQuery usando a API Retail. Fornecemos vários blocos de código SQL para ajudar a transformar os dados de produtos de varejo e eventos de usuários em um formato que a Vertex AI pode usar. Esses blocos de código são seguidos por procedimentos para o console da Vertex AI criar um conjunto de dados, treinar um modelo e gerar uma previsão.
Antes de começar
Antes de gerar previsões de vendas usando seus dados de varejo, você precisa:
Faça o upload dos seus dados de varejo usando a API Retail. Para mais informações, veja:
Exporte seus dados de varejo da API Retail para o BigQuery. Isso cria uma tabela de produtos e uma tabela de eventos de usuário no BigQuery, que podem ser usadas nos procedimentos a seguir. Para mais informações, consulte Exportar seus dados para o BigQuery.
Como alternativa, se os dados de eventos do produto e do usuário já estiverem no BigQuery, no formato da API Retail, use-os para gerar previsões de vendas a partir de dados de varejo. Nesse caso, você não precisa fazer o upload dos dados de varejo e exportá-los para o BigQuery. Para mais informações sobre o formato da API Retail do BigQuery, consulte Esquema do Retail e Sobre eventos do usuário.
Verifique se você tem o papel do IAM
roles/aiplatform.user
para realizar os procedimentos usando o console da Vertex AI.
Criar uma tabela de vendas agregada
O código SQL nesta seção transforma a tabela de eventos do usuário em uma tabela de vendas agregada. Isso significa que, para cada produto na tabela de eventos do usuário que foi vendido pelo menos uma vez, a quantidade de vendas do produto é agregada em um período semanal. Além disso, o código SQL faz o seguinte:
Para qualquer produto na tabela de eventos do usuário, se houver carimbos de data/hora ausentes entre a primeira venda do produto na tabela e a última venda de qualquer produto na tabela, cada carimbo de data/hora ausente será preenchido com uma nova linha sem vendas. Isso serve para eliminar lacunas no histórico de vendas.
Se não houver pelo menos um produto na tabela de eventos do usuário com pelo menos 20 carimbos de data/hora, um produto da tabela será escolhido aleatoriamente e preenchido com linhas suficientes (cada uma sem vendas) para atingir 20 carimbos de data/hora. Isso serve para acomodar o requisito da Vertex AI de ter pelo menos 20 carimbos de data/hora ao treinar um modelo.
Para criar uma tabela de vendas agregadas:
Substitua as variáveis no seguinte exemplo de código SQL:
starting_day_of_week. O dia em que a semana começa. Valores válidos:
MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,SATURDAY
,SUNDAY
.rdm_user_event_table. Os códigos do projeto, do conjunto de dados e da tabela de eventos do usuário que você exportou para o BigQuery. O formato é
project_id.dataset_id.table_id
.rdm_product_table. Os códigos do projeto, do conjunto de dados e da tabela da tabela de produtos que você exportou para o BigQuery. O formato é
project_id.dataset_id.table_id
.aggregated_sales_table. Os códigos do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de vendas agregadas. Use o mesmo ID do projeto que as tabelas de eventos de produtos e usuários. Use o ID de um conjunto de dados existente. Especifique um ID de tabela, mas não use o ID de uma tabela existente, a menos que você queira substituí-lo. O formato é
project_id.dataset_id.table_id
.
Copie o exemplo de código SQL.
Abra a página do BigQuery no console do Google Cloud.
Selecione o projeto que contém as tabelas de eventos de produtos e usuários, caso ainda não tenha feito isso.
No painel Editor, cole o exemplo de código SQL.
Clique em
Run e aguarde a conclusão da consulta.
A nova tabela de vendas agregadas é gravada no local do BigQuery definido por meio da variável aggregated_sales_table.
Processar a tabela de produtos
O código SQL nesta seção atua na tabela de produtos exportada para o BigQuery, removendo os campos repetidos e de estrutura e desaninhando o campo price_info nos campos filho. Isso é necessário porque a Vertex AI não aceita listas ou estruturas aninhadas. O resultado é a tabela de produtos processados.
Para processar a tabela de produtos:
Substitua as variáveis no seguinte exemplo de código SQL:
rdm_product_table. Os códigos do projeto, do conjunto de dados e da tabela da tabela de produtos que você exportou para o BigQuery. O formato é
project_id.dataset_id.table_id
.processed_product_table. Os códigos do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de produtos processados. Use o mesmo ID do projeto que as tabelas de eventos de produtos e usuários. Use o ID de um conjunto de dados existente. Especifique um ID de tabela, mas não use o ID de uma tabela existente, a menos que você queira substituí-lo. O formato é
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`
Copie o exemplo de código SQL.
Abra a página do BigQuery no console do Google Cloud.
Selecione o projeto que contém as tabelas de eventos de produtos e usuários, caso ainda não tenha feito isso.
No painel Editor, cole o exemplo de código SQL.
Clique em
Run e aguarde a conclusão da consulta.
A nova tabela de produtos processados é gravada no local do BigQuery definido por meio da variável processed_product_table.
Criar uma tabela de previsão de eventos
O código SQL nesta seção extrai cada SKU vendida pelo menos uma vez na tabela de eventos do usuário. O código cria uma tabela de previsão de eventos que contém todas as SKUs extraídas em todos os carimbos de data/hora no futuro. Os carimbos de data/hora futuros são uma matriz de carimbos de data/hora semanais contínuos, começando pela última semana na tabela de eventos de usuário + uma semana e terminando na semana final na tabela de eventos de usuários + future_length semanas. Defina o valor future_length para o número de semanas no futuro que você quer que o modelo preveja. Cada linha na tabela de previsão de eventos pode ser identificada exclusivamente por um SKU e um carimbo de data/hora.
Para criar uma tabela de previsão de eventos:
Substitua as variáveis no seguinte exemplo de código SQL:
starting_day_of_week. O dia em que a semana começa. Valores válidos:
MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,SATURDAY
,SUNDAY
.rdm_user_event_table. Os códigos do projeto, do conjunto de dados e da tabela para a tabela de eventos do usuário que você exportou para o BigQuery. O formato é
project_id.dataset_id.table_id
.events_prediction_table: Os códigos do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de previsão de eventos. Use o mesmo ID do projeto que as tabelas de eventos de produtos e usuários. Use o ID de um conjunto de dados existente. Especifique um ID de tabela, mas não use o ID de uma tabela existente, a menos que você queira substituí-lo. O formato é
project_id.dataset_id.table_id
.rdm_product_table. Os códigos do projeto, do conjunto de dados e da tabela da tabela de produtos que você exportou para o BigQuery. O formato é
project_id.dataset_id.table_id
.future_length. Número de semanas futuras, após a semana final na tabela de eventos do usuário, que o modelo preverá.
Copie o exemplo de código SQL.
Abra a página do BigQuery no console do Google Cloud.
Selecione o projeto que contém as tabelas de eventos de produtos e usuários, caso ainda não tenha feito isso.
No painel Editor, cole o exemplo de código SQL.
Clique em
Run e aguarde a conclusão da consulta.
A nova tabela de predição de eventos é gravada no local do BigQuery que você define com a variável events_prediction_table.
Criar uma tabela de treinamento da Vertex AI
O código SQL nesta seção une a tabela de vendas agregada à tabela de produtos processados. O resultado é uma tabela de treinamento da Vertex AI, que a Vertex AI usa para treinamento de modelo.
Para criar uma tabela de treinamento da Vertex AI:
Substitua as variáveis no seguinte exemplo de código SQL:
vertex_ai_training_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de treinamento da Vertex AI. Use o mesmo ID do projeto que as tabelas de eventos do produto e do usuário. Use o ID de um conjunto de dados existente. Especifique um ID de tabela, mas não use o ID de uma tabela atual, a menos que você queira substituí-lo. O formato é
project_id.dataset_id.table_id
.aggregated_sales_table. Os códigos do projeto, do conjunto de dados e da tabela no BigQuery da tabela de vendas agregadas, criados em Criar uma tabela de vendas agregadas.
processed_product_table. Os códigos do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de produtos processados, criados em Processar a tabela de produtos.
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
Copie o exemplo de código SQL.
Abra a página do BigQuery no console do Google Cloud.
Selecione o projeto que contém as tabelas de eventos de produtos e usuários, caso ainda não tenha feito isso.
No painel Editor, cole o exemplo de código SQL.
Clique em
Run e aguarde a conclusão da consulta.
A nova tabela de treinamento da Vertex AI é gravada no local do BigQuery definido por meio da variável vertex_ai_training_table.
Criar uma tabela de previsão da Vertex AI
O código SQL nesta seção anexa a tabela de previsão de eventos à tabela de vendas agregada e a mescla com a tabela de produtos processados. O resultado é a tabela de previsão da Vertex AI, que é usada para criar uma previsão.
Para criar uma tabela de previsão da Vertex AI:
Substitua as variáveis no seguinte exemplo de código SQL:
vertex_ai_prediction_table. Os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a nova tabela de previsão da Vertex AI. Use os mesmos ID do projeto e do conjunto de dados que você usou para as tabelas de eventos do produto e do usuário. Não use o ID de uma tabela atual, a menos que queira substituí-la. O formato é
project_id.dataset_id.table_id
.aggregated_sales_table. Os códigos do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de vendas agregada, criados em Criar uma tabela de vendas agregadas.
processed_product_table. Os códigos do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de produtos processados, criados em Processar a tabela de produtos.
events_prediction_table: Os códigos do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de previsão de eventos, criada em Criar uma tabela de previsão 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
Copie o exemplo de código SQL.
Abra a página do BigQuery no console do Google Cloud.
Selecione o projeto que contém as tabelas de eventos de produtos e usuários, caso ainda não tenha feito isso.
No painel Editor, cole o exemplo de código SQL.
Clique em
Run e aguarde a conclusão da consulta.
A nova tabela de previsão da Vertex AI é gravada no local do BigQuery definido por meio da variável vertex_ai_prediction_table.
Criar um conjunto de dados da Vertex AI
Nesta seção, mostramos como criar um conjunto de dados da Vertex AI que pode ser usado para treinar um modelo de previsão. Para mais informações, consulte Criar um conjunto de dados para treinar modelos de previsão na documentação da Vertex AI.
Para criar um conjunto de dados da Vertex AI:
No Console do Google Cloud, na seção Vertex AI, acesse a página Conjunto de dados.
Clique em Criar para abrir a página Criar conjunto de dados.
No campo Nome do conjunto de dados, digite um nome para o novo conjunto de dados.
Selecione a guia Tabular.
Selecione o objetivo Previsão.
Na lista Região, selecione a região que você usou quando criou um conjunto de dados para exportar os dados de varejo para o BigQuery. Se você selecionou us quando criou o conjunto de dados do BigQuery, pode selecionar qualquer região nos Estados Unidos. Da mesma forma, se você selecionou eu ao criar o conjunto de dados do BigQuery, poderá selecionar qualquer região na União Europeia. Para mais informações, consulte Exportar seus dados para o BigQuery.
Clique em Criar para criar o conjunto de dados vazio e avance para a guia Origem.
Selecione Selecionar uma tabela ou visualização do BigQuery.
Em Selecionar uma tabela ou visualização do BigQuery, insira os IDs do projeto, do conjunto de dados e da tabela da tabela de treinamento da Vertex AI que você criou em Criar uma tabela de treinamento da Vertex AI. O formato é
project_id.dataset_id.table_id
.Clique em Continuar.
A fonte de dados está associada ao seu conjunto de dados.
Na guia Analisar, selecione sku na lista Coluna do identificador da série e last_day_of_week na lista Coluna do carimbo de data/hora.
Clique em Treinar novo modelo para avançar para a página Treinar novo modelo. Para instruções sobre como treinar o modelo, acesse Treinar um modelo de previsão.
Treinar um modelo de previsão
Nesta seção, mostramos como treinar um modelo de previsão usando o conjunto de dados criado em Criar um conjunto de dados da Vertex AI. Para mais informações, consulte Treinar um modelo de previsão na documentação da Vertex AI.
Antes de começar
Antes de treinar um modelo de previsão, crie um conjunto de dados da Vertex AI.
Treinar um modelo
Na página Método de treinamento, selecione o método de treinamento de modelo. Para informações sobre métodos de treinamento, consulte Treinar um modelo na documentação da Vertex AI.
Clique em Continuar.
Na página Detalhes do modelo, configure o seguinte:
Selecione Treinar novo modelo, caso ainda não esteja selecionado.
Insira um nome para o novo modelo.
Selecione quantity (INTEGER) na lista Target column.
Selecione Semanal na lista Granularidade de dados.
Insira a Janela de contexto e o Horizonte de previsão.
O horizonte de previsão determina em que ponto do modelo o valor desejado será determinado para cada linha de dados de previsão. O horizonte de previsão é especificado em unidades de granularidade de dados.
A janela de contexto define o tempo de retorno do modelo durante o treinamento (e para previsões). Em outras palavras, para cada ponto de dados de treinamento, a janela de contexto determina até que ponto o modelo procura padrões de previsão. Se você não especificar uma janela de contexto, o padrão será o valor definido em Forecast horizon. A janela de contexto é especificada em unidades de granularidade de dados.
Para mais informações, consulte Considerações para definir a janela de contexto e o horizonte de previsão na documentação da Vertex AI.
Clique em Continuar.
Na página Opções de treinamento, configure o seguinte: Observe que quando uma seta suspensa
está cinza ou quando não há uma seta suspensa, esse valor não pode ser alterado.Selecione um valor de Transformação para as colunas na lista Nome da coluna da seguinte maneira:
Se o valor de BigQuery type for Float, Integer ou Numeric, defina o valor de Transformation como Numeric.
Se o valor de BigQuery type for String ou Boolean, defina o valor de Transformation como Categorical.
Se o valor de BigQuery type for Date, defina o valor de Transformation como Timestamp.
Selecione um valor de Tipo de recurso para as colunas na lista Nome da coluna da seguinte maneira:
Para add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity e search_quantity, defina o valor do Tipo de recurso como Covariate.
Das colunas restantes, para aquelas que podem ser alteradas, defina o Tipo de recurso como Atributo.
Selecione um valor para Disponível na previsão para as colunas na lista Tipo de coluna da seguinte maneira:
Para add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity e search_quantity, defina o valor de Disponibilidade na previsão como Não disponível.
Das colunas restantes, para aquelas que podem ser alteradas, defina o valor Tipo de recurso como Disponível.
Clique em Continuar.
Na página Computação e preços, insira o número máximo de horas de treinamento do modelo. Essa configuração ajuda a limitar os custos de treinamento. O tempo real decorrido pode ser maior que esse valor, porque há outras operações envolvidas na criação de um novo modelo. Para informações sobre a quantidade de tempo que pode ser necessária para treinar modelos de alta qualidade, consulte Treinar um modelo na documentação da Vertex AI.
Clique em Iniciar treinamento.
O treinamento de modelos pode levar muitas horas, dependendo do tamanho e da complexidade dos dados e do orçamento de treinamento, caso tenha sido especificado. Você pode fechar esta guia e voltar a ela mais tarde. Você receberá um e-mail quando o treinamento do modelo for concluído. Se você quiser monitorar o progresso do treinamento do modelo, consulte Monitorar o progresso do treinamento.
Monitorar o progresso do treinamento
No Console do Google Cloud, na seção Vertex AI, acesse a página Treinamento.
Selecione a guia Pipelines de treinamento, caso ainda não esteja selecionada. O modelo que você está treinando precisa estar na lista. O treinamento será concluído quando o status mudar de Treinamento para Concluído.
Criar uma previsão
Nesta página, mostramos como criar uma previsão usando o modelo treinado em Treinar um modelo de previsão.
Antes de começar
Antes de criar uma previsão, é preciso treinar um modelo de previsão.
Fazer uma solicitação de previsão em lote ao seu modelo
No Console do Google Cloud, na seção Vertex AI, acesse a página Previsões em lote.
Clique em Criar para abrir a janela Nova previsão em lote e conclua as seguintes etapas:
Insira um nome para a previsão em lote.
Na lista Nome do modelo, selecione o modelo que você treinou em Treinar um modelo de previsão.
Na lista Versão, selecione a versão do modelo.
Em Selecionar origem:
Selecione a Tabela do BigQuery, caso ainda não esteja selecionada.
Insira os IDs do projeto, do conjunto de dados e da tabela no BigQuery para a tabela de previsão da Vertex AI que você criou em Criar uma tabela de previsão da Vertex AI. O formato é
project_id.dataset_id.table_id
.
Em Saída da previsão em lote:
Na lista Formato de saída, selecione Tabela do BigQuery.
Insira IDs do projeto e do conjunto de dados no BigQuery para a tabela de saída de previsão em lote que você está criando. Use os mesmos ID do projeto e do conjunto de dados que você usou para as tabelas de eventos do produto e do usuário. O formato é
project_id.dataset_id.
Clique em Criar. A página Previsões em lote é exibida.
A previsão é concluída quando o status muda de Pending para Finished. Você também receberá um e-mail quando a previsão em lote for concluída. A saída da solicitação de previsão em lote é retornada no conjunto de dados no projeto do BigQuery que você especificou. O nome da nova tabela de saída é "predictions_" anexado ao carimbo de data/hora de quando o job de previsão foi iniciado. Para mais informações sobre como recuperar e interpretar os resultados da previsão, consulte Recuperar resultados de previsão em lote e Interpretar resultados de previsão na documentação da Vertex AI.