Passa al contenuto principale

Database vettoriali

Che cos'è un database vettoriale?

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à.

Ecco altre informazioni utili

Quando conviene usare un database vettoriale?

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).

Cos'è un vettore?

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.

Cos'è l'embedding vettoriale?

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.

Come funzionano i database vettoriali?

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:

  1. Vettorializzazione: il primo passaggio consiste nel generare gli embedding a partire da contenuti multimodali, come testo, immagini, audio o video. Questo processo acquisisce le relazioni semantiche nei dati. Ad esempio, nei dati testuali, assicura che parole con significati simili (o vettori) siano posizionate vicine nello spazio vettoriale.
  2. Indicizzazione vettoriale: questo passaggio differenzia i database vettoriali dai database tradizionali. Ai dati vengono applicati algoritmi di ML, come quantizzazione del prodotto o Hierarchical Navigable Small World (HNSW), per mappare i vettori in nuove strutture di dati. Queste strutture permettono di effettuare ricerche rapide di similarità o di distanza, come la ricerca del vicino più prossimo tra i vettori. L'indicizzazione è essenziale per le prestazioni del database, in quanto consente di recuperare rapidamente vettori simili.
  3. Esecuzione delle query: nella fase finale, il vettore iniziale della query viene confrontato con i vettori indicizzati nel database. Il sistema recupera i vettori con le relazioni più forti, trovando così le informazioni più pertinenti in base alla similarità semantica piuttosto che alla corrispondenze esatta di parole chiave.

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.

Vantaggi dei database vettoriali

I database vettoriali offrono numerosi vantaggi:

  • Velocità e prestazioni elevate: i database vettoriali possono individuare rapidamente dati simili utilizzando metriche di distanza o similarità vettoriale, un processo che è fondamentale per NLP, visione artificiale e sistemi di raccomandazione. A differenza dei database tradizionali, che si basano su corrispondenze esatte o criteri predefiniti, i database vettoriali comprendono il significato semantico e contestuale. Questo ottimizza il recupero dei dati, consentendo l'esecuzione di ricerche più sfumate e consapevoli del contesto che vanno oltre la semplice corrispondenza di parole chiave.
  • Scalabilità: mentre i database tradizionali possono incontrare problemi di scalabilità, colli di bottiglia, latenza o conflitti di concorrenza quando devono lavorare con i big data, i database vettoriali sono specificamente progettati per gestire grandi volumi di dati. I database vettoriali migliorano la scalabilità utilizzando tecniche come sharding, partizionamento, caching e replica per distribuire il carico di lavoro e ottimizzare l'utilizzo delle risorse su più macchine o cluster.
  • Versatilità: progettati per essere versatili, i database vettoriali possono gestire dati di vario tipo, tra cui immagini, video o altri dati multimodali. Grazie alla loro capacità di supportare più casi d'uso, dai motori di ricerca semantica alle applicazioni di AI conversazionale, i database vettoriali possono essere personalizzati per soddisfare una varietà di esigenze aziendali. 
  • Efficienza nei costi: i database vettoriali riducono i costi grazie alla gestione efficiente di dati ad alta dimensionalità. A differenza delle interrogazioni dirette ai modelli ML, che possono essere computazionalmente onerose e dispendiose in termini di tempo, i database vettoriali utilizzano embedding di modelli per elaborare i set di dati in modo più efficiente. 
  • Integrazione con il ML: i database vettoriali facilitano il richiamo di input precedenti da parte dei modelli di ML, supportandone l'uso in applicazioni come motori semantici di ricerca, classificazione e raccomandazione. I dati vengono identificati sulla base di metriche di similarità invece che di corrispondenze esatte, consentendo ai modelli di comprendere meglio il contesto dei dati.

Cinque casi d'uso dei database vettoriali

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:

Modelli linguistici di grandi dimensioni (LLM)

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.

Riconoscimento di immagini

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.

Elaborazione del linguaggio naturale (NLP)

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.

Sistemi di raccomandazione e personalizzazione

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.

rilevamento di frodi

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.

Criticità comuni dei database vettoriali

Nonostante i database vettoriali abbiano numerosi vantaggi e si prestino a moltissimi casi d'uso, per comprenderli appieno occorre conoscerne anche le criticità.

  • Nuove pipeline di dati

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.

  • Maggiori esigenze di sicurezza e governance

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.

  • Elevato livello di competenza tecnica

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.

Database vettoriali vs. database a grafo

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.

Che differenza c'è tra un indice vettoriale e un database vettoriale?

Un indice vettoriale e un database vettoriale svolgono ruoli distinti ma complementari nella gestione di dati ad alta dimensionalità.

  • Indice vettoriale: un indice vettoriale è una struttura di dati specializzata progettata per eseguire ricerche rapide di similarità tra embedding vettoriali. Aumenta significativamente la velocità di ricerca organizzando i vettori in modo da consentire un recupero efficiente. Esempi di indici vettoriali includono Facebook AI Similarity Search (FAISS), HNSW e hashing sensibile alla località (LSH). Questi indici possono essere utilizzati come processi algoritmici stand-alone o integrati in sistemi più ampi per ottimizzare le operazioni di ricerca. 
  • Database vettoriale: un database vettoriale è una soluzione completa di gestione dei dati che non solo incorpora l'indicizzazione vettoriale, ma fornisce anche funzionalità aggiuntive come archiviazione dei dati, operazioni CRUD (creazione, lettura, aggiornamento e cancellazione), filtraggio basato su metadati e scalabilità orizzontale. È progettato per gestire e interrogare gli embedding vettoriali in modo efficiente, supportando operazioni complesse e garantendo l'integrità e la sicurezza dei dati.

Tendenze future per i database vettoriali

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.

  • Maggiore integrazione con i modelli di ML: la relazione tra database vettoriali e modelli di ML è oggetto di ricerche sempre più approfondite. Queste iniziative mirano a ridurre la dimensione e la dimensionalità dei vettori, minimizzando i requisiti di archiviazione per grandi set di dati e aumentando l'efficienza computazionale.
  • Personalizzazione della RAG: la RAG è un approccio utilizzato per migliorare il contesto fornito a un LLM nei casi d'uso di GenAI, come chatbot e applicazioni di domanda e risposta. Il database vettoriale viene utilizzato per arricchire il prompt fornito al LLM aggiungendo ulteriore contesto alla query.
  • Ricerca multi-vettoriale: un ulteriore ambito di studio sarà il miglioramento delle capacità di ricerca multi-vettoriale, fondamentali per applicazioni come il riconoscimento facciale. Le tecniche attuali spesso si basano sulla combinazione di punteggi individuali, ma questo approccio può risultare costoso dal punto di vista computazionale in quanto aumenta il numero di calcoli delle distanze richiesti. 
  • Ricerca ibrida: l'evoluzione dei sistemi di ricerca ha portato a una crescente adozione di approcci ibridi che combinano metodi tradizionali basati su parole chiave con moderne tecniche di recupero vettoriale.

Come creare un database vettoriale con Databricks

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.

Dove posso trovare ulteriori informazioni sui database vettoriali e sulla ricerca vettoriale?

Ci sono molte risorse disponibili in cui trovare maggiori informazioni sui database vettoriali e la ricerca vettoriale, tra cui:

Blog

eBook

Demo

Contatta Databricks per programmare una demo e parlarci dei tuoi progetti di LLM e database vettoriali.

    Torna al Glossario