Analizza i dati multimodali in Python con BigQuery DataFrames
Questo tutorial mostra come analizzare dati multimodali in un notebook Python utilizzando classi e metodi BigQuery DataFrames.
Questo tutorial utilizza il catalogo 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 dati strutturati e non strutturati in un DataFrame.
- Trasformare le immagini.
- Genera testo ed embedding in base ai dati delle immagini.
- Dividi i PDF in blocchi 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:
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 al account di servizio della connessione:
Amministratore IAM progetto (
roles/resourcemanager.projectIamAdmin
) -
Crea un bucket Cloud Storage:
Amministratore Storage (
roles/storage.admin
) -
Esegui job BigQuery:
Utente BigQuery (
roles/bigquery.user
) -
Crea e chiama UDF Python:
Editor dati BigQuery (
roles/bigquery.dataEditor
) -
Crea URL che ti consentono 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 blocco note (
roles/aiplatform.notebookRuntimeUser
) -
Utente runtime blocco note (
roles/aiplatform.notebookRuntimeUser
) -
Code Creator (
roles/dataform.codeCreator
)
-
BigQuery Read Session User (
Per saperne di più sulla concessione dei ruoli, consulta Gestisci 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, creerai 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 console Google Cloud , vai alla pagina Bucket.
Fai clic su
Crea.Nella pagina Crea un bucket, inserisci un nome univoco globale che soddisfi i requisiti per il nome del bucket nella sezione Inizia.
Fai clic su Crea.
Crea una connessione
Crea una connessione risorsa Cloud e ottieni 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.Si apre 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 evidenza, fai clic su Vertex AI.
Fai clic sulla scheda della soluzione Vertex AI Models: BigQuery Federation.
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 del account di servizio da utilizzare in un passaggio successivo.
Concedi le autorizzazioni al account di servizio della connessione
Concedi al account di servizio della connessione i ruoli necessari 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 seleziona Utente oggetti Storage.
Fai clic su Aggiungi un altro ruolo.
Nel campo Seleziona un ruolo, seleziona Vertex AI, quindi seleziona Utente Vertex AI.
Fai clic su Salva.
Crea un notebook
Crea un notebook in cui puoi eseguire il 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 fai clic su Blocco note.Nel riquadro Inizia con un modello, fai clic su Chiudi.
Fai clic su Connetti > Connetti a un runtime.
Se hai un runtime esistente, accetta le impostazioni predefinite e fai clic su Connetti. Se non hai un runtime esistente, seleziona Crea nuovo runtime, quindi fai clic su Connetti.
La configurazione del runtime potrebbe richiedere diversi minuti.
Crea un DataFrame multimodale
Crea un DataFrame multimodale che integra dati strutturati e non strutturati
utilizzando il
metodo from_glob_path
della
classe Session
:
- Nel blocco note, crea una cella di codice e copia il seguente codice:
Fai clic su
Esegui.L'ultima chiamata a
df_image
restituisce le immagini che sono state 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 blocco note, crea una cella di codice e copia il seguente codice:
Fai clic su Esegui
.Il codice restituisce i dati del DataFrame.
Nel blocco note, crea una cella di codice e copia il seguente codice:
Fai clic su Esegui
.Il codice restituisce le immagini del 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.
Trasformare le immagini:
- Nel blocco note, crea una cella di codice e copia il seguente codice:
- 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 blocco note, crea una cella di codice e copia il seguente codice:
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 blocco note, crea una cella di codice e copia il seguente codice:
Fai clic su Esegui
.Il codice restituisce le prime due immagini in
df_image
, con testo generato in risposta alla domandawhat item is it?
per la prima immagine e testo generato in risposta alla domandawhat color is the picture?
per la seconda immagine.
Generare incorporamenti
Genera embedding per dati multimodali utilizzando il
metodo predict
della
classe MultimodalEmbeddingGenerator
:
- Nel blocco note, crea una cella di codice e copia il seguente codice:
Fai clic su Esegui
.Il codice restituisce gli embedding generati da una chiamata a un modello di embedding.
PDF dei chunk
Dividi gli oggetti PDF utilizzando il
metodo pdf_chunk
della
classe Series.BlobAccessor
:
- Nel blocco note, crea una cella di codice e copia il seguente codice:
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.