Un database vettoriale è un database specializzato progettato per memorizzare e gestire dati sotto forma di vettori ad alta dimensionalità. Il termine deriva dai vettori, che sono rappresentazioni matematiche delle caratteristiche o degli attributi contenuti nei dati. A differenza dei database tradizionali, ottimizzati per la gestione di dati strutturati organizzati in righe e colonne, la struttura di un database vettoriale organizza le informazioni come rappresentazioni vettoriali con un numero fisso di dimensioni, raggruppate in base alla loro similarità.
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 rapidamente ricerche e analisi basate sulla similarità.
Secondo l'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ù spesso utilizzati per gestire questi dati non strutturati per 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 la ricerca, la generazione di raccomandazioni e l'analisi possono essere implementate tramite la ricerca vettoriale basata sulla similarità. La gestione dei dati vettoriali avviene all'interno dei database vettoriali.
La convenienza di un database vettoriale dipende dagli altri processi e tecnologie già adottati. I database vettoriali sono un componente chiave per molti sistemi di AI, e alcune applicazioni basate su modelli linguistici di grandi dimensioni (LLM) li utilizzano per eseguire rapide ricerche di similarità o per fornire contesto e conoscenze di settore. Essi svolgono ad esempio un ruolo cruciale nella generazione potenziata dal recupero (RAG), un approccio in cui il database vettoriale viene utilizzato per arricchire il prompt fornito al LLM aggiungendo ulteriore contesto alla query.
I database vettoriali consentono anche la ricerca ibrida. Questo approccio combina la ricerca tradizionale basata su parole chiave con la ricerca semantica basata sulla similarità, consentendo di trovare informazioni pertinenti anche quando le parole chiave non corrispondono esattamente. Inoltre, i database vettoriali possono anche essere utilizzati in diverse attività di elaborazione del linguaggio naturale (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 dimensionalità che esprime la posizione di un determinato punto in più dimensioni. Possiamo immaginare uno spazio vettoriale delle parole come una nuvola tridimensionale ove le parole sono rappresentate come punti. In questo spazio, parole con significati correlati si raggruppano insieme. Ad esempio, il punto che rappresenta "mela" sarebbe posizionato più vicino a "pera" che ad "automobile". Questa disposizione spaziale riflette le relazioni semantiche tra le parole: più queste sono vicine, più il loro significato è simile.
Un vettore viene generato applicando una funzione di embedding ai dati grezzi per trasformarli in una rappresentazione numerica. Queste rappresentazioni sono chiamate "embedding" ("incorporamenti") perché un modello di ML prende un raggruppamento rappresentativo e lo incorpora in uno spazio vettoriale. I vettori vengono archiviati come elenchi di numeri, il che rende più facile per i modelli di ML eseguire operazioni con i dati. Di fatto, le prestazioni dei metodi di ML dipendono in maniera significativa dalla qualità delle rappresentazioni vettoriali. Un intero paragrafo di testo o un gruppo di numeri può essere ridotto a un vettore, permettendo al modello di eseguire operazioni in modo più efficiente.
I database vettoriali sono progettati per memorizzare, indicizzare e interrogare i dati in modo efficiente tramite embedding vettoriali ad alta dimensionalità. Quando un utente inserisce una query o una richiesta nel database vettoriale, viene avviata la seguente sequenza di processi:
Questi processi consentono ai database vettoriali di eseguire ricerche semantiche e recuperi basati sulla similarità, e li rendono ideali per applicazioni quali sistemi di raccomandazione, riconoscimento di immagini e video, analisi testuale e rilevamento di anomalie.
I database vettoriali offrono numerosi vantaggi:
I database vettoriali sono utilizzati in diversi settori per una vasta gamma di applicazioni e casi d’uso. Ecco alcuni degli esempi più comuni di utilizzo dei database vettoriali:
La diffusione degli LLM per attività come il recupero di informazioni, e la crescente popolarità delle piattaforme di e-commerce e di raccomandazione, richiedono sistemi di gestione di database vettoriali in grado di ottimizzare le interrogazioni di dati non strutturati.
Nelle applicazioni multimodali, i dati vengono incorporati e archiviati nei database vettoriali, facilitando il 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 capacità di elaborazione del linguaggio naturale (NLP), mentre gli algoritmi del database vettoriale eseguono ricerche approssimate del vicino più prossimo. Questo approccio può produrre risultati migliori rispetto all'uso di uno dei due componenti da solo.
Con sempre maggiore frequenza, i database vettoriali vengono applicati agli LLM tramite il metodo RAG, che migliora la spiegabilità dei risultati forniti dagli LLM aggiungendo un contesto ai loro output. I prompt degli utenti possono essere arricchiti con l'inclusione del contesto per mitigare le principali criticità degli LLM, come le allucinazioni o i pregiudizi.
I database vettoriali possono svolgere un ruolo fondamentale nel riconoscimento delle immagini, archiviando embedding ad alta dimensionalità delle immagini generate dai modelli di ML. Essendo ottimizzati per ricerche di similarità, i database vettoriali risultano ideali per applicazioni come rilevamento di oggetti, riconoscimento facciale e ricerca per immagini.
I database vettoriali sono ottimizzati per il recupero rapido di contenuti contestuali tramite similarità. Le piattaforme di e-commerce possono utilizzare i database vettoriali per trovare prodotti con attributi visivi simili, mentre i social media possono suggerire immagini correlate agli utenti. Un esempio illustrativo è Pinterest, dove i database vettoriali alimentano la scoperta di contenuti rappresentando ogni immagine come un vettore ad alta dimensionalità. Quando un utente pubblica l'immagine di un tramonto sulla costa, il sistema può eseguire rapidamente una ricerca 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 delle rappresentazioni distribuite delle parole. Modelli come Word2Vec, GloVe e BERT vengono addestrati su enormi set di dati testuali per generare embedding ad alta dimensionalità che catturano le relazioni semantiche tra le parole. Questi embedding vengono poi memorizzati nei database vettoriali per un accesso rapido.
Grazie alla loro capacità di eseguire ricerche di similarità rapidamente, i database vettoriali consentono ai modelli di individuare parole o frasi contestualmente rilevanti. Questa funzionalità si rivela particolarmente utile per attività come la ricerca semantica, la risposta alle domande, la classificazione testuale e l'estrazione di entità nominate (NER). Inoltre, i database vettoriali possono memorizzare embedding a livello di frase, catturando il contesto delle parole e consentendo una comprensione più sfumata del linguaggio.
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 il suo embedding personale. Ad esempio, se un utente chiede a un LLM un consiglio su una serie TV, il database vettoriale può suggerire titoli con trame o valutazioni simili alle preferenze dell'utente. Le serie TV raccomandate saranno quindi quelle con embedding più vicini al profilo dell'utente.
Le istituzioni finanziarie utilizzano i database vettoriali per individuare transazioni fraudolente. I database vettoriali consentono alle aziende di confrontare in tempo reale i vettori delle transazioni con schemi noti di frode. In aggiunta, la scalabilità dei database vettoriali consente loro di gestire il rischio e di acquisire nuove informazioni sul comportamento dei consumatori. Questi database possono identificare schemi che indicano determinate attività codificando i dati delle transazioni come vettori. Inoltre, facilitano la valutazione dell'affidabilità creditizia e la segmentazione dei consumatori analizzando i dati per migliorare i processi decisionali.
Nonostante i database vettoriali abbiano numerosi vantaggi e si prestino a moltissimi casi d'uso, per comprenderli appieno occorre conoscerne anche le criticità.
I database vettoriali richiedono pipeline di ingestione dei dati efficienti, in cui i dati grezzi e non elaborati provenienti da varie fonti possano essere puliti, elaborati e incorporati con un modello di ML prima di essere archiviati come vettori nel database.
Databricks Vector Search risponde a questa sfida offrendo una soluzione completa che automatizza la generazione dei vettori, la gestione dei dati e l'ottimizzazione dei processi, gestendo la sincronizzazione in tempo reale tra i dati sorgente e gli indici vettoriali corrispondenti. Il software gestisce gli errori, ottimizza il throughput ed esegue automaticamente l'ottimizzazione delle dimensioni dei batch e l'autoscaling, senza necessità di intervento manuale.
Questo approccio riduce la necessità di pipeline di acquisizione dei dati separate, alleviando il carico di lavoro degli sviluppatori e consentendo ai team di concentrarsi su attività a maggior valore aggiunto invece di investire tempo nella creazione e gestione di intricati processi di preparazione dei dati.
Oltre alla necessaria manutenzione e gestione, i database vettoriali richiedono ulteriori misure di sicurezza, controlli di accesso e governance dei dati. Le organizzazioni aziendali devono implementare policy di sicurezza e accesso rigorose per impedire che gli utenti accedano a modelli di GenAI collegati a dati riservati.
Molti database vettoriali attuali non dispongono di controlli di sicurezza e accesso robusti, oppure richiedono alle aziende di creare e mantenere un insieme separato di policy di sicurezza. Databricks Vector Search offre un'interfaccia unificata che definisce policy che tracciano automaticamente la provenienza dei dati, senza la necessità di strumenti aggiuntivi. Ciò garantisce che gli LLM non espongano dati riservati a utenti non autorizzati.
Grazie alle loro potenti funzionalità di ricerca per similarità e alla capacità di gestire dati ad alta dimensionalità, i database vettoriali sono fondamentali per i data scientist che lavorano con modelli di AI e ML. Databricks Vector Search si distingue per essere un database vettoriale serverless che elimina la necessità di configurazioni manuali e consente ai data scientist di concentrarsi sul proprio lavoro principale piuttosto che sulla gestione dell'infrastruttura.
I principali vantaggi di Databricks Vector Search includono l'integrazione nativa con l'architettura lakehouse, l'acquisizione automatizzata dei dati e risultati fino a cinque volte più veloci rispetto ad altri popolari database vettoriali. È inoltre compatibile con gli strumenti di governance e sicurezza esistenti tramite Unity Catalog, garantendo protezione e conformità dei dati.
Databricks Vector Search offre flessibilità sia per gli utenti inesperti che per quelli avanzati, con scalabilità automatizzata per l'acquisizione e l'interrogazione dei dati, nonché API plug-and-replace per chi desidera un maggiore controllo sulle pipeline. Questa combinazione di facilità d'uso e prestazioni avanzate rende più semplice per i data scientist creare un database vettoriale, qualunque sia il loro livello di esperienza.
I database vettoriali organizzano i dati come punti in uno spazio vettoriale multidimensionale. Ogni punto rappresenta un dato e la sua posizione riflette le sue caratteristiche rispetto ad altri dati. Questa struttura si rivela particolarmente adatta a molte applicazioni di GenAI, poiché gli embedding vettoriali vengono generati dagli LLM e i dati possono essere facilmente cercati e recuperati.
I database a grafo, invece, organizzano i dati memorizzandoli in una struttura a grafo. Le entità sono rappresentate come nodi di un grafo, mentre le connessioni tra questi punti dati sono rappresentate come archi. La struttura a grafo consente ai dati archiviati di formare una collezione di nodi e archi, con questi ultimi che rappresentano le relazioni tra i nodi. L'interconnessione tipica dei database a grafo li rende particolarmente adatti a scenari in cui le relazioni tra i punti dati sono importanti quanto i dati stessi.
Un indice vettoriale e un database vettoriale svolgono ruoli distinti ma complementari nella gestione di dati ad alta dimensionalità.
La recente diffusione degli LLM e delle applicazioni di GenAI in generale ha contribuito a un concomitante incremento nell'adozione dei database vettoriali. Man mano che le applicazioni di AI maturano, lo sviluppo di nuovi prodotti e le mutevoli esigenze degli utenti influenzeranno l'evoluzione dei database vettoriali. Ci sono, tuttavia, alcune tendenze generalmente attese per questa tecnologia.
Databricks Mosaic AI Vector Search è la soluzione di database vettoriale integrata di Databricks per la Data Intelligence Platform. Questo sistema completamente integrato elimina la necessità di pipeline separate per l'acquisizione dei dati e applica controlli di sicurezza e meccanismi di governance, garantendo una protezione coerente su tutte le risorse di dati.
Databricks Vector Search offre un'esperienza ad alte prestazioni pronta all'uso, permettendo agli LLM di recuperare rapidamente risultati pertinenti con una latenza minima. Gli utenti beneficiano di scalabilità e ottimizzazione automatizzate, che eliminano la necessità di configurazioni manuali del database. Questa integrazione semplifica il processo di archiviazione, gestione e interrogazione degli embedding vettoriali, rendendo più facile per le organizzazioni implementare applicazioni di AI, come sistemi di raccomandazione e ricerche semantiche, mantenendo al contempo standard di sicurezza e governance dei dati.
Ci sono molte risorse disponibili in cui trovare maggiori informazioni sui database vettoriali e la ricerca vettoriale, tra cui:
Contatta Databricks per programmare una demo e parlarci dei tuoi progetti di LLM e database vettoriali.
