Un database vettoriale è un database specializzato progettato per archiviare e gestire i dati come vettori ad alta dimensionalità. Il termine deriva dai vettori, che sono rappresentazioni matematiche di caratteristiche o attributi contenuti nei dati. A differenza dei database tradizionali, che sono adatti a 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 è costituito 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 ricerche e analisi rapide basate sulla somiglianza.
Secondo International Data Corporation (IDC), il 90% dei nuovi dati creati sono dati non strutturati, come testo, immagini e video. I modelli basati sull'apprendimento, come le reti neurali profonde, sono sempre più utilizzati per gestire questi dati non strutturati per applicazioni in tutti i 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 tecnologie che stai utilizzando. Sono un componente chiave per alimentare molti sistemi di AI, e alcune (ma non tutte) applicazioni di modelli linguistici di grandi dimensioni (LLM) utilizzano database vettoriali per ricerche rapide di somiglianza o per fornire contesto o conoscenza di dominio. Ad esempio, svolgono un ruolo cruciale nella generazione aumentata da recupero (RAG), un approccio in cui il database vettoriale viene utilizzato per migliorare il prompt passato all'LLM aggiungendo contesto aggiuntivo insieme alla query.
I database vettoriali abilitano anche la ricerca ibrida. Questo approccio combina la ricerca tradizionale basata su parole chiave con la ricerca di somiglianza semantica per individuare informazioni pertinenti anche quando le parole chiave non corrispondono esattamente. I database vettoriali possono essere utilizzati anche per una serie di attività di elaborazione del linguaggio naturale (NLP), inclusa 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 particolare punto attraverso diverse dimensioni. Immagina uno spazio vettoriale di parole come una nuvola tridimensionale dove le parole sono rappresentate come punti. In questo spazio, le parole con significati correlati si raggruppano. Ad esempio, il punto che rappresenta “mela” sarebbe posizionato più vicino a “pera” che a “auto”. Questa disposizione spaziale riflette le relazioni semantiche tra le parole, con la prossimità che indica 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 ML prende un raggruppamento rappresentativo e lo incorpora in uno spazio vettoriale. I vettori sono incorporati come liste di numeri, rendendo più facile per i modelli ML eseguire operazioni con i dati. Infatti, le prestazioni dei metodi ML dipendono criticamente 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 archiviare, indicizzare e interrogare i dati in modo efficiente tramite embedding vettoriali ad alta dimensionalità. Una volta che un utente inserisce una query o una richiesta nel database vettoriale, inizia 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 diversi settori per una vasta 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 fornire capacità di ottimizzazione delle query per dati non strutturati.
Nelle applicazioni multimodali, i dati vengono incorporati e archiviati in 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à NLP, mentre gli algoritmi del database vettoriale eseguono ricerche ANN. Questo approccio può produrre risultati migliori rispetto all'utilizzo di uno dei due 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 degli LLM. I prompt degli utenti possono essere aumentati tramite l'inclusione di contesto per mitigare le sfide principali degli LLM, come allucinazioni o bias.
I database vettoriali possono svolgere un ruolo chiave nel riconoscimento delle immagini archiviando embedding ad alta dimensionalità di immagini generate da modelli ML. Poiché i database vettoriali sono ottimizzati per 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 tramite 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 di contenuti rappresentando ogni immagine come un vettore ad alta dimensionalità. Quando un utente "pina" un'immagine di un tramonto costiero, 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 efficiente di rappresentazioni di parole distribuite. Modelli come Word2Vec, GloVe e BERT sono addestrati su enormi dataset di testo per generare embedding di parole ad alta dimensionalità che catturano relazioni semantiche, che vengono poi archiviati in database vettoriali per un accesso rapido.
Poiché consentono ricerche rapide di 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 a domande, la classificazione del testo e l'estrazione di entità nominate. Inoltre, i database vettoriali possono archiviare embedding a livello di frase, catturando contesti di parole e consentendo una comprensione del linguaggio più sfumata.
Una volta che un database vettoriale è 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 una raccomandazione di serie TV e il database vettoriale può suggerire serie TV che hanno 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 schemi di frode noti in tempo reale. La scalabilità dei database vettoriali consente inoltre loro di gestire il rischio e acquisire nuove intuizioni sul comportamento dei consumatori. Questi database possono identificare schemi che indicano attività codificando i dati delle transazioni come vettori. Inoltre, facilitano la valutazione della solvibilità 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 incorporati con un modello ML prima di essere archiviati come vettori nel database.
Databricks AI Search offre una soluzione completa a questa sfida. Automatizza la generazione, la gestione e l'ottimizzazione dei vettori, gestendo la sincronizzazione in tempo reale dei dati sorgente con gli indici vettoriali corrispondenti. Il software gestisce i guasti, ottimizza il throughput ed esegue la regolazione automatica della dimensione del batch e l'autoscaling senza la necessità di intervento manuale.
Questo approccio riduce la necessità di pipeline di ingestione dei dati separate, minimizzando la "fatica dello sviluppatore" e consentendo ai team di concentrarsi su attività di livello superiore che aggiungono direttamente valore aziendale anziché dedicare tempo alla costruzione e alla manutenzione di complessi processi di preparazione dei dati.
I database vettoriali richiedono sicurezza aggiuntiva, controlli di accesso e governance dei dati, insieme alla necessaria manutenzione e gestione. Le organizzazioni aziendali richiedono rigorosi controlli di sicurezza e accesso ai dati in modo che gli utenti non possano accedere a modelli GenAI che si collegano a dati riservati.
Molti database vettoriali attuali o non dispongono di robusti controlli di sicurezza e accesso, oppure richiedono alle organizzazioni di costruire e mantenere un set separato di politiche di sicurezza. Databricks AI Search fornisce un'interfaccia unificata che definisce le politiche sui dati per tracciare automaticamente la lineage dei dati senza la necessità di strumenti aggiuntivi. Ciò garantisce che gli LLM non espongano dati riservati agli utenti che non dovrebbero avere accesso.
Poiché offrono potenti capacità per le ricerche di 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 un 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 principali vantaggi 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 popolari database vettoriali. È anche compatibile con gli strumenti di governance dei dati e di sicurezza esistenti tramite Unity Catalog, garantendo la protezione e la conformità dei dati.
Databricks AI Search offre flessibilità sia per gli utenti principianti che per quelli avanzati, con scaling automatizzato per l'ingestione e l'interrogazione dei dati, nonché API plug-and-replace per coloro che preferiscono un maggiore controllo sulle proprie pipeline. Questa combinazione di facilità d'uso e prestazioni potenti semplifica la creazione di un database vettoriale per i data scientist a tutti i livelli di competenza.
I database vettoriali organizzano i dati come punti in uno spazio vettoriale multidimensionale. Ogni punto rappresenta un pezzo di dato e la posizione riflette le sue caratteristiche rispetto ad altri pezzi di dato. Questa struttura di database vettoriale è ben 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 grafo organizzano i dati archiviandoli in una struttura a grafo. Le entità sono rappresentate come nodi su un grafo, mentre le connessioni tra questi punti dati sono rappresentate come archi. La struttura a grafo consente agli elementi di dati nell'archivio di essere una collezione di nodi e archi, con gli archi che rappresentano le relazioni tra i nodi. La struttura interconnessa dei database a grafo li rende adatti a scenari in cui le connessioni tra i punti dati sono importanti quanto i dati stessi.
Usa questa tabella per confrontare rapidamente come ogni tipo di database memorizza i dati, gestisce le query e si adatta a diversi carichi di lavoro.
| Database vettoriale | Indice vettoriale | RDBMS tradizionale | DB a grafo | |
|---|---|---|---|---|
| Modello di dati | Streaming/continuo (da secondi a minuti) | Analisi proattiva, basata sull'IA | Analisi proattiva, basata sull'IA | Analisi proattiva, basata sull'IA |
| Tipi di query | Analisti, dirigenti | Team operativi, applicazioni, sistemi automatizzati | Team operativi, applicazioni, sistemi automatizzati | Team operativi, applicazioni, sistemi automatizzati |
| Latenza tipica | Esplorazione ad hoc, report programmati | Metriche predefinite, avvisi, trigger automatizzati | Metriche predefinite, avvisi, trigger automatizzati | Metriche predefinite, avvisi, trigger automatizzati |
| Scalabilità | Interpretazione umana → decisione | Trigger automatizzati, raccomandazioni incorporate | Trigger automatizzati, raccomandazioni incorporate | Trigger automatizzati, raccomandazioni incorporate |
| Filtro | Data warehouse, pipeline ETL | Piattaforme di streaming, elaborazione eventi | Piattaforme di streaming, elaborazione eventi | Piattaforme di streaming, elaborazione eventi |
| Garanzie transazionali | Consistenza finale tipica | Nessuna, livello di ricerca in sola lettura | ACID completo | ACID (varia a seconda dello strumento) |
| Governance / sicurezza | In miglioramento, varia a seconda del fornitore | Minimale, si basa sul sistema host | RBAC maturo, log di audit, crittografia | Moderata, varia a seconda del fornitore |
| Strumenti comuni | Pinecone, Weaviate, Qdrant | FAISS, HNSW lib, ScaNN | PostgreSQL, MySQL, SQL Server | Neo4j, Amazon Neptune, ArangoDB |
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 di similarità veloci 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 LSH. Questi indici possono essere utilizzati come processi algoritmici autonomi o integrati in sistemi più grandi per ottimizzare le operazioni di ricerca.
Database vettoriale: 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; operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD); filtraggio dei 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.
La scelta del database vettoriale giusto dipende dalle esigenze specifiche del carico di lavoro, dalle dimensioni previste di crescita dei dati e da quanto bene il database si integra con il tuo stack tecnologico esistente. Una soluzione che funziona perfettamente per un piccolo prototipo potrebbe avere difficoltà con il traffico su scala aziendale, mentre una piattaforma ricca di funzionalità potrebbe essere eccessivamente complessa per casi d'uso più semplici. Tieni a mente questi criteri per scegliere un database vettoriale che si adatti alle tue esigenze e si integri bene con i sistemi esistenti.
Questi due termini sono spesso usati in modo intercambiabile, ma si riferiscono a diversi livelli del sistema.
Ambito: Un indice vettoriale è una singola struttura dati — come HNSW o IVF — ottimizzata per velocizzare la ricerca del vicino più prossimo. Al contrario, un database vettoriale è un sistema completo costruito attorno a uno o più di questi indici, insieme a capacità di archiviazione e query.
Supporto CRUD: Gli indici vettoriali spesso hanno un supporto limitato o inefficiente per aggiornamenti ed eliminazioni. I database vettoriali forniscono robuste operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) al di sopra del livello dell'indice.
Scalabilità: Un indice autonomo risiede in memoria e non gestisce la distribuzione o la replica. Un database vettoriale, tuttavia, gestisce la scalabilità orizzontale, lo sharding e la persistenza attraverso l'infrastruttura.
Autonomo vs. integrato: Gli indici vettoriali possono essere incorporati direttamente nel codice dell'applicazione (ad esempio, FAISS). I database vettoriali sono servizi con API, controlli di accesso e strumenti di gestione integrati.
Un database vettoriale è una scelta comune per le pipeline RAG di produzione, ma non è sempre necessario. La risposta giusta dipende dalla tua scala e complessità.
Per RAG di produzione su larga scala, un database vettoriale diventa prezioso quando hai bisogno di archiviazione persistente, filtraggio dei metadati, controlli di accesso e la capacità di aggiornare il tuo dataset nel tempo.
Gli ambienti multi-tenant o regolamentati quasi sempre giustificano un database vettoriale, poiché richiedono isolamento dei tenant, logging di audit e controlli di accesso granulari che gli indici autonomi non forniscono.
Quando il tuo dataset è statico e piccolo, il sovraccarico di un database vettoriale potrebbe superare i benefici — un indice leggero caricato all'avvio può gestire il recupero altrettanto bene.
Per la prototipazione, un indice in memoria come FAISS o un semplice store basato su file è spesso sufficiente e molto più facile da configurare rispetto a un database vettoriale completo.
La ricerca ibrida combina due segnali di recupero fondamentalmente diversi — corrispondenza per parole chiave e similarità semantica — in un unico risultato di query.
I database vettoriali aggiungono un reale overhead operativo e ci sono diversi scenari in cui tale complessità semplicemente non è giustificata.
La recente ascesa degli LLM e delle applicazioni GenAI in generale ha contribuito a un aumento concomitante nell'adozione dei database vettoriali. Man mano che le applicazioni AI continuano a maturare, lo sviluppo di nuovi prodotti e le mutevoli esigenze degli utenti decideranno la direzione delle tendenze future nei database vettoriali. Tuttavia, ci sono alcune direzioni generalmente attese per questa tecnologia.
Maggiore integrazione con i modelli ML: La relazione tra database vettoriali e modelli ML è oggetto di crescente ricerca. Questi sforzi mirano a ridurre la dimensione e la dimensionalità dei vettori, minimizzando i requisiti di archiviazione per grandi dataset e aumentando l'efficienza computazionale.
Personalizzazione RAG: RAG è un approccio utilizzato per migliorare il contesto fornito a un LLM nei casi d'uso GenAI, incluse le applicazioni di chatbot e di domande e risposte generali. Il database vettoriale viene utilizzato per migliorare il prompt passato all'LLM aggiungendo contesto extra insieme alla query.
Ricerca multi-vettoriale: Si prevede ulteriore ricerca sul miglioramento delle capacità di ricerca multi-vettoriale, che è 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 metodi tradizionali basati su parole chiave con moderne tecniche di recupero vettoriale
Databricks AI Search è la soluzione di database vettoriale integrata di Databricks per la Data Intelligence Platform. Questo sistema completamente integrato elimina la necessità di pipeline di ingestione dati separate e applica controlli di sicurezza e meccanismi di governance dei dati, garantendo una protezione coerente su tutti gli asset di dati.
Databricks AI Search offre un'esperienza ad alte prestazioni e pronta all'uso, consentendo agli LLM di recuperare rapidamente risultati pertinenti con una latenza minima. Gli utenti beneficiano di scaling e ottimizzazione automatici, eliminando la necessità di una sintonizzazione manuale del database. Questa integrazione semplifica il processo di archiviazione, gestione e interrogazione degli embedding vettoriali, rendendo più facile per le organizzazioni implementare applicazioni 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:
Contatta Databricks per programmare una demo e parlare con qualcuno dei tuoi LLM e database vettoriali.
(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.