Analizzare i dati multimodali in BigQuery
Questo documento descrive le funzionalità di BigQuery che puoi utilizzare per analizzare i dati multimodali. Alcune funzionalità sono disponibili nella Google Cloud console e nello strumento a riga di comando bq, mentre altre sono disponibili utilizzando BigQuery DataFrames in Python. Puoi utilizzare molte di queste funzionalità insieme per semplificare i flussi di lavoro di analisi e trasformazione dei dati multimodali.
Le funzionalità di dati multimodali di BigQuery ti consentono di eseguire le seguenti attività:
- Integra i dati non strutturati nelle tabelle standard utilizzando i valori
ObjectRef
. - Utilizza i valori
ObjectRefRuntime
per lavorare con i dati non strutturati nei flussi di lavoro di analisi e trasformazione. - Genera testo, incorporamenti e valori scalari da dati multimodali utilizzando le funzioni di AI generativa di BigQuery ML con i modelli Gemini.
- Crea DataFrame multimodali in BigQuery DataFrames.
- Trasforma le immagini e suddividi i file PDF utilizzando i metodi
Series.BlobAccessor
di BigQuery DataFrames. - Genera testo ed embedding da dati multimodali utilizzando metodi di AI generativa di BigQuery DataFrames.
Per un tutorial passo passo che utilizza la Google Cloud console, consulta Analisi dei dati multimodali con SQL. Per un tutorial passo passo che utilizza BigQuery DataFrames in Python, consulta Analizzare i dati multimodali in Python con BigQuery DataFrames.
Vantaggi
Le funzionalità di dati multimodali di BigQuery offrono i seguenti vantaggi:
- Composabilità: puoi archiviare e gestire i dati strutturati e non strutturati nella stessa riga della tabella standard utilizzando i valori
ObjectRef
. Ad esempio, puoi memorizzare le immagini di un prodotto nella stessa riga del resto delle informazioni sul prodotto. Puoi utilizzare le funzioni SQL standard per creare e aggiornare le colonne contenenti valoriObjectRef
e puoi creare valoriObjectRef
come output di un'azione di trasformazione su un oggetto. - Utilizzo dei dati sugli oggetti nei prompt di AI generativa: utilizza i valori
ObjectRefRuntime
come input per le funzioni di AI generativa. Ad esempio, puoi generare embedding su dati di immagini e testo della stessa tabella. Per la generazione di valori scalari e di testo, puoi anche fare riferimento a più oggetti all'interno del prompt inviato a un modello. Ad esempio, potresti creare un prompt che chieda al modello di confrontare due immagini di animali e poi restituire un testo che indichi se mostrano lo stesso tipo di animale. - Mantenimento dell'ordine dei chunk: puoi suddividere gli oggetti in chunk e poi memorizzarli come array di valori
ObjectRef
in una colonna di tabella standard per mantenere invariato il loro ordine. Ad esempio, puoi analizzare le immagini di un video e poi archiviarle come array di valoriObjectRef
, in modo che rimangano nell'ordine in cui appaiono nel video originale.
ObjectRef
valori
Un valore ObjectRef
è un valore STRUCT
che utilizza il
formato ObjectRef
.
Puoi archiviare i metadati degli oggetti Cloud Storage e un autorizzatore associato in una
tabella standard BigQuery
creando una colonna STRUCT
o ARRAY<STRUCT>
che utilizzi questo formato.
Il valore dell'autorerizzante identifica la
connessione alla risorsa Cloud
utilizzata da BigQuery per accedere all'oggetto Cloud Storage.
Utilizza i valori ObjectRef
quando devi integrare i dati non strutturati in una tabella standard. Ad esempio, in una tabella dei prodotti, puoi memorizzare le immagini dei prodotti
nella stessa riga con il resto delle informazioni sul prodotto aggiungendo una colonna
contenente un valore ObjectRef
.
Crea e aggiorna i valori ObjectRef
utilizzando le seguenti funzioni GoogleSQL:
OBJ.MAKE_REF
: crea un valoreObjectRef
contenente i metadati di un oggetto Cloud Storage.OBJ.FETCH_METADATA
: recupera i metadati di Cloud Storage per un valoreObjectRef
che è parzialmente compilato con i valoriuri
eauthorizer
.
Per ulteriori informazioni, consulta
Specificare le colonne ObjectRef
negli schemi delle tabelle.
ObjectRefRuntime
valori
Un valore ObjectRefRuntime
è un valore JSON
che utilizza lo
schema ObjectRefRuntime
.
Un valore ObjectRefRuntime
contiene i metadati dell'oggetto Cloud Storage
del valore ObjectRef
utilizzato per crearlo, un autorizzatore associato
e gli URL di accesso. Puoi utilizzare gli URL di accesso per leggere o modificare l'oggetto in
Cloud Storage.
Utilizza i valori ObjectRefRuntime
per lavorare con i dati degli oggetti nei flussi di lavoro di analisi e trasformazione. Gli URL di accesso nei valori ObjectRefRuntime
scadono
al massimo dopo 6 ore, anche se puoi configurare un'ora di scadenza più breve. Se mantieni i valori ObjectRefRuntime
in un punto qualsiasi del flusso di lavoro, devi aggiornare regolarmente questi dati. Per mantenere i metadati degli oggetti, archivia invece i valori ObjectRef
e utilizzali per generare i valori ObjectRefRuntime
quando ti servono. I valori ObjectRef
non devono essere aggiornati, a meno che
gli oggetti sottostanti in Cloud Storage non vengano modificati.
Crea valori ObjectRefRuntime
utilizzando la
funzione OBJ.GET_ACCESS_URL
.
Funzioni di IA generativa
Genera testo, incorporamenti e valori scalari in base all'input ObjectRefRuntime
utilizzando le seguenti funzioni di AI generativa con i modelli Gemini:
ML.GENERATE_TEXT
AI.GENERATE_TABLE
AI.GENERATE
AI.GENERATE_BOOL
AI.GENERATE_DOUBLE
AI.GENERATE_INT
ML.GENERATE_EMBEDDING
Per tutte le funzioni tranne ML.GENERATE_EMBEDDING
, puoi fornire valori ObjectRefRuntime
come singoli valori o in matrici.
ML.GENERATE_EMBEDDING
accetta solo valori singoli.
Lavorare con dati multimodali in Python
Puoi analizzare i dati multimodali in Python utilizzando i metodi e le classi di BigQuery DataFrames.
DataFrame multimodali
Crea un dataframe multimodale che integri dati strutturati e non strutturati utilizzando i seguenti metodi Session
:
- Metodo
from_glob_path
: crea un DataFrame multimodale da un bucket Cloud Storage. - Metodo
read_gbq_object_table
: crea un DataFrame multimodale da una tabella di oggetti.
Metodi di trasformazione degli oggetti
Trasforma i dati dell'oggetto utilizzando i seguenti metodi
Series.BlobAccessor
:
- Metodo
pdf_chunk
: consente di suddividere gli oggetti PDF da un DataFrame multimodale. I seguenti metodi per trasformare gli oggetti immagine da un DataFrame multimodale:
Metodi di IA generativa
Utilizza i seguenti metodi per eseguire attività di AI generativa sui dati multimodali:
- Metodo
predict
della classeGeminiTextGenerator
: genera testo in base a dati multimodali. - Metodo
predict
della classeMultimodalEmbeddingGenerator
: genera embedding in base a dati multimodali.
Tabelle di oggetti
Se sei nella lista consentita per l'anteprima dei dati multimodali, tutte le nuove
tabelle di oggetti che
crei hanno una colonna ref
contenente un valore ObjectRef
per il
dato oggetto. La connessione utilizzata per creare la tabella degli oggetti viene utilizzata per compilare i valori authorizer
nella colonna ref
. Puoi utilizzare la colonna ref
per compilare e aggiornare i valori ObjectRef
nelle tabelle standard.
Limitazioni
Le seguenti limitazioni si applicano alle funzionalità dei dati multimodali di BigQuery:
- Devi eseguire qualsiasi query che faccia riferimento ai valori
ObjectRef
nello stesso progetto della tabella che li contiene.ObjectRef
- Non puoi avere più di 20 connessioni nel progetto e nella regione in cui stai eseguendo query che fanno riferimento a valori
ObjectRef
oObjectRefRuntime
. Ad esempio, se esegui le query inasia-east1
inmyproject
, non puoi avere più di 20 connessioni inasia-east1
inmyproject
.
Costi
I seguenti costi si applicano quando utilizzi i dati multimodali:
- L'archiviazione dei metadati degli oggetti come valori
ObjectRef
nelle tabelle standard contribuisce al costo di archiviazione di BigQuery per la tabella. - Le query eseguite sui valori
ObjectRef
comportano costi di calcolo di BigQuery. - I nuovi oggetti creati dalle trasformazioni degli oggetti comportano costi di Cloud Storage.
- I nuovi dati che crei e mantieni in BigQuery comportano costi di archiviazione di BigQuery.
- L'utilizzo delle funzioni di IA generativa comporta costi di Vertex AI.
- L'utilizzo di funzioni UDF di Python di BigQuery e di DataFrame multimodali e metodi di trasformazione degli oggetti in DataFrame di BigQuery comporta costi per le funzioni UDF di Python.
Per ulteriori informazioni, consulta le seguenti pagine dei prezzi:
- Prezzi di BigQuery
- Prezzi delle funzioni UDF di Python di BigQuery
- Prezzi di Vertex AI
- Prezzi di Cloud Storage
Passaggi successivi
- Specifica le colonne
ObjectRef
negli schemi delle tabelle. - Analizza i dati multimodali con SQL.
- Analizza i dati multimodali in Python con BigQuery DataFrames.
- Scopri di più sull'AI generativa in BigQuery ML.
- Scopri di più su BigQuery DataFrames.