Analisar dados multimodais em Python com o BigQuery DataFrames
Este tutorial mostra como analisar dados multimodais em um notebook do Python usando classes e métodos do BigQuery DataFrames.
Este tutorial usa o catálogo de produtos do conjunto de dados público da loja de animais de estimação Cymbal.
Para fazer upload de um notebook já preenchido com as tarefas abordadas neste tutorial, consulte BigFrames Multimodal DataFrame.
Objetivos
- Crie DataFrames multimodais.
- Combine dados estruturados e não estruturados em um DataFrame.
- Transformar imagens.
- Gerar texto e embeddings com base nos dados da imagem.
- Divida os PDFs para análise mais detalhada.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Trusted Cloud by S3NS:
- BigQuery: you incur costs for the data that you process in BigQuery.
- BigQuery Python UDFs: you incur costs for using BigQuery DataFrames image transformation and chunk PDF methods.
- Cloud Storage: you incur costs for the objects stored in Cloud Storage.
- Vertex AI: you incur costs for calls to Vertex AI models.
Para gerar uma estimativa de custo baseada na projeção de uso,
use a calculadora de preços.
Para mais informações, consulte as seguintes páginas de preços:
Antes de começar
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Make sure that billing is enabled for your Trusted Cloud project.
-
Enable the BigQuery, BigQuery Connection, Cloud Storage, and Vertex AI APIs.
Funções exigidas
Para conseguir as permissões necessárias para concluir este tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Crie uma conexão:
Administrador de conexão do BigQuery (
roles/bigquery.connectionAdmin
) -
Conceder permissões à conta de serviço da conexão:
Administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin
) -
Crie um bucket do Cloud Storage:
Administrador do Storage (
roles/storage.admin
) -
Executar jobs do BigQuery:
Usuário do BigQuery (
roles/bigquery.user
) -
Crie e chame UDFs em Python:
Editor de dados do BigQuery (
roles/bigquery.dataEditor
) -
Crie URLs que permitem ler e modificar objetos do Cloud Storage:
Administrador de ObjectRef do BigQuery (
roles/bigquery.objectRefAdmin
) -
Use notebooks:
-
Usuário de sessão de leitura do BigQuery (
roles/bigquery.readSessionUser
) -
Usuário do ambiente de execução do notebook (
roles/aiplatform.notebookRuntimeUser
) -
Usuário do ambiente de execução do notebook (
roles/aiplatform.notebookRuntimeUser
) -
Criador de código (
roles/dataform.codeCreator
)
-
Usuário de sessão de leitura do BigQuery (
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Configurar
Nesta seção, você cria o bucket, a conexão e o notebook do Cloud Storage usados neste tutorial.
Criar um bucket
Crie um bucket do Cloud Storage para armazenar objetos transformados:
No console Trusted Cloud , acesse a página Buckets.
Clique em
Criar.Na página Criar um bucket, na seção Começar, insira um nome globalmente exclusivo que atenda aos requisitos de nome de bucket.
Clique em Criar.
Crie uma conexão
Crie uma Conexão de recursos do Cloud e tenha acesso à conta de serviço da conexão. O BigQuery usa a conexão para acessar objetos no Cloud Storage.
Acessar a página do BigQuery.
No painel Explorer, clique em
Adicionar dados.A caixa de diálogo Adicionar dados é aberta.
No painel Filtrar por, na seção Tipo de fonte de dados, selecione Aplicativos empresariais.
Como alternativa, no campo Pesquisar fontes de dados, você pode inserir
Vertex AI
.Na seção Fontes de dados em destaque, clique em Vertex AI.
Clique no card da solução Vertex AI Models: BigQuery Federation.
Na lista Tipo de conexão, selecione Modelos remotos da Vertex AI, funções remotas e BigLake (recurso do Cloud).
No campo ID da conexão, digite
bigframes-default-connection
.Clique em Criar conexão.
Clique em Ir para conexão.
No painel Informações da conexão, copie o ID da conta de serviço para uso em uma etapa posterior.
Conceder permissões para a conta de serviço do portal
Conceda à conta de serviço da conexão as funções necessárias para acessar o Cloud Storage e a Vertex AI. É necessário conceder essas funções no mesmo projeto que você criou ou selecionou na seção Antes de começar.
Para conceder o papel, siga estas etapas:
Acessar a página AM e administrador
Clique em
CONCEDER ACESSO.No campo Novos principais, digite o ID da conta de serviço que você copiou anteriormente.
No campo Selecionar papel, escolha Cloud Storage e, em seguida, Usuário de objetos do Storage.
Clique em Adicionar outro papel.
No campo Selecionar um papel, selecione Vertex AI e, em seguida, selecione Usuário da Vertex AI.
Clique em Salvar.
Criar um notebook
Crie um notebook em que você possa executar código Python:
Acessar a página do BigQuery.
Na barra de guias do painel do editor, clique na
seta suspensa ao lado de Consulta SQL e clique em Notebook.No painel Começar com um modelo, clique em Fechar.
Clique em Conectar > Conectar a um ambiente de execução.
Se você já tiver um ambiente de execução, aceite as configurações padrão e clique em Conectar. Se você não tiver um ambiente de execução, selecione Criar novo ambiente de execução e clique em Conectar.
A configuração do ambiente de execução pode levar alguns minutos.
Criar um DataFrame multimodal
Crie um DataFrame multimodal que integre dados estruturados e não estruturados
usando o
método from_glob_path
da
classe Session
:
- No notebook, crie uma célula de código e copie o seguinte código nela:
Clique em
Executar.A chamada final para
df_image
retorna as imagens que foram adicionadas ao DataFrame. Como alternativa, chame o método.display
.
Combine dados estruturados e não estruturados no DataFrame
Combine dados de texto e imagem no DataFrame multimodais:
- No notebook, crie uma célula de código e copie o seguinte código nela:
Clique em Executar
.O código retorna os dados do DataFrame.
No notebook, crie uma célula de código e copie o seguinte código:
Clique em Executar
.O código retorna imagens do DataFrame em que o valor da coluna
author
éalice
.
Realizar transformações de imagem
Transforme dados de imagem usando os seguintes métodos da
classe Series.BlobAccessor
:
As imagens transformadas são gravadas no Cloud Storage.
Transformar imagens:
- No notebook, crie uma célula de código e copie o seguinte código nela:
- Atualize todas as referências a
{dst_bucket}
para se referir ao bucket que você criou, no formatogs://mybucket
. Clique em Executar
.O código retorna as imagens originais e todas as transformações delas.
Gerar texto
Gere texto a partir de dados multimodais usando o
método predict
da
classe GeminiTextGenerator
:
- No notebook, crie uma célula de código e copie o seguinte código nela:
Clique em Executar
.O código retorna as duas primeiras imagens em
df_image
, junto com o texto gerado em resposta à perguntawhat item is it?
para as duas imagens.No notebook, crie uma célula de código e copie o seguinte código:
Clique em Executar
.O código retorna as duas primeiras imagens em
df_image
, com o texto gerado em resposta à perguntawhat item is it?
para a primeira imagem e o texto gerado em resposta à perguntawhat color is the picture?
para a segunda imagem.
Gerar embeddings
Gere embeddings para dados multimodais usando o
método predict
da
classe MultimodalEmbeddingGenerator
:
- No notebook, crie uma célula de código e copie o seguinte código nela:
Clique em Executar
.O código retorna os embeddings gerados por uma chamada para um modelo de embedding.
PDFs em pedaços
Divida objetos PDF usando o
método pdf_chunk
da
classe Series.BlobAccessor
:
- No notebook, crie uma célula de código e copie o seguinte código nela:
Clique em Executar
.O código retorna os dados do PDF fragmentado.
Limpar
- In the Trusted Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.