Passa al contenuto principale

Che cos'è un database vettoriale?

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

di Staff di Databricks

  • Un database vettoriale memorizza le informazioni sotto forma di vettori ad alta dimensionalità, consentendo alle applicazioni di eseguire ricerche in base al significato e alla somiglianza tra testi, immagini e altri dati non strutturati, anziché limitarsi a parole chiave esatte.
  • Con la crescita dei dati non strutturati, le organizzazioni utilizzano i database vettoriali per la ricerca semantica, i sistemi di raccomandazione, la risposta alle domande e altri casi d'uso di AI, poiché supportano il recupero basato sulla somiglianza in set di dati di grandi dimensioni.
  • Databricks AI Search offre un database vettoriale gestito che si integra con il lakehouse, automatizza la generazione e l'ingestione dei vettori e aggiunge governance e sicurezza per i carichi di lavoro di AI in produzione.

Cos'è un database vettoriale?

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.

Quando usare un database vettoriale?

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

Cos'è un vettore?

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.

Cos'è l'embedding vettoriale?

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.

Come funzionano i database vettoriali?

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:

  1. Vettorializzazione: Questo primo passaggio comporta la generazione di embedding da contenuti multimodali, che possono includere testo, immagini, audio o video. Questo processo cattura le relazioni semantiche nei dati. Ad esempio, nei dati di testo questo processo garantisce che le parole con significati (o vettori) simili vengano posizionate vicine tra loro nello spazio vettoriale.
  2. Indicizzazione vettoriale: Il passaggio successivo distingue i database vettoriali da quelli tradizionali. Algoritmi di ML, come la quantizzazione del prodotto o l'Hierarchical Navigable Small World (HNSW), vengono applicati ai dati per mappare i vettori su nuove strutture dati. Queste strutture consentono ricerche di somiglianza o distanza più rapide, come le ricerche dei vicini più prossimi (nearest neighbor) tra vettori. Questo processo di indicizzazione è essenziale per le prestazioni del database, poiché consente un rapido recupero di vettori simili.
  3. Esecuzione della query: Nella fase finale, il vettore della query iniziale viene confrontato con i vettori indicizzati nel database. Il sistema recupera i vettori con le relazioni più forti, trovando in modo efficace le informazioni più rilevanti in base alla somiglianza semantica piuttosto che a corrispondenze esatte di parole chiave.

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.

Vantaggi dei database vettoriali

I database vettoriali offrono una serie di vantaggi:

  • Alta velocità e prestazioni: I database vettoriali possono individuare rapidamente dati simili utilizzando metriche di distanza o somiglianza vettoriale, un processo fondamentale per l'NLP, la computer vision e i sistemi di raccomandazione. A differenza dei database tradizionali, che si limitano a corrispondenze esatte o criteri predefiniti, i database vettoriali catturano il significato semantico e contestuale. Ciò ottimizza il recupero dei dati consentendo di eseguire ricerche più sfumate e sensibili al contesto, che vanno oltre la semplice corrispondenza di parole chiave.
  • Scalabilità: Mentre i database tradizionali possono incontrare difficoltà legate a colli di bottiglia nella scalabilità, problemi di latenza o conflitti di concorrenza quando gestiscono grandi volumi di dati, i database vettoriali sono progettati per gestire enormi quantità di dati. I database vettoriali migliorano la scalabilità utilizzando tecniche come lo sharding, il partizionamento, il caching e la replica per distribuire il carico di lavoro e ottimizzare l'uso delle risorse su più macchine o cluster.
  • Versatilità: Che i dati contengano immagini, video o altri dati multimodali, i database vettoriali sono progettati per essere versatili. Grazie alla loro capacità di gestire molteplici casi d'uso, che vanno dalla ricerca semantica alle applicazioni di AI conversazionale, i database vettoriali possono essere personalizzati per soddisfare una varietà di requisiti aziendali.
  • Rapporto costo-efficacia: I database vettoriali offrono costi inferiori grazie alla loro gestione efficiente dei dati ad alta dimensione. A differenza dell'interrogazione diretta dei modelli di ML, che può essere computazionalmente intensiva e richiedere molto tempo, i database vettoriali utilizzano gli embedding dei modelli per elaborare il dataset in modo più efficiente.
  • Integrazione con il ML: I database vettoriali rendono più facile per i modelli di ML ricordare gli input precedenti, consentendo al ML di alimentare motori di ricerca semantica, classificazione e raccomandazione. I dati possono essere identificati in base a metriche di somiglianza anziché a corrispondenze esatte, rendendo possibile per un modello comprendere il contesto dei dati.

Cinque casi d'uso dei database vettoriali

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:

Large language model (LLM)

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.

Riconoscimento delle immagini

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.

Elaborazione del linguaggio naturale (NLP)

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.

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

Rilevamento delle frodi

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.

Sfide comuni dei database vettoriali

Nonostante i loro numerosi vantaggi e casi d'uso, una comprensione completa dei database vettoriali deve includere anche le loro sfide.

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

Maggiore sicurezza e governance

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.

Elevato livello di conoscenze tecniche

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.

Report

Il playbook sull'AI agentiva per l'enterprise

Database vettoriali vs. database a grafi

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.

Qual è la differenza tra un indice vettoriale e un database vettoriale?

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

  • Indice vettoriale: un indice vettoriale è una struttura dati specializzata progettata per facilitare ricerche rapide per somiglianza tra gli embedding vettoriali. Migliora 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 locality-sensitive hashing (LSH). Questi indici possono essere utilizzati come processi algoritmici autonomi o integrati in sistemi più ampi per ottimizzare le operazioni di ricerca.
  • Database vettoriale: d'altra parte, un database vettoriale è una soluzione completa per la gestione dei dati che non solo incorpora l'indicizzazione vettoriale, ma fornisce anche funzionalità aggiuntive come l'archiviazione dei dati, le operazioni di creazione, lettura, aggiornamento e cancellazione (CRUD), il filtraggio dei metadati e la scalabilità orizzontale. È progettato per gestire ed eseguire query sugli 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 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.

  • Maggiore integrazione con i modelli ML: la relazione tra database vettoriali e modelli ML è oggetto di crescenti ricerche. Questi sforzi mirano a ridurre le dimensioni e la dimensionalità dei vettori, riducendo al minimo i requisiti di archiviazione per i dataset di grandi dimensioni e aumentando l'efficienza computazionale.
  • Personalizzazione RAG: la RAG è un approccio utilizzato per migliorare il contesto fornito a un LLM nei casi d'uso GenAI, incluse le applicazioni di chatbot e di risposta a domande generali. Il database vettoriale viene utilizzato per migliorare il prompt passato all'LLM aggiungendo ulteriore contesto insieme alla query.
  • Ricerca multi-vettore: si prevedono ulteriori ricerche sul miglioramento delle capacità di ricerca multi-vettore, importante per applicazioni come il riconoscimento facciale. Le tecniche attuali spesso si basano sulla combinazione di punteggi individuali, ma questo approccio può essere computazionalmente costoso poiché aumenta il numero di calcoli di distanza richiesti.
  • Ricerca ibrida: l'evoluzione dei sistemi di ricerca ha portato a una crescente adozione di approcci ibridi che combinano i metodi tradizionali basati su parole chiave con le moderne tecniche di recupero vettoriale.

Come creare un database vettoriale con Databricks

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.

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

Sono disponibili molte risorse per trovare maggiori informazioni sui database vettoriali e sulla ricerca vettoriale, tra cui:

Blog

eBook

Demo

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

Ricevi gli ultimi articoli nella tua casella di posta

Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.