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:
- Criação e implantação de modelos de ML
- Acionador para prever usando a API ML
Criação de modelos de ML :
- Dados de CSV para o BigQuery
- Dados do BigQuery integrados à Vertex AI para a criação de modelos do AutoML
- Modelo implantado no Vertex AI Model Registry para gerar a API de endpoint
Acionador para prever usando a API ML :
- 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:

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
- No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
- Confira se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
- 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
- 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:

- 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
- Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
- 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.
- 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).
- 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
- 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
- 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:

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:

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.

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
- 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:

- Deixe o objetivo como "Classificação" e selecione a opção "AutoML" na primeira página e clique em "Continuar":

- 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".
- 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.
- 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.

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:
- Conferir e avaliar os resultados do treinamento

- 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.

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.
- Pesquise as funções do Cloud no console do Google Cloud e clique em "Criar função".
- 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".

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

- 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.
- 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.
- 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:
- No console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- 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.