Previsão de classificação de filmes com o AutoML da Vertex AI

1. Introdução

Neste codelab, vamos criar um modelo de previsão de pontuação de filmes usando o AutoML da Vertex AI e acionar o endpoint do modelo implantado nas funções do Cloud em Java. O modelo é treinado com dados armazenados no BigQuery e registrados na Vertex AI. A lista de serviços pode ser composta em duas seções:

  1. Criação e implantação de modelos de ML
  2. Acionador para prever usando a API ML

Criação de modelos de ML :

  1. Dados de CSV para o BigQuery
  2. Dados do BigQuery integrados à Vertex AI para a criação de modelos do AutoML
  3. Modelo implantado no Vertex AI Model Registry para gerar a API de endpoint

Acionador para prever usando a API ML :

  1. Funções do Cloud em Java para acionar a invocação do endpoint do modelo do AutoML implantado que recebe detalhes do filme como solicitação da interface, retorna a CLASSIFICAÇÃO prevista do filme

Confira abaixo a visão geral da arquitetura do aplicativo:

5ae50607c0f2db20.png

A aplicação da arquitetura acima está fora do escopo deste codelab, mas, se você quiser desenvolver o aplicativo cliente também, consulte o blog.

Vamos conferir as etapas de implementação.

O que você vai criar

Você vai criar um

  • Um conjunto de dados do BigQuery para conter os componentes da tabela e do modelo
  • Modelo do AutoML da Vertex AI (criar e implantar)
  • Acionador de funções do Cloud em Java para prever usando a API ML

2. Requisitos

  • Use um navegador, como o Chrome ou o Firefox.
  • Tenha um projeto na nuvem do Google Cloud com o faturamento ativado.

Confira abaixo os pré-requisitos:

Criar seu projeto

  1. No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
  2. Confira se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
  3. Navegue até BigQuery para ativar a API. Você também pode abrir a interface da Web do BigQuery diretamente inserindo o seguinte URL no navegador: https://console.cloud.google.com/bigquery

Ativar o Cloud Shell

  1. Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud que vem pré-carregado com bq: no console do Cloud, clique em Ativar o Cloud Shell no canto superior direito: 6757b2fb50ddcc2d.png
  2. Depois de se conectar ao Cloud Shell, você vai ver que sua conta já está autenticada e que o projeto está configurado com seu ID do projeto. Execute o seguinte comando no Cloud Shell para confirmar se a conta está autenticada:
gcloud auth list
  1. Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
  1. Se o projeto não estiver definido, use este comando:
gcloud config set project <PROJECT_ID>

Consulte a documentação para ver o uso e os comandos gcloud.

3. Como preparar dados de treinamento

Essa é uma etapa importante em todos os projetos, produtos e apps relacionados a dados que exigem muita experiência no domínio, além da tecnologia para preparar um conjunto de dados ideal e deixá-lo pronto para o projeto de ML. Para fins deste codelab, vamos presumir que os dados já estão preparados e usar esse arquivo de dados já processado data.

4. Como criar e carregar o conjunto de dados

Um conjunto de dados do BigQuery é uma coleção de tabelas. Todas as tabelas em um conjunto de dados são armazenadas no mesmo local de dados location. Também é possível anexar controles de acesso personalizados para limitar o acesso a um conjunto de dados e às tabelas dele.

  1. No Cloud Shell, use o comando bq mk para criar um conjunto de dados chamado "movies".
bq mk --location=<<LOCATION>> movies

Defina o local como uma região (asia-south1). Lembre-se de defini-lo também como a região da etapa da VERTEX AI (as duas instâncias precisam estar na mesma região).

  1. Verifique se o arquivo de dados (.csv) está pronto. Execute os comandos a seguir no Cloud Shell para clonar o repositório e navegar até o projeto:
git clone <<repository link>>

cd movie-score
  1. Use o comando bq load para carregar o arquivo CSV em uma tabela do BigQuery. Também é possível fazer upload diretamente na interface do 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. Consulte de uma das três maneiras:

Podemos interagir com o BigQuery de três maneiras. Vamos testar duas delas: a. Interface da Web do BigQuery web b. O comando bq c. API

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

Usei o espaço de trabalho SQL da Web do BigQuery para executar consultas. O espaço de trabalho SQL é assim:

109a0b2c7155e9b3.png

Como usar o comando bq:

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

5. Como usar dados do BigQuery no AutoML da Vertex AI

Use os dados do BigQuery para criar diretamente um modelo do AutoML com a Vertex AI. Lembre-se de que também podemos executar o AutoML no BigQuery e registrar o modelo na Vertex AI e expor o endpoint. Consulte a documentação do AutoML do BigQuery. No entanto, neste exemplo, vamos usar o AutoML da Vertex AI para criar nosso modelo.

Como criar um conjunto de dados da Vertex AI

Acesse a Vertex AI no console do Google Cloud, ative a API Vertex AI, se ainda não tiver feito isso, expanda os dados e selecione Conjuntos de dados, clique em Criar conjunto de dados, selecione o tipo de dados TABULAR e a opção "Regressão / classificação" e clique em Criar:

4104c75c34cbd2d9.png

Selecionar fonte de dados

Na próxima página, selecione uma fonte de dados. Escolha a opção "Selecionar uma tabela ou visualização do BigQuery" e selecione a tabela do BigQuery no campo NAVEGAR do caminho do BigQuery. Clique em Continuar.

Lembre-se:para que a tabela do BigQuery apareça na Vertex AI, a instância do BigQuery e os conjuntos de dados da Vertex AI precisam ter a mesma região.

b787ef18dbca4cff.png

Ao selecionar a tabela/visualização de origem na lista de navegação, clique no botão de opção para continuar com as etapas abaixo. Se você clicar acidentalmente no nome da tabela/visualização, será direcionado ao Dataplex. Basta navegar de volta para a Vertex AI se isso acontecer.

Treinar o modelo

  1. Depois que o conjunto de dados for criado, a página "Analisar" vai aparecer com a opção de treinar um novo modelo. Clique nela:

bf095263d57106de.png

  1. Deixe o objetivo como "Classificação" e selecione a opção "AutoML" na primeira página e clique em "Continuar": e50597bc3f29894c.png
  2. Dê um nome ao modelo e selecione o nome da coluna de destino como "Classificação" no menu suspenso que aparece e clique em "Continuar".
  3. Você também pode marcar a opção "Exportar conjunto de dados de teste para o BigQuery", o que facilita a visualização do conjunto de teste com resultados no banco de dados de maneira eficiente, sem uma camada de integração extra ou a necessidade de mover dados entre serviços.
  4. Na próxima página, você tem a opção de selecionar as opções de treinamento avançadas necessárias e as horas em que quer definir o modelo para treinamento. Considere o preço antes de aumentar o número de horas de uso do nó que você quer usar para treinamento.

Clique em "Iniciar treinamento" para começar a treinar seu novo modelo.

e72b004a17849bd.png

Avaliar, implantar e testar o modelo

Depois que o treinamento for concluído, clique em "Treinamento" (na seção "Desenvolvimento de modelos" no menu à esquerda) e confira o treinamento listado na seção "Pipelines de treinamento". Clique nele para acessar a página "Model Registry". Você precisa saber:

  1. Conferir e avaliar os resultados do treinamento 4767b4bbd7cf93fa.png
  2. Implantar e testar o modelo com o endpoint de API

Depois de implantar o modelo, um endpoint de API é criado e pode ser usado no aplicativo para enviar solicitações e receber resultados de previsão do modelo na resposta.

95fb4495618174f0.png

Antes de sair desta seção, anote o ID do endpoint, o local e outros detalhes do modelo implantado na seção de endpoint da Vertex AI.

6. Função do Cloud em Java para acionar a invocação de ML

Lembra do endpoint e de outros detalhes da etapa de implantação de ML? Vamos usar isso aqui e, como estamos usando as funções do Cloud em Java, vamos usar o pom.xml para processar dependências. Usamos a biblioteca google-cloud-aiplatform para consumir a API de endpoint do AutoML da Vertex AI.

  1. Pesquise as funções do Cloud no console do Google Cloud e clique em "Criar função".
  2. Insira os detalhes de configuração, como ambiente, nome da função, região, acionador (neste caso, HTTPS), autenticação de sua escolha, ative "Exigir HTTPS" e clique em "Próximo/Salvar".

a68272022df062f2.png

  1. Na próxima página, selecione "Tempo de execução" (Java 11), "Código-fonte" (inline ou upload) e comece a editar.

13df616369ca5951.png

  1. Copie os arquivos java e pom.xml do repositório e cole nos respectivos arquivos no editor inline. Se você estiver usando o editor local (recomendado), clone a origem do repositório.
  2. Altere o ID do projeto, o ID do endpoint, o local e o endpoint no arquivo de origem .java para este exemplo, mas observe que a prática recomendada é usar o Secret Manager para armazenar credenciais.
  3. Para o escopo deste codelab, comente as partes do MongoDB na classe .java no código-fonte copiado.

Implante a função quando todas as alterações forem concluídas. Você vai encontrar o URL do endpoint que pode ser usado no aplicativo cliente para enviar solicitações a essa função do Cloud e receber a pontuação do filme como resposta.

7. Liberar espaço

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta postagem, siga estas etapas:

  1. No console do Google Cloud, acesse a página Gerenciar recursos.
  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em desligar para excluir o projeto.

8. Parabéns

Parabéns! Você criou e implantou um modelo de previsão de classificação de filmes no AutoML da Vertex AI e acionou o modelo implantado nas funções do Cloud.