Introduzione agli embedding e alla ricerca vettoriale

Questo documento fornisce una panoramica degli embedding e della ricerca vettoriale in BigQuery. La ricerca vettoriale è una tecnica per confrontare oggetti simili utilizzando gli incorporamenti e viene utilizzata per potenziare i prodotti Google, tra cui la Ricerca Google, YouTube e Google Play. Puoi utilizzare la ricerca vettoriale per eseguire ricerche su larga scala. Quando utilizzi gli indici vettoriali con la ricerca vettoriale, puoi sfruttare tecnologie di base come l'indicizzazione dei file invertiti (IVF) e l'algoritmo ScaNN.

La ricerca vettoriale si basa sugli embedding. Gli incorporamenti sono vettori numerici ad alta dimensionalità che rappresentano una determinata entità, come un testo o un file audio. I modelli di machine learning (ML) utilizzano gli incorporamenti per codificare la semantica di queste entità in modo da semplificarne il ragionamento e il confronto. Ad esempio, un'operazione comune nei modelli di clustering, classificazione e suggerimento è misurare la distanza tra i vettori in uno spazio di incorporamento per trovare gli elementi semanticamente più simili.

Questo concetto di similarità semantica e distanza in uno spazio di embedding è dimostrato visivamente quando si considera come potrebbero essere tracciati diversi elementi. Ad esempio, termini come gatto, cane e leone, che rappresentano tutti tipi di animali, sono raggruppati in questo spazio a causa delle loro caratteristiche semantiche condivise. Allo stesso modo, termini come auto, camion e il termine più generico veicolo formerebbero un altro cluster. Ciò è mostrato nell'immagine seguente:

Concetti semanticamente simili, come _gatto_, _cane_ e _leone_, o _auto_, _camion_ e _veicolo_, sono vicini
nello spazio di embedding.

Puoi notare che i cluster di animali e veicoli sono posizionati molto distanti l'uno dall'altro. La separazione tra i gruppi illustra il principio secondo cui più gli oggetti sono vicini nello spazio di incorporamento, più sono simili dal punto di vista semantico e maggiore è la distanza, maggiore è la dissimilarità semantica.

Casi d'uso

La combinazione di generazione di embedding e ricerca vettoriale consente molti casi d'uso interessanti. Di seguito sono riportati alcuni possibili casi d'uso:

  • Generazione aumentata dal recupero (RAG): analizza i documenti, esegui la ricerca vettoriale sui contenuti e genera risposte riepilogative a domande in linguaggio naturale utilizzando i modelli Gemini, il tutto all'interno di BigQuery. Per un notebook che illustra questo scenario, consulta Creare un'applicazione di ricerca vettoriale utilizzando BigQuery DataFrames.
  • Consigli di prodotti sostitutivi o corrispondenti:migliora le applicazioni di e-commerce suggerendo alternative ai prodotti in base al comportamento dei clienti e alla somiglianza dei prodotti.
  • Analisi dei log:aiuta i team a eseguire il triage proattivo delle anomalie nei log e ad accelerare le indagini. Puoi anche utilizzare questa funzionalità per arricchire il contesto per gli LLM, al fine di migliorare i flussi di lavoro di rilevamento delle minacce, analisi forense e risoluzione dei problemi. Per un notebook che illustra questo scenario, vedi Log Anomaly Detection & Investigation with Text Embeddings + BigQuery Vector Search.
  • Clustering e targeting:segmenta i segmenti di pubblico con precisione. Ad esempio, una catena di ospedali potrebbe raggruppare i pazienti utilizzando note in linguaggio naturale e dati strutturati, oppure un professionista del marketing potrebbe scegliere come target gli annunci in base all'intento della query. Per un notebook che illustra questo scenario, vedi Create-Campaign-Customer-Segmentation.
  • Risoluzione e deduplicazione delle entità:pulisci e consolida i dati. Ad esempio, una società pubblicitaria potrebbe deduplicare i record di informazioni che consentono l'identificazione personale (PII) o una società immobiliare potrebbe identificare indirizzi postali corrispondenti.

Genera embedding

Le sezioni seguenti descrivono le funzioni che BigQuery offre per aiutarti a generare o utilizzare gli incorporamenti.

Generare singoli incorporamenti

Puoi utilizzare la funzione AI.EMBED con i modelli di incorporamento Vertex AI per generare un singolo incorporamento del tuo input.

La funzione AI.EMBED supporta i seguenti tipi di input:

Generare una tabella di incorporamenti

Puoi utilizzare AI.GENERATE_EMBEDDING per creare una tabella con incorporamenti per tutti i dati di una colonna della tabella di input. Per tutti i tipi di modelli supportati, AI.GENERATE_EMBEDDING funziona con i dati strutturati nelle tabelle standard. Per i modelli di incorporamento multimodale, AI.GENERATE_EMBEDDING funziona anche con i contenuti visivi delle colonne delle tabelle standard che contengono valori ObjectRef o delle tabelle degli oggetti.

Per i modelli remoti, tutta l'inferenza avviene in Vertex AI. Per gli altri tipi di modelli, tutta l'inferenza avviene in BigQuery. I risultati vengono memorizzati in BigQuery.

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

Generazione autonoma di incorporamenti

Puoi utilizzare la generazione autonoma di incorporamenti per semplificare il processo di creazione, manutenzione ed esecuzione di query sugli incorporamenti. BigQuery gestisce una colonna di incorporamenti nella tabella in base a una colonna di origine. Quando aggiungi o modifichi i dati nella colonna di origine, BigQuery genera o aggiorna automaticamente la colonna di incorporamento per questi dati utilizzando un modello di incorporamento Vertex AI. Questa opzione è utile se vuoi che BigQuery mantenga gli incorporamenti quando i dati di origine vengono aggiornati regolarmente.

Sono disponibili le seguenti funzioni di ricerca:

Facoltativamente, puoi creare un indice vettoriale utilizzando l'istruzione CREATE VECTOR INDEX. Quando viene utilizzato un indice vettoriale, le funzioni VECTOR_SEARCH e AI.SEARCH utilizzano la tecnica di ricerca Approximate Nearest Neighbor per migliorare il rendimento della ricerca vettoriale, con il compromesso di ridurre il richiamo e quindi restituire risultati più approssimativi. Senza un indice vettoriale, queste funzioni utilizzano la ricerca esaustiva per misurare la distanza per ogni record. Puoi anche scegliere di utilizzare la ricerca esaustiva per ottenere risultati esatti anche quando è disponibile un indice vettoriale.

Prezzi

Le funzioni VECTOR_SEARCH e AI.SEARCH e l'istruzione CREATE VECTOR INDEX utilizzano i prezzi di BigQuery Compute.

  • Funzioni VECTOR_SEARCH e AI.SEARCH: ti viene addebitata la ricerca di similarità utilizzando i prezzi delle edizioni o su richiesta.

    • On demand: ti viene addebitato l'importo dei byte scansionati nella tabella di base, nell'indice e nella query di ricerca.
    • Prezzi delle edizioni: ti vengono addebitati gli slot necessari per completare il job all'interno dell'edizione della prenotazione. Calcoli di similarità più grandi e complessi comportano costi maggiori.

  • Dichiarazione CREATE VECTOR INDEX: non è previsto alcun costo per l'elaborazione necessaria per creare e aggiornare gli indici vettoriali, a condizione che la dimensione totale dei dati della tabella indicizzata sia inferiore al limite per organizzazione. Per supportare l'indicizzazione oltre questo limite, devi fornire la tua prenotazione per la gestione dei job di gestione dell'indice.

Anche lo spazio di archiviazione è un aspetto da considerare per gli incorporamenti e gli indici. La quantità di byte memorizzati come incorporamenti e indici è soggetta ai costi di archiviazione attiva.

  • Gli indici vettoriali comportano costi di archiviazione quando sono attivi.
  • Puoi trovare le dimensioni dello spazio di archiviazione dell'indice utilizzando la visualizzazione INFORMATION_SCHEMA.VECTOR_INDEXES. Se l'indice vettoriale non ha ancora raggiunto il 100% della copertura, ti vengono comunque addebitati i costi per ciò che è stato indicizzato. Puoi controllare la copertura dell'indice utilizzando la visualizzazione INFORMATION_SCHEMA.VECTOR_INDEXES.

Quote e limiti

Per saperne di più, consulta Limiti dell'indice vettoriale e Limiti delle funzioni di AI generativa.

Limitazioni

Le query che contengono la funzione VECTOR_SEARCH o AI.SEARCH non vengono accelerate da BigQuery BI Engine.

Passaggi successivi