Passa al contenuto principale
All

Cos'è un database vettoriale?

di Staff di Databricks

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.

Quando dovrei usare un database vettoriale?

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

Cos'è un vettore?

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.

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

Termini chiave e definizioni

  • Vettore: Una sequenza di numeri che rappresenta un oggetto — come una parola, un'immagine o un documento — come un punto in uno spazio multidimensionale, consentendo agli algoritmi di confrontare matematicamente gli oggetti e calcolare quanto siano simili o diversi
  • Embedding: Una rappresentazione vettoriale appresa che mappa oggetti discreti (parole, documenti e immagini) in uno spazio vettoriale continuo, in modo che gli elementi semanticamente simili finiscano geometricamente vicini tra loro
  • Somiglianza del coseno: Misura il coseno dell'angolo tra due vettori, catturando quanto siano simili le loro direzioni indipendentemente dalla loro dimensione, con valori che vanno da −1 (opposti) a 1 (direzione identica): cos(θ) = (A · B) / (‖A‖× ‖B‖)
    Distanza euclidea: La distanza in linea retta tra due punti nello spazio vettoriale, che misura quanto sono distanti in termini assoluti piuttosto che per allineamento direzionale: d(A, B) = √Σ(Aᵢ − Bᵢ)²
  • Approximate Nearest Neighbor (ANN): Una famiglia di algoritmi di ricerca che trovano vettori vicini a una query scansionando solo un sottoinsieme dell'indice, scambiando una piccola perdita di precisione con un recupero drasticamente più veloce su larga scala
  • Hierarchical Navigable Small World (HNSW): Un indice basato su grafi che costruisce più strati di connessioni di prossimità, consentendo alle query di navigare rapidamente da vicini grossolani a vicini fini
  • Inverted File Index (IVF): Divide lo spazio vettoriale in cluster, quindi al momento della query cerca solo i cluster più vicini, offrendo un equilibrio pratico tra tempo di costruzione dell'indice e velocità della query
  • Locality-Sensitive Hashing (LSH): Effettua l'hashing dei vettori in modo che quelli simili abbiano maggiori probabilità di finire nello stesso bucket, consentendo una ricerca approssimativa veloce con un basso overhead di memoria
  • Filtro dei metadati: La pratica di restringere i risultati della ricerca vettoriale utilizzando attributi strutturati, come data, categoria o ID utente, in modo che i risultati debbano soddisfare rigide regole aziendali, non solo la somiglianza semantica
  • Ricerca ibrida: Combina la ricerca vettoriale densa (significato semantico) con la ricerca di parole chiave sparse (pertinenza di corrispondenza esatta tramite BM25/TF-IDF), quindi unisce le due liste classificate, tipicamente usando Reciprocal Rank Fusion (RRF), per ottenere il meglio da entrambi gli approcci
  • Ricerca multi-vettore: Rappresenta ogni record con diversi vettori separati (come uno per il titolo, il corpo e l'immagine) e cerca attraverso tutti, aggregando i punteggi per far emergere il singolo risultato più pertinente

Come funzionano i database vettoriali?

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:

  1. Vettorializzazione: Questo primo passaggio prevede la generazione di embedding da contenuti multimodali, che potrebbero includere testo, immagini, audio o video. Questo processo cattura le relazioni semantiche nei dati. Ad esempio, nei dati testuali, questo processo assicura che le parole con significati simili (o vettori) siano posizionate vicine tra loro nello spazio vettoriale.
  2. Indicizzazione vettoriale: Il passaggio successivo distingue i database vettoriali dai database tradizionali. Algoritmi ML, come la quantizzazione del prodotto o HNSW, vengono applicati ai dati per mappare i vettori a nuove strutture dati. Queste strutture consentono ricerche di somiglianza o distanza più veloci, come le ricerche dei vicini più prossimi 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 efficacemente le informazioni più pertinenti basate sulla somiglianza semantica piuttosto che su 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 integrale per NLP, visione artificiale e sistemi di raccomandazione. A differenza dei database tradizionali, che sono limitati a corrispondenze esatte o criteri predefiniti, i database vettoriali catturano il significato semantico e contestuale. Ciò ottimizza il recupero dei dati consentendo l'esecuzione di ricerche più sfumate e contestualmente consapevoli al di là della semplice corrispondenza di parole chiave.
  • Scalabilità: Mentre i database tradizionali possono affrontare sfide con colli di bottiglia di scalabilità, problemi di latenza o conflitti di concorrenza quando si tratta di big data, i database vettoriali sono costruiti 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'utilizzo delle risorse su più macchine o cluster.
  • Versatilità: Che i dati contengano immagini, video o altri dati multimodali, i database vettoriali sono costruiti per essere versatili. Data la 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.
  • Efficienza dei costi: I database vettoriali offrono costi inferiori grazie alla loro gestione efficiente dei dati ad alta dimensionalità. A differenza dell'interrogazione diretta dei modelli ML, che può essere computazionalmente intensiva e richiedere tempo, i database vettoriali utilizzano gli embedding dei modelli per elaborare il dataset in modo più efficiente.
  • Integrazione ML: I database vettoriali facilitano ai modelli ML il richiamo degli input precedenti, consentendo all'ML di alimentare la ricerca semantica, la classificazione e i motori di 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 diversi settori per una vasta gamma di applicazioni e casi d'uso. Ecco alcuni degli esempi più comuni di database vettoriali:

Modelli linguistici di grandi dimensioni (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 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.

Riconoscimento delle immagini

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.

Elaborazione del linguaggio naturale (NLP)

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.

Sistemi di raccomandazione e personalizzazione

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.

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

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

Maggiore sicurezza e governance

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.

Elevato livello di conoscenza tecnica

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.

Database vettoriali vs. database a grafo

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.

Confronto: Database vettoriale vs. indice vettoriale vs. RDBMS tradizionale vs. DB a grafo

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 vettorialeIndice vettorialeRDBMS tradizionaleDB a grafo
Modello di datiStreaming/continuo (da secondi a minuti)Analisi proattiva, basata sull'IAAnalisi proattiva, basata sull'IAAnalisi proattiva, basata sull'IA
Tipi di queryAnalisti, dirigentiTeam operativi, applicazioni, sistemi automatizzatiTeam operativi, applicazioni, sistemi automatizzatiTeam operativi, applicazioni, sistemi automatizzati
Latenza tipicaEsplorazione ad hoc, report programmatiMetriche predefinite, avvisi, trigger automatizzatiMetriche predefinite, avvisi, trigger automatizzatiMetriche predefinite, avvisi, trigger automatizzati
ScalabilitàInterpretazione umana → decisioneTrigger automatizzati, raccomandazioni incorporateTrigger automatizzati, raccomandazioni incorporateTrigger automatizzati, raccomandazioni incorporate
FiltroData warehouse, pipeline ETLPiattaforme di streaming, elaborazione eventiPiattaforme di streaming, elaborazione eventiPiattaforme di streaming, elaborazione eventi
Garanzie transazionaliConsistenza finale tipicaNessuna, livello di ricerca in sola letturaACID completoACID (varia a seconda dello strumento)
Governance / sicurezzaIn miglioramento, varia a seconda del fornitoreMinimale, si basa sul sistema hostRBAC maturo, log di audit, crittografiaModerata, varia a seconda del fornitore
Strumenti comuniPinecone, Weaviate, QdrantFAISS, HNSW lib, ScaNNPostgreSQL, MySQL, SQL ServerNeo4j, Amazon Neptune, ArangoDB

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

Come scegliere un database vettoriale

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.

  • Prestazioni & latenza: Comprendi quale livello di accuratezza della ricerca (recall) e tempo di risposta delle query sono accettabili per il tuo caso d'uso
  • Supporto per la dimensionalità degli embedding: Assicurati che il database possa gestire la dimensione dell'output del tuo modello AI specifico, che sia 768, 1536 o anche superiore
  • Tipi di indice supportati: Conferma che il database offra gli algoritmi di indicizzazione giusti per i tuoi dati, come HNSW, IVF o LSH, poiché questi influenzano direttamente i compromessi tra velocità e accuratezza
  • Ricerca ibrida: Cerca la capacità di combinare la ricerca tradizionale per parole chiave (BM25) con la ricerca vettoriale semantica in un'unica query
  • Fallback esatto + ANN: Verifica se puoi passare dalla ricerca approssimata a quella esatta del vicino più prossimo, a seconda della precisione di cui hai bisogno
  • Filtro dei metadati: Assicurati di poter restringere i risultati in base a campi strutturati come data o categoria, oltre alla similarità vettoriale
  • Supporto CRUD e ACID: Valuta se il database supporta operazioni complete sui dati e garanzie transazionali, il che è particolarmente importante se i tuoi dati cambiano frequentemente
  • RBAC/ABAC e multitenancy: Verifica che il database offra controlli di accesso basati su ruoli o attributi e possa mantenere i dati di team o clienti diversi adeguatamente isolati
  • Osservabilità e valutazione: Cerca funzionalità integrate di monitoraggio, logging e strumenti per misurare la qualità della ricerca nel tempo, in modo da poter individuare e risolvere tempestivamente i problemi di prestazioni
  • Accelerazione hardware: Considera se l'indicizzazione e la ricerca accelerate da GPU sono supportate e se la tua infrastruttura attuale può trarne vantaggio

Errori comuni e best practice

  • Deriva degli embedding → Stabilisci una pianificazione regolare di re-embedding in modo che, man mano che i tuoi dati sorgente o i modelli sottostanti si evolvono, i tuoi vettori rimangano aggiornati e riflettano accuratamente ciò che stai cercando
  • Embedding non versionati → Tieni traccia di quale versione del modello ha generato quali vettori in modo da poter riprodurre in modo affidabile i risultati, confrontare le prestazioni nel tempo ed eseguire il rollback se qualcosa va storto.
  • Indici obsoleti → Definisci chiare politiche di aggiornamento degli indici in anticipo, impostando la frequenza di ricostruzione e aggiornamento in base alla frequenza con cui i tuoi dati cambiano
  • Chunking scadente per RAG → Testa un intervallo di dimensioni dei chunk (256–1024 token) con una sovrapposizione del 10–20% e valuta la qualità del recupero per ogni impostazione
  • Inquinamento da contenuti quasi-duplicati → Esegui la deduplicazione prima dell'indicizzazione per rimuovere contenuti ridondanti o quasi identici
  • Nessuna metrica di valutazione → Esegui regolarmente benchmark utilizzando Recall@k, nDCG e MRR — puntando a benchmark come Recall@10 superiore a 0.85 per la maggior parte dei carichi di lavoro di produzione — in modo da avere un segnale chiaro quando la qualità della ricerca diminuisce
  • Esposizione di PII negli embedding → Maschera o escludi i dati personali sensibili prima che raggiungano la fase di embedding e applica controlli di accesso granulari sullo store vettoriale per limitare chi può interrogare cosa

Domande e risposte

Database vettoriale vs. indice vettoriale — qual è la differenza?

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.

È richiesto un database vettoriale per RAG?

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.

Come funziona la ricerca ibrida (BM25 + vettoriale)?

La ricerca ibrida combina due segnali di recupero fondamentalmente diversi — corrispondenza per parole chiave e similarità semantica — in un unico risultato di query.

  • BM25 gestisce corrispondenze esatte e basate su parole chiave, assegnando un punteggio ai documenti in base alla frequenza dei termini e alla pertinenza, il che lo rende affidabile per query precise come nomi di prodotti, codici o nomi propri
  • La ricerca vettoriale gestisce le corrispondenze semantiche, recuperando i risultati in base al significato e al contesto anche quando la query non condivide parole esatte con il documento
  • La fusione dei punteggi unisce i due segnali in un'unica lista classificata — Reciprocal Rank Fusion (RRF) è un approccio comune che combina le classifiche di ciascun metodo senza richiedere un'attenta normalizzazione del punteggio
  • La ricerca ibrida migliora sia la precisione che il richiamo ed è particolarmente preziosa in applicazioni aziendali o specifiche di dominio in cui gli utenti combinano query tecniche precise con ricerche concettuali più ampie

Quando un database vettoriale è superfluo?

I database vettoriali aggiungono un reale overhead operativo e ci sono diversi scenari in cui tale complessità semplicemente non è giustificata.

  • I dataset di piccole dimensioni che rientrano nella memoria sono solitamente gestiti meglio da un indice leggero in memoria come FAISS o Annoy, che può essere caricato direttamente nella tua applicazione senza dover distribuire un servizio separato
  • I casi d'uso in cui la ricerca esatta per parola chiave è sufficiente — come la ricerca di documenti interni per titolo o ID — non traggono vantaggio dalla ricerca semantica, rendendo un indice di ricerca o un database tradizionale una scelta più semplice e affidabile
  • Quando stai già utilizzando PostgreSQL, l'estensione pgvector aggiunge la ricerca di similarità vettoriale direttamente al tuo database esistente, eliminando la necessità di un archivio vettoriale separato e riducendo la complessità dell'infrastruttura
  • Le applicazioni a basso traffico o a utente singolo raramente necessitano delle funzionalità di scaling, replica o multitenancy che giustificano un database vettoriale dedicato, quindi il costo operativo supera il beneficio
  • Se il tuo dataset è statico o cambia raramente, ricostruire o ricaricare un indice periodicamente può essere più semplice che mantenere un database vettoriale completamente gestito

Tendenze future per i database vettoriali

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

Come creare un database vettoriale con Databricks

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:

Blog

eBook

Demo

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

Ricevi gli ultimi articoli nella tua casella di posta

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