Analise dados multimodais em Python com os DataFrames do BigQuery
Este tutorial mostra como analisar dados multimodais num notebook Python através das classes e dos métodos BigQuery DataFrames.
Este tutorial usa o catálogo de produtos do conjunto de dados público da loja de animais Cymbal.
Para carregar um bloco de notas já preenchido com as tarefas abordadas neste tutorial, consulte BigFrames Multimodal DataFrame.
Objetivos
- Crie DataFrames multimodais.
- Combine dados estruturados e não estruturados num DataFrame.
- Transformar imagens.
- Gerar texto e incorporações com base em dados de imagens.
- Dividir PDFs em partes para análise mais detalhada.
Custos
Neste documento, usa 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 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the BigQuery, BigQuery Connection, Cloud Storage, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Funções necessárias
Para receber as autorizações de que precisa para concluir este tutorial, peça ao seu administrador que lhe conceda as seguintes funções do IAM:
-
Crie uma associação:
Administrador da associação do BigQuery (
roles/bigquery.connectionAdmin
) -
Conceda autorizações à conta de serviço da associação:
Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin
) -
Crie um contentor do Cloud Storage:
Administrador de armazenamento (
roles/storage.admin
) -
Executar tarefas do BigQuery:
Utilizador do BigQuery (
roles/bigquery.user
) -
Criar e chamar UDFs do Python:
Editor de dados do BigQuery (
roles/bigquery.dataEditor
) -
Crie URLs que lhe permitam ler e modificar objetos do Cloud Storage:
Administrador de ObjectRef do BigQuery (
roles/bigquery.objectRefAdmin
) -
Use blocos de notas:
-
Utilizador da sessão de leitura do BigQuery (
roles/bigquery.readSessionUser
) -
Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser
) -
Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser
) -
Code Creator (
roles/dataform.codeCreator
)
-
Utilizador da sessão de leitura do BigQuery (
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Configurar
Nesta secção, cria o contentor do Cloud Storage, a ligação e o bloco de notas usados neste tutorial.
Crie um contentor
Crie um contentor do Cloud Storage para armazenar objetos transformados:
Na Trusted Cloud consola, aceda à página Recipientes.
Clique em
Criar.Na página Criar um contentor, na secção Começar, introduza um nome globalmente exclusivo que cumpra os requisitos do nome do contentor.
Clique em Criar.
Crie uma associação
Crie uma associação de recursos do Google Cloud e obtenha a conta de serviço da associação. O BigQuery usa a ligação para aceder a objetos no Cloud Storage.
Aceda à página do BigQuery.
No painel Explorador, clique em
Adicionar dados.É apresentada a caixa de diálogo Adicionar dados.
No painel Filtrar por, na secção Tipo de origem de dados, selecione Aplicações empresariais.
Em alternativa, no campo Pesquisar origens de dados, pode introduzir
Vertex AI
.Na secção Origens de dados em destaque, clique em Vertex AI.
Clique no cartão da solução Modelos da Vertex AI: federação do BigQuery.
Na lista Tipo de ligação, selecione Modelos remotos, funções remotas e BigLake (recurso da nuvem) da Vertex AI.
No campo ID de associação, escreva
bigframes-default-connection
.Clique em Criar associação.
Clique em Aceder à associação.
No painel Informações de associação, copie o ID da conta de serviço para utilização num passo posterior.
Conceda autorizações à conta de serviço da associação
Conceda à conta de serviço da ligação as funções de que precisa para aceder ao Cloud Storage e ao Vertex AI. Tem de conceder estas funções no mesmo projeto que criou ou selecionou na secção Antes de começar.
Para conceder a função, siga estes passos:
Aceda à página IAM e administrador.
Clique em
Conceder acesso.No campo Novos membros, introduza o ID da conta de serviço que copiou anteriormente.
No campo Selecionar uma função, escolha Cloud Storage e, de seguida, selecione Utilizador de objetos de armazenamento.
Clique em Adicionar outra função.
No campo Selecionar uma função, selecione Vertex AI e, de seguida, selecione Utilizador da Vertex AI.
Clique em Guardar.
Crie um notebook
Crie um notebook onde pode executar código Python:
Aceda à página do BigQuery.
Na barra de separadores do painel do editor, clique na
seta de menu pendente junto a Consulta SQL e, de seguida, clique em Bloco de notas.No painel Comece a partir de um modelo, clique em Fechar.
Clique em Ligar > Ligar a um tempo de execução.
Se tiver um tempo de execução existente, aceite as predefinições e clique em Associar. Se não tiver um tempo de execução existente, selecione Criar novo tempo de execução e, de seguida, clique em Associar.
A configuração do tempo de execução pode demorar vários minutos.
Crie um DataFrame multimodal
Crie um DataFrame multimodal que integre dados estruturados e não estruturados
através do
método from_glob_path
da classe
Session
:
- No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
Clique em
Executar.A chamada final para
df_image
devolve as imagens que foram adicionadas ao DataFrame. Em alternativa, pode chamar o método.display
.
Combine dados estruturados e não estruturados no DataFrame
Combine dados de texto e imagens no DataFrame multimodal:
- No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
Clique em Executar
.O código devolve os dados do DataFrame.
No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
Clique em Executar
.O código devolve imagens do DataFrame onde o valor da coluna
author
éalice
.
Realize transformações de imagens
Transforme dados de imagens através dos seguintes métodos da classe Series.BlobAccessor
:
As imagens transformadas são escritas no Cloud Storage.
Transformar imagens:
- No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
- Atualize todas as referências a
{dst_bucket}
para se referirem ao contentor que criou, no formatogs://mybucket
. Clique em Executar
.O código devolve as imagens originais, bem como todas as respetivas transformações.
Gerar texto
Gere texto a partir de dados multimodais através do método predict
da classe GeminiTextGenerator
:
- No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
Clique em Executar
.O código devolve as duas primeiras imagens em
df_image
, juntamente com o texto gerado em resposta à perguntawhat item is it?
para ambas as imagens.No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
Clique em Executar
.O código devolve as duas primeiras imagens em
df_image
, com texto gerado em resposta à perguntawhat item is it?
para a primeira imagem e texto gerado em resposta à perguntawhat color is the picture?
para a segunda imagem.
Gere incorporações
Gere incorporações para dados multimodais através do método predict
da classe MultimodalEmbeddingGenerator
:
- No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
Clique em Executar
.O código devolve as incorporações geradas por uma chamada a um modelo de incorporação.
Divida PDFs
Divida os objetos PDF em partes usando o método pdf_chunk
da classe Series.BlobAccessor
:
- No bloco de notas, crie uma célula de código e copie o seguinte código para a mesma:
Clique em Executar
.O código devolve os dados PDF divididos em blocos.
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.