Ciência de dados assistida por IA com o BigQuery

1. Introdução

Visão geral

Neste laboratório, você vai conhecer um fluxo de trabalho de ciência de dados multimodal no BigQuery, com foco em um cenário imobiliário. Você vai começar com um conjunto de dados brutos de anúncios de casas e imagens, enriquecer esses dados com IA para extrair recursos visuais, criar um modelo de clusterização para descobrir segmentos de mercado distintos e, por fim, criar uma ferramenta de pesquisa visual eficiente usando embeddings de vetores.

Você vai comparar esse fluxo de trabalho nativo do SQL com uma abordagem moderna de IA generativa usando o Agente de ciência de dados para gerar automaticamente um modelo de clusterização baseado em Python com um comando de texto simples.

O que você vai aprender

  • Prepare um conjunto de dados brutos de anúncios de imóveis para análise usando a engenharia de atributos.
  • Enriqueça as páginas de detalhes usando as funções de IA do BigQuery para analisar fotos de casas e identificar recursos visuais importantes.
  • Crie e avalie um modelo k-means com o BigQuery Machine Learning (BQML) para segmentar propriedades em clusters distintos.
  • Automatize a criação de modelos usando o agente de ciência de dados para gerar um modelo de clustering com Python.
  • Gere embeddings de imagens de casas para usar uma ferramenta de pesquisa visual e encontrar imóveis semelhantes com consultas de texto ou imagem.

Pré-requisitos

Antes de fazer este laboratório, você precisa saber os seguintes conceitos:

  • Noções básicas de programação em SQL e Python.
  • Executar códigos Python em um notebook do Jupyter.

2. Antes de começar

Criar um projeto do Google Cloud

  1. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

Selecionar um projeto

  1. Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.

Ativar APIs com o Cloud Shell

O Cloud Shell é um ambiente de linha de comando executado no Google Cloud que vem pré-carregado com as ferramentas necessárias.

  1. Clique em Ativar o Cloud Shell na parte de cima do console do Google Cloud:

Ativar o Cloud Shell

  1. Depois de se conectar ao Cloud Shell, execute este comando para verificar sua autenticação no Cloud Shell:
gcloud auth list
  1. Execute o comando a seguir para confirmar se o projeto está configurado para uso com a gcloud:
gcloud config list project
  1. Se o projeto não estiver definido, use este comando:
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID

Ativar APIs

  1. Execute este comando para ativar todas as APIs e serviços necessários:
gcloud services enable bigquery.googleapis.com \
                       bigqueryunified.googleapis.com \
                       cloudaicompanion.googleapis.com \
                       aiplatform.googleapis.com
  1. Após a execução do comando, você vai ver uma mensagem semelhante à mostrada abaixo:
Operation "operations/..." finished successfully.
  1. Saia do Cloud Shell.

3. Abrir o notebook do laboratório no BigQuery Studio

  1. No console do Google Cloud, acesse Menu de navegação > BigQuery.

Botão de seta suspensa

  1. No painel BigQuery Studio, clique no botão de seta do menu suspenso, passe o cursor sobre Notebook e selecione Fazer upload.

Botão de seta suspensa

  1. Selecione o botão de opção URL e insira o seguinte URL:

https://github.com/GoogleCloudPlatform/generative-ai/blob/main/gemini/use-cases/applying-llms-to-data/ai-assisted-data-science/ai-assisted-data-science.ipynb

  1. Defina a região como us-central1 e clique em Fazer upload.

Fazer upload do notebook do GitHub

  1. Para abrir o notebook, clique na seta suspensa no painel Explorador que contém o ID do projeto. Em seguida, clique no menu suspenso Notebooks. Clique no notebook ai-assisted-data-science.

Abrir notebook

  1. (Opcional) Recolha o menu de navegação do BigQuery e o Sumário do notebook para ter mais espaço.

Recolher painéis

4. Conectar-se a um ambiente de execução e executar o código de configuração

  1. Clique em Conectar. Se um pop-up aparecer, autorize o Colab Enterprise com seu usuário. O notebook vai se conectar automaticamente a um ambiente de execução. Esse processo pode levar alguns minutos.

Conectar ao ambiente de execução

  1. Depois que o tempo de execução for estabelecido, você verá o seguinte:

Tempo de execução ativo

  1. No notebook, role até a seção Configuração. Clique no botão "Executar" ao lado das células ocultas. Isso cria alguns recursos necessários para o laboratório no seu projeto. Esse processo pode levar um minuto para ser concluído. Enquanto isso, confira as células em Configuração.

Executar o código de configuração

5. Preparação de dados e engenharia de atributos

Nesta seção, você vai passar pela primeira etapa importante de qualquer projeto de ciência de dados: a preparação dos dados. Primeiro, crie um conjunto de dados do BigQuery para organizar seu trabalho e carregue os dados brutos de imóveis / moradias de um arquivo CSV no Cloud Storage em uma nova tabela.

Em seguida, você vai transformar esses dados brutos em uma tabela limpa com novos recursos. Isso envolve filtrar as listagens, criar um novo recurso property_age e preparar os dados de imagem para análise multimodal.

6. Enriquecimento multimodal com funções de IA

Agora você vai enriquecer seus dados usando o poder da IA generativa. Nesta seção, você vai usar as funções de IA integradas do BigQuery para analisar as imagens de cada anúncio de casa.

Ao conectar o BigQuery a um modelo do Gemini, você extrai recursos novos e valiosos de imagens (como se uma propriedade está perto da água e uma breve descrição da casa) diretamente com SQL.

7. Treinamento de modelos com clustering k-means

Com o conjunto de dados enriquecido, você já pode criar um modelo de machine learning. Seu objetivo é segmentar os anúncios de casas em grupos distintos. Para isso, treine um modelo de clusterização K-means diretamente no BigQuery usando o BigQuery Machine Learning (BQML). Como parte dessa única etapa, você também registra o modelo no Vertex AI Model Registry, disponibilizando-o instantaneamente no ecossistema mais amplo de MLOps no Google Cloud.

Para confirmar se o modelo foi registrado, siga estas etapas:

  1. No console do Google Cloud, clique no menu de navegação (☰) no canto superior esquerdo.
  2. Role até a seção Vertex AI e clique em Model Registry. Agora, seu modelo do BQML vai aparecer listado com todos os outros modelos personalizados.

Acessar o Model Registry

  1. Na lista de modelos, encontre o modelo chamado housing_clustering. Você pode dar o próximo passo e implantar em um endpoint, o que disponibilizaria seu modelo para previsões on-line em tempo real fora do ambiente do BigQuery.

Acessar o Model Registry

Depois de conhecer o registro de modelos, siga estas etapas para voltar ao notebook do Colab no BigQuery:

  1. No Menu de navegação (☰), acesse BigQuery > Studio.
  2. Expanda os menus no painel Explorar para encontrar e abrir seu notebook.

8. Avaliação e previsão de modelos

Depois de treinar o modelo, a próxima etapa é entender os clusters criados. Aqui, você usa funções do BigQuery Machine Learning, como ML.EVALUATE e ML.CENTROIDS, para analisar a qualidade do modelo e as características definidoras de cada segmento.

Em seguida, use ML.PREDICT para atribuir cada casa a um cluster. Ao executar essa consulta com o comando mágico %%bigquery df, você armazena os resultados em um DataFrame do pandas chamado df. Isso disponibiliza os dados imediatamente para as próximas etapas do Python. Isso destaca a interoperabilidade entre SQL e Python no Colab Enterprise.

9. Visualizar e interpretar clusters

Agora que as previsões foram carregadas em um DataFrame, você pode criar visualizações para dar vida aos dados. Nesta seção, você vai usar bibliotecas Python conhecidas, como Matplotlib, para analisar as diferenças entre os segmentos de imóveis.

Você vai criar boxplots e gráficos de barras para comparar visualmente recursos importantes, como preço e idade do imóvel, facilitando a criação de uma compreensão intuitiva de cada cluster.

10. Gerar descrições de clusters com modelos do Gemini

Embora os centroides numéricos e os gráficos sejam poderosos, a IA generativa permite ir além e criar personas ricas e qualitativas para cada segmento de moradia. Isso ajuda você a entender não apenas o que são os clusters, mas quem eles representam.

Nesta seção, você vai agregar as estatísticas médias de cada cluster, como preço e metragem quadrada. Em seguida, você vai transmitir esses dados para um comando do modelo do Gemini. Em seguida, instrua o modelo a agir como um profissional do setor imobiliário e gerar um resumo detalhado, incluindo as principais características e um comprador-alvo para cada segmento. O resultado é um conjunto de descrições claras e legíveis que tornam os clusters imediatamente compreensíveis e úteis para uma equipe de marketing.

Altere o comando como quiser e teste os resultados.

11. Automatizar a modelagem com o agente de ciência de dados

Agora, você vai conhecer um fluxo de trabalho alternativo e eficiente. Em vez de escrever código manualmente, você vai usar o Agente de ciência de dados integrado para gerar automaticamente um fluxo de trabalho completo de modelo de clusterização com base em um único comando de linguagem natural.

Siga estas etapas para gerar e executar o modelo usando o agente:

  1. No painel BigQuery Studio, clique no botão de seta do menu suspenso, passe o cursor sobre Notebook e selecione Notebook vazio. Isso garante que o código do agente não interfira no notebook original do laboratório.

Abrir um novo notebook

  1. A interface de chat do Agente de Ciência de Dados é aberta na parte de baixo do notebook. Clique no botão Mover para o painel para fixar o chat no lado direito.

Abrir um novo notebook

  1. Comece a digitar @listing_multimodal no painel de chat e clique na tabela. Isso define explicitamente a tabela listings_multimodal como contexto.

Adicionar contexto de tabela ao agente

  1. Copie o comando abaixo e insira na caixa de chat do agente. Em seguida, clique em Enviar para enviar o comando ao agente.
    Use the selected table to generate a k-means clustering model with 3 clusters for housing listings. Then, help me understand the characteristics of each cluster so I can market to them as a real estate professional. Use Python.
    

Enviar um comando para o agente

  1. O agente vai pensar e formular um plano. Se você concordar com esse plano, clique em Aceitar e executar. O agente vai gerar código Python em uma ou mais células novas.

Aceitar o plano do agente

  1. O agente pede que você clique em Aceitar e executar em cada bloco de código gerado. Isso mantém um human-in-the-loop. Revise ou edite o código e continue seguindo cada uma das etapas até concluir.

Executar código do agente

  1. Quando terminar, feche a nova guia do notebook e volte para a guia ai-assisted-data-science.ipynb original para continuar com a seção final do laboratório.

12. Pesquisa multimodal com embeddings e pesquisa vetorial

Nesta seção final, você vai implementar a pesquisa multimodal diretamente no BigQuery. Isso permite pesquisas intuitivas, como encontrar casas com base em uma descrição de texto ou encontrar casas semelhantes a uma imagem de amostra.

O processo funciona primeiro convertendo cada imagem da casa em uma representação numérica chamada embedding. Um embedding captura o significado semântico de uma imagem, permitindo que você encontre itens semelhantes comparando os vetores numéricos deles.

Você vai usar o modelo multimodalembedding para gerar esses vetores em todas as suas fichas. Depois de criar um índice de vetor para acelerar as pesquisas, você realiza dois tipos de pesquisa por similaridade: texto para imagem (encontrar casas que correspondam a uma descrição) e imagem para imagem (encontrar casas que se pareçam com uma imagem de amostra).

Você vai fazer tudo isso no BigQuery, usando funções como ML.GENERATE_EMBEDDING para gerar embeddings ou VECTOR_SEARCH para pesquisa de similaridade.

13. Como fazer a limpeza

Para limpar todos os recursos do Google Cloud usados neste projeto, exclua o projeto do Google Cloud.

Como alternativa, exclua os recursos individuais criados executando o seguinte código em uma nova célula no notebook:

# Delete the BigQuery tables
!bq rm --table -f housing_dataset.listings
!bq rm --table -f housing_dataset.listings_multimodal
!bq rm --table -f housing_dataset.home_embeddings

# Delete the remote model
!bq rm --model -f housing_dataset.gemini
!bq rm --model -f housing_dataset.kmeans_clustering_model
!bq rm --model -f housing_dataset.multimodal_embedding_model

# Delete the remote connection
!bq rm --connection --project_id=$PROJECT_ID --location=us ai_connection

# Delete the BigQuery dataset
!bq rm -r -f $PROJECT_ID:housing_dataset

Por fim, você pode excluir o notebook:

  1. No painel Explorer do BigQuery Studio, expanda seu projeto e o nó Notebooks.
  2. Clique nos três pontos verticais ao lado do notebook ai-assisted-data-science.
  3. Selecione Excluir.

14. Parabéns!

Parabéns por concluir o codelab.

O que aprendemos

  • Prepare um conjunto de dados brutos de anúncios de imóveis para análise usando a engenharia de atributos.
  • Enriqueça as páginas de detalhes usando as funções de IA do BigQuery para analisar fotos de casas e identificar recursos visuais importantes.
  • Crie e avalie um modelo k-means com o BigQuery Machine Learning (BQML) para segmentar propriedades em clusters distintos.
  • Automatize a criação de modelos usando o agente de ciência de dados para gerar um modelo de clustering com Python.
  • Gere embeddings de imagens de casas para usar uma ferramenta de pesquisa visual e encontrar imóveis semelhantes com consultas de texto ou imagem.