I database vettoriali alimentano il livello di recupero nei flussi di lavoro RAG memorizzando gli embedding di documenti e query come vettori ad alta dimensionalità. Consentono ricerche di similarità rapide basate sulle distanze vettoriali.
Abbiamo confrontato sei fornitori di database vettoriali, concentrandoci sulle loro strutture tariffarie e sulle prestazioni:
Confronto tra database vettoriali: prezzi e prestazioni
In questo benchmark abbiamo utilizzato:
- Set di dati vettoriali da 1 milione di unità provenienti da Cohere, dove ogni vettore ha 768 dimensioni.
- Tecniche di compressione vettoriale, che utilizzano la quantizzazione binaria per Weaviate, Elasticsearch, Zilliz e MongoDB Atlas, e la quantizzazione del prodotto per Pinecone, per ridurre l'utilizzo della memoria e del disco.
- Latenza valutata secondo la nostra metodologia di benchmark basata su database vettoriali .
I costi mensili stimati sono approssimativi e basati su determinate ipotesi e sui prezzi pubblicamente disponibili al momento della stesura del presente documento. I costi effettivi varieranno in base all'utilizzo specifico, alla configurazione, alla quantità di dati e ai prezzi correnti del fornitore.
Calcolatrice per l'archiviazione di database vettoriali
Utilizza il calcolatore per stimare il numero di vettori e lo spazio di archiviazione necessari per un database vettoriale in base alla dimensione dei dati di input, alla dimensione di embedding e alla dimensione dei blocchi:
Dimensione di inserimento :
- Il numero di valori numerici (caratteristiche) in ciascun vettore che rappresenta una porzione di testo.
- Esempio: una dimensione di 1536 significa che ogni vettore ha 1536 numeri, catturando il significato del testo. Dimensioni più elevate aumentano il livello di dettaglio ma richiedono più spazio di archiviazione.
Dimensione del blocco :
- Il numero di token (parole o punteggiatura) in ciascun segmento di testo viene elaborato in un singolo vettore.
- Esempio: una dimensione del blocco di 512 significa che ogni vettore rappresenta 512 token. Blocchi più piccoli creano più vettori, mentre blocchi più grandi riducono il numero di vettori ma potrebbero comportare una perdita di dettagli.
La calcolatrice utilizza i seguenti presupposti e calcoli:
- Utilizziamo 4 byte per token, una media standard per il testo inglese basata sulla codifica UTF-8 e su tokenizzatori come il tiktoken di OpenAI.
- La dimensione di ciascun vettore viene calcolata moltiplicando la dimensione di embedding (ad esempio, 1536) per 4 byte (poiché i vettori utilizzano valori float32, ciascuno dei quali occupa 4 byte).
Questi calcoli forniscono una stima generale per facilitare la pianificazione dell'utilizzo del database vettoriale. Per risultati accurati, pre-elabora il testo utilizzando un tokenizzatore specifico e consulta la documentazione del tuo database vettoriale.
piattaforme di database vettoriali
Elasticsearch
La ricerca vettoriale è integrata nel motore di ricerca e analisi ampiamente utilizzato Elasticsearch. Sfrutta il consolidato ecosistema ELK, offrendo potenti funzionalità di filtraggio, aggregazione e ricerca combinata per parole chiave e vettoriale (ibrida). Ideale per chi utilizza già Elasticsearch. 1
MongoDB Atlas
La funzionalità di ricerca vettoriale MongoDB Atlas consente di archiviare ed eseguire query sui vettori direttamente in MongoDB insieme ad altri dati dell'applicazione. Ciò semplifica lo stack tecnologico, soprattutto per gli utenti MongoDB esistenti, facilitando l'integrazione di applicazioni avanzate come l'IA. 2
Qdrant cloud
Servizio gestito per il database open-source Qdrant. Noto per le funzionalità avanzate di filtraggio (pre-filtraggio), quantizzazione, multi-tenancy e tariffazione basata sulle risorse per l'ottimizzazione delle prestazioni. 3
Pinecone
Un database vettoriale gestito e nativo per il cloud, incentrato sulla facilità d'uso, la scalabilità serverless e la ricerca a bassa latenza. Offre un'API semplice e prezzi basati sull'utilizzo. 4
Nuvola di Weaviate
Servizio gestito per il database open-source Weaviate. Noto per la sua API GraphQL, i moduli di vettorizzazione opzionali e le potenti funzionalità di ricerca ibrida. La tariffazione basata sullo spazio di archiviazione offre prevedibilità. 5
nuvola Zilliz
Zilliz è il servizio cloud gestito per il popolare database vettoriale open-source Milvus . Si concentra esclusivamente sulla ricerca vettoriale ad alte prestazioni e sulla scalabilità, offrendo coerenza configurabile e vari tipi di indice. È progettato per carichi di lavoro vettoriali impegnativi. 6
Supporto per la ricerca ibrida tra database vettoriali
I moderni database vettoriali supportano ora la ricerca ibrida che combina il recupero lessicale e semantico , ma le loro implementazioni differiscono significativamente per quanto riguarda gli algoritmi di fusione, gli approcci di filtraggio e la complessità delle query.
- Weaviate enfatizza un modello di esecuzione parallela in cui le ricerche vettoriali e BM25 vengono eseguite simultaneamente. Offre in modo esclusivo
relativeScoreFusion, che conserva le sfumature delle metriche di ricerca originali (distanze/punteggi) anziché solo l'ordine di classificazione, offrendo potenzialmente classifiche di maggiore fedeltà rispetto al RRF standard. Semplifica inoltre il bilanciamento di questi metodi utilizzando un singolo parametroalpha. 7
- Qdrant utilizza un'“API di query universale” che si basa su un meccanismo
prefetch. Ciò consente architetture complesse e multi-stadio in cui una query può recuperare i candidati utilizzando un vettore quantizzato in byte e rivalutarli con un vettore completo o un modello multi-vettore (come ColBERT) in un'unica richiesta. Supporta inoltre specifiche funzioni di “decadimento” (lineare, esponenziale, gaussiana) per incrementare i punteggi in base al tempo o alla geolocalizzazione. 8
- Elasticsearch sfrutta la sua esperienza come motore di ricerca lessicale per offrire un robusto sistema di punteggio BM25F insieme alla ricerca vettoriale. Ha recentemente introdotto "Retrievers", un livello di astrazione che semplifica la sintassi per l'integrazione di query RRF, kNN e standard. 9
- Pinecone offre due approcci distinti: un "indice ibrido singolo" (consigliato per semplicità) in cui vettori sparsi e densi coesistono, e un approccio con "indice separato" per la massima flessibilità. Pur non utilizzando un algoritmo "BM25" nativo nel senso tradizionale, elabora vettori sparsi generati da modelli (come SPLADE o codificatori basati su BM25) per ottenere lo stesso risultato. 10
- Zilliz si distingue per la "Ricerca Ibrida Multi-Vettoriale", progettata specificamente per scenari multimodali (ad esempio, la ricerca simultanea di testo e immagini). Richiede la definizione di uno schema con più campi vettoriali (ad esempio,
text_dense,image_dense,text_sparse) e la costruzione di una richiesta che si rivolga individualmente a questi campi specifici prima di unire i risultati. 11
- MongoDB implementa la ricerca ibrida tramite la sua Aggregation Pipeline. Ciò consente un'elevata flessibilità ma aumenta la complessità di implementazione. Supporta due metodi di fusione distinti:
$rankFusion(RRF standard) e$scoreFusion(che consente il "Semantic Boosting", in cui i punteggi vettoriali aumentano matematicamente i punteggi full-text). Questo è particolarmente utile per set di risultati di grandi dimensioni in cui le corrispondenze semantiche dovrebbero dare priorità alle corrispondenze di parole chiave specifiche. 12
Che cos'è un database vettoriale?
Un database vettoriale è progettato per memorizzare dati in formato vettoriale ed eseguire query di similarità in tempo reale o quasi in tempo reale. Testo, immagini o altri tipi di dati vengono in genere trasformati in vettori di embedding tramite modelli di deep learning (ad esempio, modelli linguistici). Il database utilizza quindi strutture di indicizzazione specializzate (HNSW, IVF, ecc.) per recuperare in modo efficiente i vicini più prossimi sulla base di queste rappresentazioni vettoriali.
Questo approccio consente di svolgere attività come la ricerca semantica, ad esempio, abbinando una query ai documenti o alle immagini semanticamente più simili.
Vantaggi dei database vettoriali
I database vettoriali sono essenziali, soprattutto per le applicazioni di intelligenza artificiale come RAG :
- Ricerca di similarità efficiente: il loro punto di forza principale risiede nell'individuare vettori (che rappresentano dati come testo, immagini o audio) che siano "più vicini" o più simili per significato o contenuto, andando oltre la semplice corrispondenza di parole chiave.
- Gestione di dati ad alta dimensionalità: i database tradizionali faticano a gestire la complessità e la dimensionalità degli embedding vettoriali generati dai moderni modelli di intelligenza artificiale. I database vettoriali sono progettati specificamente per affrontare questa sfida.
- Scalabilità: sono progettati per scalare in modo efficiente, gestendo miliardi di vettori pur mantenendo prestazioni di interrogazione elevate, aspetto cruciale man mano che i set di dati crescono.
- Comprensione semantica: tramite la ricerca basata sulla prossimità vettoriale, consentono alle applicazioni di comprendere il significato semantico o il contesto dei dati, portando a risultati più pertinenti nella ricerca, nei consigli e nel recupero del contesto RAG .
- Funzionalità di intelligenza artificiale: sono un elemento fondamentale per funzionalità come la ricerca semantica, la ricerca di immagini, i motori di raccomandazione, il rilevamento delle anomalie e, soprattutto, per fornire un contesto rilevante ai modelli linguistici di grandi dimensioni (LLM) nelle pipeline RAG .
Scegliere la piattaforma giusta
La scelta del database vettoriale ideale implica un bilanciamento tra prestazioni, costi e funzionalità, in base ai requisiti specifici dell'applicazione RAG .
- Requisiti di prestazioni (latenza e throughput): quanto è importante una latenza inferiore a 100 ms? Qual è il volume di query previsto? I nostri risultati di benchmark hanno mostrato che Zilliz è leader in termini di latenza grezza nelle condizioni di test, con Pinecone e Qdrant anch'essi competitivi. Esegui i test con il carico previsto.
- Prevedibilità del budget e dei costi: in che modo ciascun modello di prezzo si adatta al tuo budget? Il costo di esempio di Elasticsearch era il più basso, ma dipende fortemente dall'utilizzo. Weaviate è basato sullo storage e prevedibile, ma potrebbe avere un costo più elevato. Qdrant è basato sulle risorse, offre la possibilità di ottimizzazione ma richiede un'attenta selezione del livello. Considera l'ipotesi di 768 dimensioni utilizzata nel calcolo dei costi: dimensioni diverse modificheranno le spese, soprattutto per Qdrant e Pinecone.
- Requisiti di scalabilità: quanto si prevede che crescerà il set di dati? Come aumenterà il carico di query? Valutare i meccanismi di scalabilità e i costi associati per ciascuna piattaforma.
- Funzionalità richieste: Hai bisogno di una logica di filtraggio specifica, di integrazioni particolari o di funzionalità di importazione/esportazione dati? Confronta gli elenchi dettagliati delle funzionalità.
- Esperienza di sviluppo ed ecosistema: quanto sono facili da usare gli SDK e le API? Quanto sono validi la documentazione e il supporto della community?
- Costi operativi: State cercando esclusivamente un servizio gestito, oppure l'opzione di self-hosting (disponibile per i core Qdrant/Weaviate) potrebbe interessarvi?
metodologia di benchmark per database vettoriali
Per garantire un confronto equo, abbiamo standardizzato il nostro approccio di benchmarking:
- Set di dati: Abbiamo utilizzato un set di dati vettoriale di 1 milione di elementi proveniente da Cohere, dove ogni vettore ha 768 dimensioni. Questo set di embedding basato su testo è rappresentativo dei casi d'uso comuni di RAG ed è adatto per i benchmark di ricerca di similarità.
- Metrica: Ci siamo concentrati sulla latenza media della query (in millisecondi) per una ricerca del vicino più prossimo. Una latenza inferiore indica prestazioni di ricerca più veloci.
Per approfondire
Esplora altri parametri di riferimento RAG, come ad esempio:
- Modelli di embedding: OpenAI vs Gemini vs Cohere
- RAG ibrido: miglioramento della precisione del RAG
- Benchmark RAG Agentico: routing multi-database e generazione di query
FAQ
I database vettoriali svolgono un ruolo cruciale nella Retrieval Augmented Generation (RAG) perché i sistemi RAG devono trovare in modo efficiente il contesto più rilevante da fornire ai modelli generativi. Sono specificamente progettati per gestire dati vettoriali, ovvero rappresentazioni numeriche (embedding) derivate da dati non strutturati come documenti di testo tramite un modello di embedding. Ciò consente una potente ricerca di similarità vettoriale.
Anziché limitarsi alla semplice corrispondenza delle parole chiave, eseguono un recupero di vettori semantici basato sul significato, trovando vettori simili anche se la formulazione è diversa. Questo processo è fondamentale per il flusso di lavoro di generazione aumentata per il recupero, migliorando l'accuratezza delle risposte fornendo un contesto migliore da volumi potenzialmente elevati di informazioni, inclusi dati esistenti o nuovi dati acquisiti, gestendo efficacemente vari tipi di dati utilizzati nell'elaborazione del linguaggio naturale e in altre attività di intelligenza artificiale.
Per ottenere una ricerca di similarità vettoriale rapida, necessaria per ricerche scalabili su volumi di dati potenzialmente enormi, è fondamentale affidarsi a metodi di indicizzazione sofisticati come HNSW o IVF. Questi metodi utilizzano algoritmi di Nearest Neighbors Approssimativi (ANN) per trovare rapidamente corrispondenze simili in dati vettoriali ad alta dimensionalità senza dover scansionare l'intero set di dati.
I fattori chiave che influenzano le prestazioni del sistema e la velocità di recupero includono la specifica configurazione dell'indice (che incide sulle dimensioni dell'indice e sul consumo di memoria), le metriche di distanza scelte per misurare la similarità vettoriale e l'efficienza della gestione dell'elaborazione in tempo reale, se necessaria. Le massime prestazioni spesso implicano compromessi tra velocità, precisione e utilizzo delle risorse, rendendo necessari test prestazionali specifici per il carico di lavoro in questione.
La scelta del database vettoriale più adatto implica la valutazione di diverse opzioni, come piattaforme dedicate (molte delle quali basate su database open source, come Qdrant o Weaviate) rispetto a soluzioni integrate. I database vettoriali open source possono offrire maggiore controllo, ridurre potenzialmente la dipendenza da un singolo fornitore e consentire una personalizzazione approfondita, inclusa l'aggiunta di moduli personalizzati. Tuttavia, solitamente richiedono un maggiore impegno operativo.
I servizi gestiti offrono un'integrazione perfetta, si occupano dell'infrastruttura e spesso includono solide misure di sicurezza dei dati, ma potrebbero offrire un controllo meno granulare. Le soluzioni integrate semplificano l'infrastruttura se si utilizza già la piattaforma principale. Valutare funzionalità chiave come le capacità di filtraggio dei metadati, la velocità di sviluppo e la facilità d'uso per le attività di machine learning pertinenti è fondamentale per prendere una decisione economicamente vantaggiosa.
Il filtraggio dei dati consente di limitare la ricerca di similarità vettoriale a un sottoinsieme dei dati vettoriali in base agli attributi associati memorizzati accanto a ciascun punto dati (ad esempio, date, categorie, ID utente). Invece di trovare semplicemente i vettori più simili a livello globale, è possibile richiedere i vettori più simili che corrispondono anche a specifici criteri di metadati . Alcuni database eseguono questo filtraggio prima della ricerca ANN (pre-filtraggio), il che può aumentare notevolmente la velocità di recupero e la pertinenza delle query su grandi volumi di dati rispetto al filtraggio dopo il recupero dei vicini (post-filtraggio). Questa funzionalità è essenziale per la creazione di applicazioni sofisticate in cui è necessario un contesto che vada oltre la similarità vettoriale, con un impatto diretto sull'efficacia del processo di recupero nei sistemi RAG.
La scelta del database vettoriale più adatto richiede di valutare come gestisce i diversi tipi di dati e come si integra con la pipeline di machine learning. Il modello di embedding scelto determina la dimensionalità e le caratteristiche dei dati vettoriali. Il database deve essere in grado di archiviare e indicizzare questi vettori in modo efficiente.
È importante considerare il supporto offerto per la gestione dei dati non strutturati originali insieme ai vettori, la scalabilità per grandi volumi generati dall'IA generativa e le funzionalità per la gestione dell'acquisizione di nuovi dati. Garantire buone pratiche di sicurezza dei dati e comprendere come il database interagisce con l'infrastruttura dati esistente sono inoltre fondamentali per un'implementazione efficace, economicamente vantaggiosa e performante, in grado di supportare attività che vanno dal semplice recupero di vettori a complesse attività di machine learning.
Sii il primo a commentare
Il tuo indirizzo email non verrà pubblicato. Tutti i campi sono obbligatori.