Che cos'è un database vettoriale?

Un database vettoriale è un qualsiasi database che ti consente di archiviare, indicizzare ed eseguire query su incorporamenti vettoriali o rappresentazioni numeriche di dati non strutturati, come testo, immagini o audio.

Google Cloud integra queste funzionalità di livello enterprise direttamente nei suoi servizi gestiti, tra cui AlloyDB per PostgreSQL, Spanner e BigQuery, aiutandoti a creare applicazioni intelligenti senza dover gestire un'infrastruttura separata.

Database abilitati ai vettori: sblocca la ricerca semantica!

Che cosa sono gli incorporamenti vettoriali?

I vector embedding sono rappresentazioni numeriche dei dati, in genere definite come array di numeri con rappresentazione in virgola mobile. Traducono dati complessi e non strutturati, come testo, immagini o audio, in un formato che i modelli di machine learning possono elaborare.

Mappando questi dati in uno spazio vettoriale, gli embedding acquisiscono un significato semantico: gli elementi simili sono posizionati più vicini, mentre gli elementi dissimili sono più distanti. Questa relazione spaziale aiuta i sistemi a identificare le connessioni tra i punti dati in base al contesto e al significato, anziché alla semplice corrispondenza delle parole chiave.

Altri tipi di dati supportati

Mentre alcuni database specializzati supportano solo i vector embedding, molti altri supportano, oltre a questi, vari tipi di dati e query. Questo è fondamentale per creare applicazioni di AI generativa sulla base di dati complessi e reali. Man mano che i vantaggi delle query semantiche mediante incorporamenti vettoriali diventano chiari, la maggior parte dei database aggiungerà il supporto vettoriale. In futuro, riteniamo che ogni database sarà un database vettoriale.

Scopri come la ricerca vettoriale di Vertex AI supporta la creazione di applicazioni di AI generativa ad alte prestazioni. La ricerca vettoriale di Vertex AI si basa su Scalable Nearest Nearby Search, o ScaNN, una tecnologia di ricerca vettoriale scalabile ed efficiente sviluppata da Google Research ed è ideale per la gestione di grandi set di dati e requisiti di ricerca in tempo reale. Scopri di più sulla ricerca vettoriale e sugli embedding nel video di seguito e inizia con questa guida rapida.

Guarda il video per scoprire come creare app basate su LLM con embedding, ricerca vettoriale e RAG.

Come funziona un database vettoriale?

L'esecuzione efficiente di query su un grande insieme di vettori richiede strategie di indicizzazione e ricerca specializzate che differiscono dai tradizionali campi di testo o numerici. Poiché i vettori non hanno un singolo ordinamento logico, i database vettoriali si basano sui seguenti meccanismi per recuperare i dati:

  • Ricerca del vicino più prossimo (KNN): il caso d'uso più comune è l'identificazione dei vettori "k" più vicini a un vettore di query. Utilizza metriche di distanza come il prodotto scalare, la somiglianza del coseno o la distanza euclidea per misurare la prossimità nello spazio vettoriale.
  • ANN, Approximate nearest neighbors: il calcolo della distanza esatta tra un vettore di query e ogni altro vettore può essere costoso dal punto di vista computazionale. Per contribuire a ridurre questo costo, i database utilizzano algoritmi ANN. Questi algoritmi possono migliorare significativamente la velocità di ricerca a scapito di una piccola quantità di accuratezza (richiamo), un compromesso accettabile per la maggior parte delle applicazioni di ricerca semantica.
  • Indicizzazione vettoriale: per consentire ricerche più rapide, gli indici vettoriali organizzano i dati in modo che i cluster di vettori vicini siano raggruppati insieme. Le strutture comuni includono elenchi (che rappresentano cluster di vettori), grafici (che collegano i vettori ai vicini) e alberi (in cui i rami rappresentano sottoinsiemi di cluster). Ogni tipo di indice offre compromessi diversi in termini di velocità di ricerca, consumo di memoria e tempo di creazione dell'indice.
  • Filtro dei metadati: la maggior parte delle applicazioni richiede più della semplice somiglianza semantica. Ad esempio, un utente potrebbe cercare un libro simile a "una storia commovente su un pesce" (ricerca vettoriale), ma limitare i risultati agli articoli "sotto i 20 $" (filtro metadati). I database vettoriali avanzati combinano questi predicati SQL con la somiglianza vettoriale per eseguire query ibride potenti.

Casi d'uso per i database vettoriali

I vector embedding acquisiscono il significato semantico di dati complessi. Se combinati con i database vettoriali, che forniscono indicizzazione e recupero efficienti, gli sviluppatori possono creare un'ampia gamma di applicazioni intelligenti e strumenti di elaborazione dei dati.

Gli sviluppatori possono utilizzare i database vettoriali come knowledge base esterna per i modelli linguistici di grandi dimensioni (LLM). Recuperando il contesto pertinente e proprietario prima di inviare un prompt al modello, le applicazioni possono ridurre le allucinazioni e fornire risposte accurate dal punto di vista dei fatti e specifiche per il dominio. È essenziale per la creazione di agenti di assistenza basati sull'AI, analizzatori di documenti legali e sistemi di gestione della conoscenza interni.

I database vettoriali consentono agli sviluppatori di creare sistemi di personalizzazione che vanno oltre il filtro collaborativo. Rappresentando il comportamento degli utenti e gli attributi dei prodotti come vettori, le applicazioni possono identificare elementi simili o abbinare gli utenti a contenuti che si adattano alle loro preferenze in tempo reale. Questa architettura supporta suggerimenti di prodotti di e-commerce, feed di contenuti e consigli di streaming multimediale.

A differenza della tradizionale ricerca per parole chiave, i database vettoriali consentono applicazioni di ricerca semantica che comprendono l'intento dell'utente. Gli sviluppatori possono creare esperienze di ricerca che consentono agli utenti di eseguire query per concetto anziché per formulazione esatta. Inoltre, poiché i vettori possono rappresentare diversi tipi di dati nello stesso spazio, puoi creare strumenti di ricerca multimodali, che consentono agli utenti di cercare immagini utilizzando descrizioni di testo o di trovare documenti correlati utilizzando un'immagine di input.

I database vettoriali possono aiutare a identificare pattern irregolari in set di dati di grandi dimensioni. Stabilendo uno spazio vettoriale che rappresenta il comportamento o le transazioni "normali", gli sviluppatori possono rilevare a livello di programmazione i valori anomali che si discostano molto dai cluster stabiliti. Questa funzionalità è fondamentale per la creazione di sistemi di rilevamento delle frodi finanziarie, strumenti di monitoraggio della sicurezza della rete e controlli di integrità dell'infrastruttura IT.

Nei workflow di data engineering, i database vettoriali possono aiutare a pulire e unificare set di dati disparati. Confrontando gli embedding di record di clienti o schede di prodotti, i sistemi possono identificare le voci duplicate anche quando il testo varia leggermente (ad esempio, "Via Roma" e "Via Roma, 10"). Ciò aiuta le organizzazioni a mantenere una visione unica e accurata dei propri dati.

Database vettoriali su Google Cloud

AlloyDB per PostgreSQL

AlloyDB per PostgreSQL combina la compatibilità di PostgreSQL con l'infrastruttura scalabile di Google. Include il supporto integrato per gli vector embedding tramite l'estensione pgvector standard e lo migliora con l'indice ScaNN di Google. Ciò può consentire query vettoriali più veloci e abilitare il "filtraggio in linea", che può aiutare a ottimizzare le ricerche ibride valutando contemporaneamente la somiglianza vettoriale e i filtri dei metadati per ottenere prestazioni migliori.

Esempio: ricerca ibrida di immobili

Un'applicazione immobiliare in cui gli utenti vogliono trovare case in base all'atmosfera (ad esempio, "moderna di metà secolo con luce naturale") pur rispettando rigorosamente vincoli rigidi (ad esempio, "3 camere da letto", "meno di 800.000 $", "nel distretto scolastico A").

  • Sfida: una ricerca vettoriale standard potrebbe restituire una casa "di metà secolo scorso" da 2 milioni di dollari o nel quartiere sbagliato; una query SQL standard può filtrare per prezzo, ma non può comprendere "l'atmosfera di metà secolo"
  • Soluzione: il filtro in linea di AlloyDB esegue la scansione dell'indice vettoriale e controlla i filtri dei metadati SQL (prezzo, posizione) contemporaneamente in un unico passaggio
  • Risultato: l'app restituisce le case che corrispondono all'estetica e al budget in millisecondi, senza la penalizzazione delle prestazioni dovuta al filtraggio successivo dei risultati

Google Cloud integra le funzionalità di ricerca vettoriale direttamente nei suoi servizi di database principali, aiutandoti a rendere operativa l'AI generativa utilizzando i tuoi dati e workflow esistenti.

Spanner

Spanner, il database distribuito a livello globale di Google, supporta la ricerca vettoriale per le applicazioni transazionali. Può fornire una ricerca vettoriale altamente disponibile e scalabile utilizzando algoritmi esatti e approssimati del vicino più prossimo. Ciò consente alle applicazioni globali di implementare funzionalità come i consigli in tempo reale o la ricerca semantica, mantenendo al contempo la coerenza e l'affidabilità rigorose.

Esempio: consigli in tempo reale per l'e-commerce

Una piattaforma di e-commerce globale vuole creare un motore per suggerimenti che gestisca ricerche vaghe degli utenti come "migliori scarponcini da trekking per la pioggia" garantendo al contempo la disponibilità immediata dei prodotti.

  • Sfida: la corrispondenza tradizionale delle parole chiave non trova i prodotti pertinenti che non contengono i termini di ricerca esatti (ad esempio, una descrizione che dice "impermeabile " potrebbe non corrispondere a una ricerca di "pioggia"); inoltre, la verifica della disponibilità dell'inventario in un database vettoriale separato crea latenza e rischi di coerenza dei dati durante gli eventi di traffico elevato
  • Soluzione: la piattaforma aggiunge una colonna vettoriale alla tabella Products (Prodotti) di Spanner esistente e genera embedding utilizzando Vertex AI tramite SQL; utilizza la ricerca vettoriale di Spanner per eseguire una query ibrida che trova prodotti semanticamente simili applicando contemporaneamente un controllo rigoroso dell'inventario (InventoryCount > 0).
  • Risultato: i clienti ricevono consigli sui prodotti accurati e personalizzati, con la garanzia che siano disponibili in magazzino e consegnati con la bassa latenza e la coerenza globale necessarie per una transazione in tempo reale

BigQuery

BigQuery può consentirti di eseguire analisi vettoriali su set di dati di grandi dimensioni senza spostare i dati dal tuo data warehouse. Utilizzando la funzione VECTOR_SEARCH, puoi eseguire ricerche di somiglianza utilizzando SQL standard. Questo è particolarmente utile per i casi d'uso analitici, come il raggruppamento dei clienti in base al comportamento o l'identificazione di tendenze di prodotti simili su miliardi di righe di dati.

Esempio: rilevamento delle minacce alla cybersicurezza su larga scala

Un team di sicurezza deve analizzare petabyte di log del server per identificare attività dannose. Gli aggressori spesso modificano leggermente il loro codice per eludere le ricerche di parole chiave a corrispondenza esatta.

  • Sfida: le ricerche per parole chiave non rilevano le variazioni più sottili di attacchi noti (ad esempio, la modifica del nome di una variabile in uno script dannoso)
  • Soluzione: il team utilizza BigQuery per generare embedding per miliardi di voci di log; quindi esegue una query VECTOR_SEARCH per trovare tutti i log semanticamente simili a una firma di exploit nota, identificando nuove varianti dell'attacco
  • Risultato: possono rilevare e raggruppare le minacce zero-day su anni di dati storici utilizzando un semplice SQL, senza dover spostare i dati in un database vettoriale specializzato

Risolvi le tue sfide aziendali con Google Cloud

I nuovi clienti ricevono 300 $ di crediti gratuiti da spendere su Google Cloud.
Parla con un esperto delle vendite di Google Cloud per discutere della tua sfida unica in modo più dettagliato.

Fai il prossimo passo

Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.

Google Cloud