Analizzare i dati multimodali in Python con BigQuery DataFrames
Questo tutorial mostra come analizzare i dati multimodali in un blocco note Python utilizzando metodi e classi di BigQuery DataFrames.
Questo tutorial utilizza il catalogo dei prodotti del set di dati pubblico del negozio di animali Cymbal.
Per caricare un notebook già compilato con le attività trattate in questo tutorial, consulta BigFrames Multimodal DataFrame.
Obiettivi
- Crea DataFrame multimodali.
- Combina i dati strutturati e non strutturati in un DataFrame.
- Trasforma le immagini.
- Genera testo ed embedding in base ai dati delle immagini.
- Suddividi i PDF per ulteriori analisi.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
- 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.
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.
Per ulteriori informazioni, consulta le seguenti pagine dei prezzi:
- Prezzi di BigQuery
- Prezzi delle funzioni UDF Python di BigQuery
- Prezzi di Cloud Storage
- Prezzi di Vertex AI
Prima di iniziare
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
Enable the BigQuery, BigQuery Connection, Cloud Storage, and Vertex AI APIs.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Crea una connessione: Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
) - Concedi le autorizzazioni all'account di servizio della connessione: Amministratore IAM del progetto (
roles/resourcemanager.projectIamAdmin
) - Crea un bucket Cloud Storage: Amministrazione archiviazione (
roles/storage.admin
) - Esegui job BigQuery: Utente BigQuery (
roles/bigquery.user
) - Crea e chiama le funzioni UDF di Python: Editor dati BigQuery (
roles/bigquery.dataEditor
) - Crea URL che ti consentano di leggere e modificare gli oggetti Cloud Storage: BigQuery ObjectRef Admin (
roles/bigquery.objectRefAdmin
) - Utilizzare i notebook:
- BigQuery Read Session User (
roles/bigquery.readSessionUser
) - Utente runtime del blocco note (
roles/aiplatform.notebookRuntimeUser
) - Utente runtime del blocco note (
roles/aiplatform.notebookRuntimeUser
) - Code Creator (
roles/dataform.codeCreator
)
- BigQuery Read Session User (
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Configura
In questa sezione crei il bucket Cloud Storage, la connessione e il notebook utilizzati in questo tutorial.
Crea un bucket
Crea un bucket Cloud Storage per archiviare gli oggetti trasformati:
Nella Google Cloud console, vai alla pagina Bucket.
Fai clic su
Crea.Nella pagina Crea un bucket, nella sezione Inizia, inserisci un nome univoco a livello globale che soddisfi i requisiti per i nomi dei bucket.
Fai clic su Crea.
Crea una connessione
Crea una connessione a una risorsa Cloud e recupera il account di servizio della connessione. BigQuery utilizza la connessione per accedere agli oggetti in Cloud Storage.
Vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic su
Aggiungi dati.Viene visualizzata la finestra di dialogo Aggiungi dati.
Nel riquadro Filtra per, seleziona Applicazioni aziendali nella sezione Tipo di origine dati.
In alternativa, nel campo Cerca origini dati, puoi inserire
Vertex AI
.Nella sezione Origini dati in primo piano, fai clic su Vertex AI.
Fai clic sulla scheda della soluzione Modelli Vertex AI: federazione BigQuery.
Nell'elenco Tipo di connessione, seleziona Modelli remoti di Vertex AI, funzioni remote e BigLake (risorsa Cloud).
Nel campo ID connessione, digita
bigframes-default-connection
.Fai clic su Crea connessione.
Fai clic su Vai alla connessione.
Nel riquadro Informazioni sulla connessione, copia l'ID account di servizio da utilizzare in un passaggio successivo.
Concedi le autorizzazioni all'account di servizio della connessione
Concedi all'account di servizio della connessione i ruoli di cui ha bisogno per accedere a Cloud Storage e Vertex AI. Devi concedere questi ruoli nello stesso progetto che hai creato o selezionato nella sezione Prima di iniziare.
Per concedere il ruolo, segui questi passaggi:
Vai alla pagina IAM e amministrazione.
Fai clic su
Concedi l'accesso.Nel campo Nuove entità, inserisci l'ID account di servizio che hai copiato in precedenza.
Nel campo Seleziona un ruolo, scegli Cloud Storage e poi Utente oggetto Storage.
Fai clic su Aggiungi un altro ruolo.
Nel campo Seleziona un ruolo, seleziona Vertex AI e poi Utente Vertex AI.
Fai clic su Salva.
Crea un notebook
Crea un notebook in cui puoi eseguire codice Python:
Vai alla pagina BigQuery.
Nella barra delle schede del riquadro dell'editor, fai clic sulla freccia menu a discesa
accanto a Query SQL e poi su Notebook.Nel riquadro Inizia con un modello, fai clic su Chiudi.
Fai clic su Connetti > Connetti a un runtime.
Se hai già un runtime, accetta le impostazioni predefinite e fai clic su Connetti. Se non hai un ambiente di runtime esistente, seleziona Crea nuovo ambiente di runtime e poi fai clic su Connetti.
La configurazione del runtime potrebbe richiedere diversi minuti.
Creare un DataFrame multimodale
Crea un dataframe multimodale che integra dati strutturati e non strutturati utilizzando il metodo from_glob_path
della classe Session
:
- Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
Fai clic su
Esegui.L'ultima chiamata a
df_image
restituisce le immagini aggiunte al DataFrame. In alternativa, puoi chiamare il metodo.display
.
Combinare dati strutturati e non strutturati nel DataFrame
Combina i dati di testo e immagine nel DataFrame multimodale:
- Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
Fai clic su Esegui
.Il codice restituisce i dati del DataFrame.
Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
Fai clic su Esegui
.Il codice restituisce le immagini dal DataFrame in cui il valore della colonna
author
èalice
.
Eseguire trasformazioni delle immagini
Trasforma i dati delle immagini utilizzando i seguenti metodi della classe Series.BlobAccessor
:
Le immagini trasformate vengono scritte in Cloud Storage.
Trasforma le immagini:
- Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
- Aggiorna tutti i riferimenti a
{dst_bucket}
in modo che facciano riferimento al bucket che hai creato, nel formatogs://mybucket
. Fai clic su Esegui
.Il codice restituisce le immagini originali e tutte le relative trasformazioni.
Genera testo
Genera testo da dati multimodali utilizzando il metodo predict
della classe GeminiTextGenerator
:
- Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
Fai clic su Esegui
.Il codice restituisce le prime due immagini in
df_image
, insieme al testo generato in risposta alla domandawhat item is it?
per entrambe le immagini.Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
Fai clic su Esegui
.Il codice restituisce le prime due immagini in
df_image
, con il testo generato in risposta alla domandawhat item is it?
per la prima immagine e il testo generato in risposta alla domandawhat color is the picture?
per la seconda immagine.
Genera embedding
Genera embedding per i dati multimodali utilizzando il metodo predict
della classe MultimodalEmbeddingGenerator
:
- Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
Fai clic su Esegui
.Il codice restituisce gli embedding generati da una chiamata a un modello di embedding.
Suddividere i PDF
Suddividi gli oggetti PDF utilizzando il metodo pdf_chunk
della classe Series.BlobAccessor
:
- Nel notebook, crea una cella di codice e copia il seguente codice al suo interno:
Fai clic su Esegui
.Il codice restituisce i dati PDF suddivisi in blocchi.
Esegui la pulizia
- In the Google 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.