Database specializzato per la memorizzazione e l'interrogazione di embedding vettoriali ad alta dimensionalità, che consente una ricerca efficiente per somiglianza e alimenta applicazioni AI come la RAG
Un database vettoriale è un database specializzato progettato per memorizzare e gestire i dati sotto forma di vettori ad alta dimensione. Il termine deriva dai vettori, che sono rappresentazioni matematiche di caratteristiche o attributi contenuti nei dati. A differenza dei database tradizionali, che sono ideali per gestire dati strutturati organizzati in righe e colonne, la struttura del database vettoriale organizza le informazioni come rappresentazioni vettoriali con un numero fisso di dimensioni, raggruppate in base alla loro somiglianza.
Ogni vettore all'interno di un database vettoriale è composto da un numero specifico di dimensioni, che può variare da poche decine a diverse migliaia. Il numero di dimensioni dipende dalla complessità e dalla granularità dei dati. Questa struttura consente ai database vettoriali di gestire in modo efficiente informazioni complesse e sfaccettate e di eseguire rapide ricerche e analisi basate sulla somiglianza.
Secondo la International Data Corporation (IDC), entro il 2025 l'80% dei nuovi dati creati a livello mondiale sarà costituito da dati non strutturati, come testi, immagini e video. I modelli basati sull'apprendimento, come le reti neurali profonde, sono sempre più utilizzati per gestire questi dati non strutturati in applicazioni in vari settori, dall'e-commerce alla sanità. Queste applicazioni funzionano trasformando i dati non strutturati in vettori di embedding. Una volta che i dati sono stati "vettorializzati", attività come ricerche, raccomandazioni e analisi possono essere implementate tramite AI Search basata sulla somiglianza. La gestione dei dati vettoriali avviene nei database vettoriali.
Sapere quando usare i database vettoriali dipende dagli altri processi e dalle tecnologie in uso. Sono un componente chiave per alimentare molti sistemi di AI e alcune (ma non tutte) le applicazioni di large language model (LLM) utilizzano i database vettoriali per ricerche rapide di somiglianza o per fornire contesto o conoscenza del dominio. Ad esempio, svolgono un ruolo cruciale nella retrieval augmented generation (RAG), un approccio in cui il database vettoriale viene utilizzato per migliorare il prompt passato all'LLM aggiungendo ulteriore contesto insieme alla query.
I database vettoriali consentono anche la ricerca ibrida. Questo approccio combina la ricerca tradizionale basata su parole chiave con la ricerca di somiglianza semantica per individuare informazioni rilevanti anche quando le parole chiave non corrispondono esattamente. I database vettoriali possono essere utilizzati anche per una serie di attività di natural language processing (NLP), tra cui l'analisi semantica e del sentiment, o nell'addestramento di modelli di machine learning (ML).
Un vettore è un array numerico ad alta dimensione che esprime la posizione di un particolare punto attraverso diverse dimensioni. Immagina uno spazio vettoriale di parole come una nuvola tridimensionale in cui le parole sono rappresentate come punti. In questo spazio, le parole con significati correlati si raggruppano. Ad esempio, il punto che rappresenta "mela" sarà posizionato più vicino a "pera" rispetto a "auto". Questa disposizione spaziale riflette le relazioni semantiche tra le parole, dove la vicinanza indica la somiglianza di significato.
Un vettore viene generato applicando una funzione di embedding ai dati grezzi per trasformarli in una rappresentazione. Queste rappresentazioni sono chiamate "embedding" perché un modello di ML prende un gruppo rappresentativo e lo incorpora in uno spazio vettoriale. I vettori sono incorporati come elenchi di numeri, rendendo più facile per i modelli di ML eseguire operazioni con i dati. Infatti, le prestazioni dei metodi di ML dipendono in modo critico dalla qualità delle rappresentazioni vettoriali. Un intero paragrafo di testo o un gruppo di numeri può essere ridotto a un vettore, consentendo al modello di eseguire operazioni in modo efficiente.
I database vettoriali sono progettati per memorizzare, indicizzare e interrogare in modo efficiente i dati attraverso embedding vettoriali ad alta dimensione. Una volta che un utente inserisce una query o una richiesta nel database vettoriale, questo avvia la seguente sequenza di processi:
Questi processi consentono ai database vettoriali di eseguire ricerche semantiche e recuperi basati sulla somiglianza, rendendoli ideali per applicazioni come sistemi di raccomandazione, riconoscimento di immagini e video, analisi del testo e rilevamento delle anomalie.
I database vettoriali offrono una serie di vantaggi:
I database vettoriali sono utilizzati in vari settori per un'ampia gamma di applicazioni e casi d'uso. Ecco alcuni degli esempi più comuni di database vettoriali:
L'ascesa degli LLM per attività come il recupero delle informazioni, insieme alla crescente popolarità delle piattaforme di e-commerce e di raccomandazione, richiede sistemi di gestione di database vettoriali in grado di offrire funzionalità di ottimizzazione delle query per i dati non strutturati.
Nelle applicazioni multimodali, i dati vengono incorporati e memorizzati nei database vettoriali, facilitando un recupero efficiente delle rappresentazioni vettoriali. Quando un utente invia una query di testo, il sistema utilizza sia l'LLM che il database vettoriale: l'LLM fornisce funzionalità di NLP, mentre gli algoritmi del database vettoriale eseguono ricerche dei vicini più prossimi approssimati (approximate nearest neighbor). Questo approccio può produrre risultati migliori rispetto all'utilizzo di uno solo dei componenti in isolamento.
I database vettoriali vengono sempre più applicati agli LLM tramite RAG, il che consente una maggiore spiegabilità applicando il contesto agli output dell'LLM. I prompt dell'utente possono essere potenziati attraverso l'inclusione del contesto per mitigare le sfide principali dell'LLM, come le allucinazioni o i bias.
I database vettoriali possono svolgere un ruolo chiave nel riconoscimento delle immagini memorizzando gli embedding ad alta dimensione delle immagini generati dai modelli di ML. Poiché i database vettoriali sono ottimizzati per le attività di ricerca di somiglianza, ciò li rende ideali per applicazioni come il rilevamento di oggetti, il riconoscimento facciale e la ricerca di immagini.
I database vettoriali sono ottimizzati per il recupero rapido del contesto attraverso la somiglianza. Le piattaforme di e-commerce possono utilizzare i database vettoriali per trovare prodotti con attributi visivi simili, mentre i siti di social media possono suggerire immagini correlate agli utenti. Un esempio illustrativo è Pinterest, dove i database vettoriali alimentano la scoperta dei contenuti rappresentando ogni immagine come un vettore ad alta dimensionalità. Quando un utente aggiunge un pin a un'immagine di un tramonto sulla costa, il sistema può cercare rapidamente nel suo database vettoriale per suggerire immagini visivamente simili, come altri paesaggi marini o tramonti.
I database vettoriali hanno rivoluzionato l'NLP consentendo l'archiviazione e il recupero efficienti di rappresentazioni distribuite delle parole. Modelli come Word2Vec, GloVe e BERT vengono addestrati su enormi dataset di testo per generare embedding di parole ad alta dimensionalità che catturano le relazioni semantiche, i quali vengono poi memorizzati nei database vettoriali per un accesso rapido.
Consentendo ricerche rapide per somiglianza, i database vettoriali permettono ai modelli di trovare parole o frasi contestualmente rilevanti. Questa capacità è particolarmente preziosa per attività come la ricerca semantica, la risposta alle domande (question answering), la classificazione del testo e l'estrazione di entità nominate. Inoltre, i database vettoriali possono memorizzare embedding a livello di frase, catturando il contesto delle parole e consentendo una comprensione del linguaggio più sfumata.
Una volta che un database vettoriale è stato addestrato utilizzando un modello di embedding, può essere utilizzato per generare raccomandazioni personalizzate. Quando un utente interagisce con il sistema, il suo comportamento e le sue preferenze vengono utilizzati per generare l'embedding dell'utente. Ad esempio, un utente può chiedere a un LLM un consiglio su una serie TV e il database vettoriale può suggerire serie TV con trame o valutazioni simili alle preferenze dell'utente. Le serie TV con gli embedding più vicini alla codifica dell'utente vengono quindi raccomandate di conseguenza.
Le istituzioni finanziarie utilizzano i database vettoriali per rilevare transazioni fraudolente. I database vettoriali consentono alle aziende di confrontare i vettori delle transazioni con pattern di frode noti in tempo reale. La scalabilità dei database vettoriali consente inoltre di gestire i rischi e acquisire nuove informazioni sul comportamento dei consumatori. Questi database possono identificare pattern che indicano attività sospette codificando i dati delle transazioni come vettori. Inoltre, facilitano la valutazione del merito creditizio e la segmentazione dei consumatori analizzando i dati per migliorare il processo decisionale.
Nonostante i loro numerosi vantaggi e casi d'uso, una comprensione completa dei database vettoriali deve includere anche le loro sfide.
I database vettoriali richiedono pipeline di ingestione dei dati efficienti, in cui i dati grezzi e non elaborati provenienti da varie fonti possono essere puliti, elaborati e convertiti in embedding con un modello ML prima di essere memorizzati come vettori nel database.
Databricks AI Search affronta questa sfida offrendo una soluzione completa. Automatizza la generazione, la gestione e l'ottimizzazione dei vettori, gestendo la sincronizzazione in tempo reale dei dati di origine con i corrispondenti indici vettoriali. Il software gestisce i guasti, ottimizza il throughput ed esegue la sintonizzazione automatica della dimensione dei batch e la scalabilità automatica senza necessità di intervento manuale.
Questo approccio riduce la necessità di pipeline di ingestione dei dati separate, riducendo al minimo il lavoro ripetitivo degli sviluppatori e consentendo ai team di concentrarsi su attività di livello superiore che aggiungono direttamente valore aziendale, anziché dedicare tempo alla creazione e alla manutenzione di complessi processi di preparazione dei dati.
I database vettoriali richiedono ulteriore sicurezza, controlli di accesso e governance dei dati, oltre alla manutenzione e alla gestione necessarie. Le grandi aziende richiedono severi controlli di sicurezza e di accesso ai dati, in modo che gli utenti non possano accedere a modelli GenAI collegati a dati riservati.
Molti database vettoriali attuali non dispongono di controlli di sicurezza e di accesso robusti, oppure richiedono alle organizzazioni di creare e mantenere un set separato di policy di sicurezza. Databricks AI Search fornisce un'interfaccia unificata che definisce le policy dei dati per tracciare automaticamente la derivazione dei dati (data lineage) senza la necessità di strumenti aggiuntivi. Ciò garantisce che gli LLM non espongano dati riservati a utenti che non dovrebbero avervi accesso.
Offrendo potenti funzionalità per le ricerche per somiglianza e la gestione di dati ad alta dimensionalità, i database vettoriali sono strumenti essenziali per i data scientist che lavorano con modelli AI e ML. Databricks AI Search si distingue come database vettoriale serverless che elimina la necessità di configurazione manuale, consentendo ai data scientist di concentrarsi sul lavoro principale anziché sulla gestione dell'infrastruttura.
I vantaggi principali di Databricks AI Search includono l'integrazione perfetta con l'architettura lakehouse, l'ingestione automatizzata dei dati e risultati fino a cinque volte più veloci rispetto ad altri database vettoriali diffusi. È inoltre compatibile con gli strumenti di governance dei dati e sicurezza esistenti tramite Unity Catalog, garantendo la protezione dei dati e la conformità.
Databricks AI Search offre flessibilità sia per gli utenti principianti che per quelli avanzati, con scalabilità automatica per l'ingestione dei dati e le query, nonché API plug-and-replace per coloro che preferiscono un maggiore controllo sulle proprie pipeline. Questa combinazione di facilità d'uso e prestazioni elevate semplifica la creazione di un database vettoriale per i data scientist di tutti i livelli di competenza.
I database vettoriali organizzano i dati come punti in uno spazio vettoriale multidimensionale. Ogni punto rappresenta un elemento di dati e la posizione riflette le sue caratteristiche rispetto ad altri elementi di dati. Questa struttura di database vettoriale è particolarmente adatta a molte applicazioni GenAI, poiché gli embedding vettoriali sono generati dagli LLM e i dati possono essere cercati e recuperati facilmente.
Al contrario, i database a grafi organizzano i dati memorizzandoli in una struttura a grafo. Le entità sono rappresentate come nodi su un grafo, mentre i collegamenti tra questi punti dati sono rappresentati come archi. La struttura a grafo consente agli elementi di dati nell'archivio di essere una raccolta di nodi e archi, con gli archi che rappresentano le relazioni tra i nodi. La struttura interconnessa dei database a grafi li rende particolarmente adatti per scenari in cui i collegamenti tra i punti dati sono importanti quanto i dati stessi.
Un indice vettoriale e un database vettoriale svolgono ruoli distinti ma complementari nella gestione dei dati ad alta dimensionalità.
La recente ascesa degli LLM e delle applicazioni GenAI più in generale ha contribuito a una concomitante diffusione dei database vettoriali. Con la continua maturazione delle applicazioni AI, lo sviluppo di nuovi prodotti e le mutevoli esigenze degli utenti decideranno la direzione delle tendenze future nei database vettoriali; tuttavia, vi sono alcune direzioni generalmente previste per questa tecnologia.
Databricks AI Search è la soluzione integrata di database vettoriale di Databricks per la Data Intelligence Platform. Questo sistema completamente integrato elimina la necessità di pipeline di inserimento dati separate e applica controlli di sicurezza e meccanismi di data governance, garantendo una protezione coerente su tutti gli asset di dati.
Databricks AI Search offre un'esperienza pronta all'uso ad alte prestazioni, consentendo ai modelli LLM di recuperare rapidamente risultati pertinenti con una latenza minima. Gli utenti beneficiano di scalabilità e ottimizzazione automatiche, eliminando la necessità di ottimizzazione manuale del database. Questa integrazione semplifica il processo di archiviazione, gestione e query degli embedding vettoriali, rendendo più facile per le organizzazioni implementare applicazioni di AI, come sistemi di raccomandazione e ricerche semantiche, mantenendo al contempo gli standard di sicurezza e governance dei dati.
Sono disponibili molte risorse per trovare maggiori informazioni sui database vettoriali e sulla ricerca vettoriale, tra cui:
Contatta Databricks per pianificare una demo e parlare con un esperto dei tuoi database vettoriali e LLM.
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.