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.
Gli incorporamenti vettoriali sono rappresentazioni utili di dati non strutturati perché mappano i contenuti in modo che la somiglianza semantica sia rappresentata dalla distanza nello spazio vettoriale n-dimensionale. In questo modo, è più semplice cercare somiglianze, trovare contenuti pertinenti in una knowledge base o recuperare un elemento che corrisponde meglio a una query complessa generata da un utente.
Mentre alcuni database specializzati supportano solo gli incorporamenti vettoriali, molti altri supportano, oltre a questi, vari tipi di dati e query. Il supporto di un'ampia gamma di tipi di dati e di query è 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 incorporamenti in questo video e inizia con questa guida rapida.
Come per altri tipi di dati, l'esecuzione efficiente di query su un grande insieme di vettori richiede un indice, mentre i database vettoriali supportano indici specializzati per vettori. A differenza di molti altri tipi di dati (come testo o numeri), che hanno un unico ordinamento logico, i vettori non hanno un ordinamento naturale corrispondente a casi d'uso pratici. Al contrario, il caso d'uso più comune è eseguire query per i vettori k più vicini a un altro vettore in termini di metrica di distanza come prodotto scalare, somiglianza del coseno o distanza euclidea. Questo tipo di query è definito query "vicini k più prossimi (esatti)" o "KNN".
Sfortunatamente, non esistono algoritmi generali per query KNN efficienti: per avere la certezza di trovare i k più prossimi a un dato vettore, q, è necessario calcolare la distanza tra q e ogni altro vettore. Tuttavia, esistono algoritmi efficienti per trovare i vicini k approssimativi più prossimi ("ANN"). Questi algoritmi ANN riducono in un certo qual modo l'accuratezza (in particolare il richiamo, l'algoritmo potrebbe omettere alcuni dei vicini più prossimi effettivi) per apportare grandi miglioramenti alla velocità. Poiché molti casi d'uso già trattano in maniera piuttosto imprecisa il processo di calcolo delle rappresentazioni distribuite di vettori, spesso possono tollerare una certa perdita di richiamo in cambio di notevoli miglioramenti delle prestazioni.
Per abilitare le query ANN per i vettori in base alla distanza da un altro vettore, un indice vettoriale è strutturato in modo che i cluster di vettori vicini siano generalmente raggruppati insieme. I tipi di indici vettoriali comuni possono essere strutturati come un insieme di elenchi in cui ogni elenco rappresenta i vettori di un dato cluster, un grafico in cui ogni vettore è connesso a diversi dei vettori vicini più prossimi, diagrammi ad albero in cui i rami corrispondono a sottoinsiemi del cluster del nodo principale e altro ancora. Ogni tipo di indice offre compromessi tra velocità di ricerca, richiamo, consumo di memoria, tempo di creazione dell'indice e altri fattori.
La maggior parte delle query del database, tuttavia, non si basa solo sulla somiglianza semantica. Ad esempio, un utente potrebbe essere alla ricerca di un libro la cui descrizione è simile a "la storia commovente di un bambino e un cane", ma potrebbe anche volersi limitare ai libri dal prezzo inferiore a 20 $ e disponibili in formato brossura. I database vettoriali per uso speciale possono fornire alcune capacità di filtro aggiuntive limitate (a volte chiamate "limitazioni"), mentre i database per uso generico possono comporre predicati ricchi utilizzando linguaggi standard come SQL, che possono essere combinati con un ordinamento di somiglianza vettoriale per consentire query espressive molto potenti.
La capacità degli incorporamenti vettoriali di rappresentare il significato semantico dei dati non strutturati combinata con la capacità dei database vettoriali di cercare in modo efficiente i vettori vicini sblocca molti casi d'uso importanti:
I database vettoriali sono importanti perché possono essere utilizzati per risolvere una varietà di problemi difficili o impossibili da risolvere con i predicati relazionali o le tecniche di ricerca testuale.
I database vettoriali sono adatti alle applicazioni di AI generativa perché consentono di recuperare facilmente i contesti aziendali e applicativi critici come la cronologia chat pertinente o i contenuti non strutturati specifici dell'attività per aiutare gli LLM a rispondere a una query utente complessa.
Inoltre, possono semplificare la ricerca dei contenuti utilizzando il linguaggio naturale o l'esecuzione di query a partire da esempi.
Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.