Panoramica dell'AI generativa

Questo documento descrive le funzioni di intelligenza artificiale (AI) generativa supportate da BigQuery. Queste funzioni accettano input in linguaggio naturale e utilizzano modelli Vertex AI preaddestrati e modelli BigQuery integrati.

BigQuery offre una serie di funzioni AI per aiutarti in attività come le seguenti:

  • Generare contenuti creativi.
  • Analizza, rileva il sentiment e rispondi a domande su testo o dati non strutturati, come le immagini.
  • Riassumi le idee o le impressioni chiave trasmesse dai contenuti.
  • Estrai dati strutturati dal testo.
  • Classifica il testo o i dati non strutturati in categorie definite dall'utente.
  • Genera incorporamenti per cercare testo, immagini e video simili.
  • Valuta gli input per classificarli in base alla qualità, alla somiglianza o ad altri criteri.

Le funzioni di AI sono raggruppate nelle seguenti categorie per aiutarti a svolgere queste attività:

  • Funzioni di AI generica: queste funzioni ti offrono il pieno controllo e la massima trasparenza sulla scelta del modello, del prompt e dei parametri da utilizzare.

    • Esegui l'inferenza LLM, ad esempio per rispondere a domande sui tuoi dati

      • AI.GENERATE è la funzione di inferenza più flessibile, che ti consente di analizzare qualsiasi dato strutturato o non strutturato.
      • AI.GENERATE_TEXT è una versione con valori di tabella di AI.GENERATE che supporta anche i modelli partner e aperti.
    • Genera output strutturati, ad esempio estrai nomi, indirizzi o descrizioni di oggetti da testo, documenti o immagini.

      • AI.GENERATE, quando specifichi uno schema di output.
      • AI.GENERATE_TABLE è una versione con valori di tabella di AI.GENERATE che chiama un modello remoto e ti consente di specificare uno schema di output personalizzato.
      • Se lo schema di output ha un solo campo, puoi utilizzare una delle funzioni specializzate: AI.GENERATE_BOOL, AI.GENERATE_DOUBLE o AI.GENERATE_INT.
    • Genera embedding per la ricerca semantica e il clustering

      • AI.EMBED: Crea un embedding da dati di testo o immagine.
      • AI.GENERATE_EMBEDDING: una funzione con valori di tabella che aggiunge una colonna di dati di testo, immagine, audio, video o documento incorporati alla tabella.
  • Funzioni di AI gestita: queste funzioni hanno una sintassi semplificata e sono ottimizzate per costi e qualità. Con la modalità ottimizzata (anteprima), queste funzioni vengono scalate a milioni o miliardi di righe.

    • Filtrare i dati con condizioni in linguaggio naturale

      • AI.IF
    • Valutare l'input, ad esempio in base alla qualità o al sentiment

      • AI.SCORE
    • Classificare l'input in categorie definite dall'utente

      • AI.CLASSIFY
  • Funzioni specifiche per attività: queste funzioni utilizzano le API Cloud AI per aiutarti a svolgere attività come l'elaborazione del linguaggio naturale, la traduzione automatica, l'elaborazione di documenti, la trascrizione audio e la visione artificiale.

Funzioni di AI per finalità generali

Le funzioni di AI generica ti offrono il pieno controllo e la massima trasparenza sulla scelta del modello, del prompt e dei parametri da utilizzare. Il loro output include informazioni dettagliate sulla chiamata al modello, tra cui lo stato e la risposta completa del modello, che potrebbe includere informazioni sulla classificazione di sicurezza o sulle citazioni.

Esegui l'inferenza LLM

La funzione AI.GENERATE è una funzione di inferenza flessibile che funziona inviando richieste a un modello Vertex AI Gemini e restituendo la risposta del modello. Puoi utilizzare questa funzione per analizzare dati di testo, immagini, audio, video o PDF. Ad esempio, potresti analizzare le immagini di arredamento per la casa per generare testo per una colonna design_type, in modo che lo SKU dell'arredamento abbia una descrizione associata, ad esempio mid-century modern o farmhouse.

Puoi eseguire attività di IA generativa utilizzando modelli remoti in BigQuery ML per fare riferimento a modelli di cui è stato eseguito il deployment o ospitati in Vertex AI con la funzione con valori di tabella AI.GENERATE_TEXT. Puoi utilizzare i seguenti tipi di modelli remoti:

Utilizza i seguenti argomenti per provare la generazione di testo in BigQuery ML:

Per alcuni modelli, puoi scegliere facoltativamente di configurare l'ottimizzazione supervisionata, che ti consente di addestrare il modello sui tuoi dati per renderlo più adatto al tuo caso d'uso. Tutta l'inferenza avviene in Vertex AI. I risultati vengono archiviati in BigQuery.

Generare dati strutturati

La generazione di dati strutturati è molto simile alla generazione di testo, tranne per il fatto che puoi formattare la risposta del modello specificando uno schema SQL. Ad esempio, potresti generare una tabella che contiene il nome, il numero di telefono, l'indirizzo, la richiesta e il preventivo di prezzo di un cliente a partire dalla trascrizione di una telefonata.

Puoi generare dati strutturati nei seguenti modi:

Genera embedding

Un incorporamento è un vettore numerico ad alta dimensione che rappresenta una determinata entità, come un testo o un file audio. La generazione di incorporamenti ti consente di acquisire la semantica dei dati in modo da semplificare il ragionamento e il confronto dei dati.

Di seguito sono riportati alcuni casi d'uso comuni per la generazione di incorporamenti:

  • Utilizzo della Retrieval-Augmented Generation (RAG) per ampliare le risposte del modello alle query degli utenti facendo riferimento a dati aggiuntivi provenienti da un'origine attendibile. La RAG offre una migliore accuratezza dei fatti e coerenza delle risposte, oltre a fornire l'accesso a dati più recenti rispetto a quelli di addestramento del modello.
  • Esecuzione della ricerca multimodale. Ad esempio, l'utilizzo dell'input di testo per cercare immagini.
  • Eseguire la ricerca semantica per trovare elementi simili per suggerimenti, sostituzione e deduplicazione dei record.
  • Creazione di incorporamenti da utilizzare con un modello K-means per il clustering.

Per saperne di più su come generare gli incorporamenti e utilizzarli per eseguire queste attività, consulta la Introduzione agli incorporamenti e alla ricerca vettoriale.

Funzioni di AI gestite

Le funzioni di AI gestita semplificano le attività di routine, come il filtraggio, la classificazione o l'aggregazione. Queste funzioni possono analizzare dati di testo, immagini, audio, video o PDF. Queste funzioni utilizzano Gemini e non richiedono personalizzazione. BigQuery utilizza l'ingegneria dei prompt e può selezionare il modello e i parametri appropriati da utilizzare per l'attività specifica per ottimizzare la qualità e la coerenza dei risultati. Ogni funzione restituisce un valore scalare, ad esempio BOOL, FLOAT64 o STRING, e non include ulteriori informazioni sullo stato del modello. Sono disponibili le seguenti funzioni di AI gestita:

  • AI.IF: Filtra testo o dati multimodali, ad esempio in una clausola WHERE o JOIN, in base a un prompt. Ad esempio, potresti filtrare le descrizioni dei prodotti in base a quelle che descrivono un articolo che potrebbe essere un buon regalo.
  • AI.SCORE: Valuta gli input in base a un prompt per classificare le righe in base a qualità, somiglianza o altri criteri. Puoi utilizzare questa funzione in una clausola ORDER BY per estrarre i primi K elementi in base al punteggio. Ad esempio, potresti trovare le 10 recensioni degli utenti più positive o negative per un prodotto.
  • AI.CLASSIFY: Classifica il testo in categorie definite dall'utente. Puoi utilizzare questa funzione in una clausola GROUP BY per raggruppare gli input in base alle categorie che definisci. Ad esempio, potresti classificare i ticket di assistenza in base al fatto che riguardino fatturazione, spedizione, qualità del prodotto o altro.

Per un tutorial che mostra esempi di come utilizzare queste funzioni, consulta Eseguire l'analisi semantica con le funzioni di AI gestite.

Per un tutorial sul notebook che mostra come utilizzare le funzioni AI gestite e generiche, consulta Analisi semantica con le funzioni AI.

Funzioni specifiche per le attività

Oltre alle funzioni più generali descritte nelle sezioni precedenti, puoi sviluppare soluzioni specifiche per le attività in BigQuery ML utilizzando le API Cloud AI. Le attività supportate includono:

Per saperne di più, consulta la panoramica delle soluzioni specifiche per attività.

Località

Le località supportate per i modelli di generazione ed embedding di testo variano in base al tipo e alla versione del modello che utilizzi. Per ulteriori informazioni, consulta Località.

Prezzi

Ti vengono addebitate le risorse di calcolo che utilizzi per eseguire query sui modelli. I modelli remoti effettuano chiamate ai modelli Vertex AI, pertanto le query sui modelli remoti comportano anche addebiti da Vertex AI.

Per ulteriori informazioni, vedi Prezzi di BigQuery ML.

Monitorare i costi

Le funzioni di AI generativa in BigQuery funzionano inviando richieste a Vertex AI, che può comportare costi. Per monitorare i costi di Vertex AI sostenuti da un job eseguito in BigQuery, segui questi passaggi:

  1. Visualizza i report sulla fatturazione in fatturazione Cloud.
  2. Utilizza i filtri per perfezionare i risultati.

    Per i servizi, seleziona Vertex AI.

  3. Per visualizzare gli addebiti per un job specifico, filtra per etichetta.

    Imposta la chiave su bigquery_job_id_prefix e il valore sull'ID offerta di lavoro della tua offerta di lavoro. Se l'ID job è più lungo di 63 caratteri, utilizza solo i primi 63 caratteri. Se il tuo ID lavoro contiene caratteri maiuscoli, convertili in minuscoli. In alternativa, puoi associare i lavori a un'etichetta personalizzata per trovarli più facilmente in un secondo momento.

Potrebbero essere necessarie fino a 24 ore prima che alcuni addebiti vengano visualizzati in fatturazione Cloud.

Monitoraggio

Per comprendere meglio il comportamento delle funzioni di AI che chiami in BigQuery, puoi attivare la registrazione delle richieste e delle risposte. Per registrare l'intera richiesta e risposta inviata a e ricevuta da Vertex AI, segui questi passaggi:

  1. Abilita i log di richiesta-risposta in Vertex AI. I log vengono archiviati in BigQuery. Devi attivare separatamente il logging per ogni foundation model e regione diversi. Per registrare le query eseguite nella regione us, specifica la regione us-central1 nella richiesta. Per registrare le query eseguite nella regione eu, specifica la regione europe-west4 nella richiesta.

  2. Esegui una query utilizzando una funzione AI che chiama Vertex AI utilizzando il modello per cui hai attivato la registrazione nel passaggio precedente.

  3. Per visualizzare la richiesta e la risposta complete di Vertex AI, esegui una query nella tabella di logging per le righe in cui il campo labels.bigquery_job_id_prefix della colonna full_request corrisponde ai primi 63 caratteri del tuo ID job. Se vuoi, puoi utilizzare un'etichetta di query personalizzata per facilitare la ricerca della query nei log.

    Ad esempio, puoi utilizzare una query simile alla seguente:

    SELECT *
    FROM `my_project.my_dataset.request_response_logging`
    WHERE JSON_VALUE(full_request, '$.labels.bigquery_job_id_prefix') = 'bquxjob_123456...';
    

Gestione degli errori

Gli errori a livello di riga, come RESOURCE_EXHAUSTED, possono verificarsi se una funzione AI supera la quota o i limiti del servizio remoto. Quando si verifica un errore a livello di riga, la funzione restituisce NULL per quella riga, il che può comportare risultati della query incompleti.

Tutte le funzioni di AI possono riscontrare questi errori. Tuttavia, le funzioni di AI gestite (AI.IF, AI.CLASSIFY e AI.SCORE) supportano l'argomento max_error_ratio per aiutarti a gestirle. Utilizza questo argomento per impostare una soglia di errore che consente alla query di avere esito positivo nonostante gli errori a livello di riga.

Il valore predefinito di max_error_ratio è 1.0. Per ridurre la tolleranza agli errori, imposta un valore inferiore (ad esempio 0.2) in modo che la query non vada a buon fine anziché riuscire con errori parziali. Per i dettagli sulla sintassi, consulta la documentazione di riferimento per AI.IF, AI.CLASSIFY, o AI.SCORE.

Se la query ha esito positivo con errori parziali, BigQuery restituisce un avviso. Per ulteriori informazioni sugli errori di funzione, controlla il campo Errori di funzione di AI generativa nella scheda Informazioni sul job dei risultati della query nella console Google Cloud .

Se la query include una clausola LIMIT, il limite viene applicato dopo che il modello elabora un batch di righe. Di conseguenza, la proporzione di valori NULL nel set di risultati finali potrebbe sembrare superiore al valore max_error_ratio specificato.

Ad esempio, supponiamo che la query abbia una clausola LIMIT 10 e un max_error_ratio di 0.2. Il modello potrebbe elaborare 20 righe prima dell'applicazione del limite. Se 3 di queste 20 righe non vanno a buon fine, il tasso di errore è 0.15 (15%), che rientra nella soglia del 20%. Tuttavia, se il sottoinsieme di righe selezionato dalla clausola LIMIT include tutte e tre le righe non riuscite, l'output visibile conterrà il 30% di valori NULL.

Passaggi successivi