Come valutare un database vettoriale?
Questo articolo è stato originariamente pubblicato su InfoWorld ed è ripubblicato qui con autorizzazione.
Nel mondo odierno guidato dai dati, la crescita esponenziale dei dati non strutturati è un fenomeno che richiede la nostra attenzione. L’ascesa dell’IA e dei Large Language Models (LLM) ha nuovamente acceso questa esplosione di dati, orientando la nostra attenzione verso una tecnologia rivoluzionaria: i database vettoriali. In quanto infrastruttura vitale nell’era dell’IA, i database vettoriali sono strumenti potenti per archiviare, indicizzare e cercare dati non strutturati.
Con l’attenzione del mondo saldamente puntata sui database vettoriali, sorge una domanda pressante: come selezionare quello giusto per le esigenze della tua azienda? Quali sono i fattori chiave da considerare quando si confrontano e si valutano i database vettoriali? Questo post approfondirà queste domande e fornirà spunti dalle prospettive di scalabilità, funzionalità e prestazioni, aiutandoti a prendere decisioni informate in questo panorama dinamico.
Che cos’è un database vettoriale?
I sistemi di database relazionali convenzionali gestiscono i dati in tabelle strutturate con formati predefiniti ed eccellono nell’esecuzione di operazioni di ricerca precise. Al contrario, i database vettoriali sono specializzati nell’archiviazione e nel recupero di dati non strutturati, come immagini, audio, video e testo, attraverso rappresentazioni numeriche ad alta dimensionalità note come embedding vettoriali.
I database vettoriali sono noti per le ricerche di similarità, impiegando tecniche come l’algoritmo Approximate Nearest Neighbor (ANN). Questo algoritmo organizza i dati in base alle relazioni spaziali e identifica rapidamente il punto dati più vicino a una determinata query all’interno di dataset estesi.
Gli sviluppatori utilizzano i database vettoriali nella creazione di sistemi di raccomandazione, chatbot e applicazioni per la ricerca di immagini, video e audio simili. Con l’ascesa di ChatGPT, i database vettoriali sono diventati utili nell’affrontare i problemi di allucinazione dei large language model.
Database vettoriali rispetto ad altre tecnologie di ricerca vettoriale
Sono disponibili varie tecnologie per la ricerca vettoriale oltre ai database vettoriali. Nel 2017, Meta ha reso open-source FAISS, riducendo significativamente i costi e le barriere associati alla ricerca vettoriale. Nel 2019, Zilliz ha introdotto Milvus, un database vettoriale open-source progettato appositamente che guida il settore. Da allora, sono emerse molte altre aziende di database vettoriali. La tendenza dei database vettoriali è decollata nel 2022 con l’ingresso di molti prodotti di ricerca tradizionali come Elasticsearch e Redis e l’uso diffuso di LLM come ChatGPT.
Quali sono le loro differenze ora che esistono così tanti prodotti di ricerca vettoriale? Li classifico approssimativamente nei seguenti tipi:
Librerie di ricerca vettoriale. Sono raccolte di algoritmi senza funzionalità di database di base come inserimento, eliminazione, aggiornamento, query, persistenza dei dati e scalabilità. FAISS è un esempio principale.
Database vettoriali leggeri. Sono costruiti su librerie di ricerca vettoriale, il che li rende leggeri nella distribuzione ma con scarsa scalabilità e prestazioni. Chroma è uno di questi esempi.
Plugin di ricerca vettoriale. Si tratta di componenti aggiuntivi di ricerca vettoriale che si basano su database tradizionali. Tuttavia, la loro architettura è pensata per carichi di lavoro convenzionali, il che può influire negativamente sulle loro prestazioni e scalabilità. Elasticsearch e Pgvector sono esempi principali.
Database vettoriali purpose-built. Questi database sono progettati appositamente per la ricerca vettoriale e offrono vantaggi significativi rispetto ad altre tecnologie di ricerca vettoriale. Ad esempio, i database vettoriali dedicati forniscono funzionalità più intuitive per l’utente come calcolo e archiviazione distribuiti, disaster recovery e persistenza dei dati. Milvus è un esempio principale.
Come valutare un database vettoriale?
Quando si valuta un database vettoriale, scalabilità, funzionalità e prestazioni sono le tre metriche più cruciali.
Scalabilità
La scalabilità è essenziale per determinare se un database vettoriale può gestire efficacemente dati in crescita esponenziale. Quando si valuta la scalabilità, dobbiamo considerare la scalabilità orizzontale/verticale, il bilanciamento del carico e le repliche multiple.
Scalabilità orizzontale/verticale
Diversi database vettoriali impiegano varie tecniche di scalabilità per soddisfare le esigenze di crescita aziendale. Ad esempio, Pinecone e Qdrant optano per la scalabilità verticale, mentre Milvus adotta la scalabilità orizzontale. La scalabilità orizzontale offre maggiore flessibilità e prestazioni rispetto alla scalabilità verticale, con meno limiti superiori.
Bilanciamento del carico
La pianificazione è cruciale per un sistema distribuito. La sua velocità, granularità e precisione influenzano direttamente la gestione del carico e le prestazioni del sistema, riducendo la scalabilità se non correttamente ottimizzate.
Supporto per repliche multiple
Le repliche multiple consentono risposte differenziali a varie query, migliorando le query al secondo (QPS) del sistema e la scalabilità complessiva.
Diversi database vettoriali si rivolgono a diversi tipi di utenti, quindi le loro strategie di scalabilità differiscono. Milvus, ad esempio, si concentra su scenari con volumi di dati in rapido aumento e utilizza un’architettura scalabile orizzontalmente con separazione tra storage e compute. Pinecone e Qdrant, d’altra parte, sono progettati per utenti con volumi di dati e esigenze di scalabilità moderati. Nel frattempo, LanceDB e Chroma danno priorità a distribuzioni leggere rispetto alla scalabilità.
Funzionalità
Classifico la funzionalità dei database vettoriali in due categorie principali: funzionalità orientate al database e funzionalità orientate ai vettori.
Funzionalità orientate ai vettori
I database vettoriali sono utili in molti casi d’uso, come retrieval augmented generation (RAG), sistemi di raccomandazione e ricerca di similarità semantica utilizzando vari indici. Pertanto, la capacità di supportare più tipi di indice è un fattore critico nella valutazione di un database vettoriale.
Attualmente, la maggior parte dei database vettoriali supporta gli indici HNSW (Hierarchical Navigable Small World), con alcuni che supportano anche gli indici IVF (Inverted File). Questi indici sono adatti alle operazioni in memoria e sono più indicati per ambienti con risorse abbondanti. Tuttavia, alcuni database vettoriali scelgono soluzioni basate su mmap per situazioni con risorse hardware limitate. Sebbene più facili da implementare, le soluzioni basate su mmap comportano un costo in termini di prestazioni.
Milvus, uno dei database vettoriali più longevi, supporta 11 tipi di indici, inclusi indici basati su disco e basati su GPU. Questo approccio garantisce adattabilità a un'ampia gamma di scenari applicativi.
Funzionalità orientate ai database
Molte funzionalità utili per i database tradizionali si applicano anche ai database vettoriali, come Change Data Capture (CDC), supporto multi-tenancy, gruppi di risorse e controllo degli accessi basato sui ruoli (RBAC). Milvus e alcuni database tradizionali dotati di plugin vettoriali supportano efficacemente queste funzionalità orientate ai database.
Prestazioni
Le prestazioni sono la metrica più critica per valutare un database vettoriale. A differenza dei database convenzionali, i database vettoriali eseguono ricerche approssimate, il che significa che i primi k risultati recuperati non possono garantire un'accuratezza del 100%. Pertanto, oltre alle metriche tradizionali come Query Per Second (QPS) e Latency, il "tasso di recall" è un'altra metrica essenziale per le prestazioni dei database vettoriali che quantifica l'accuratezza del recupero.
Consiglio due strumenti di benchmarking open-source ampiamente riconosciuti per valutare diverse metriche: ANN-Benchmark e VectorDBBench.
ANN-Benchmark
L'indicizzazione vettoriale è un aspetto critico e ad alta intensità di risorse di un database vettoriale. Le sue prestazioni influiscono direttamente sulle prestazioni complessive del database. ANN-Benchmark è uno strumento di benchmarking leader per valutare le prestazioni di diversi algoritmi di indicizzazione vettoriale su una gamma di dataset reali.
Il grafico qui sotto mostra i risultati dei test di recall/query al secondo di vari algoritmi basati sul dataset GIST1M (1M vettori con 960 dimensioni). Riporta il tasso di recall sull'asse x rispetto al QPS sull'asse y, illustrando le prestazioni di ciascun algoritmo a diversi livelli di accuratezza del recupero.
Secondo i risultati mostrati nel grafico sopra, le librerie Milvus, Zilliz e HNSW hanno ottenuto i tre migliori risultati nell'elaborazione di 1.000.000 di vettori con 960 dimensioni. Per ulteriori risultati di benchmarking, consulta il sito web di ANN-Benchmark.
VectorDBBench
Sebbene ANN-Benchmark sia incredibilmente utile per selezionare e confrontare diversi algoritmi di ricerca vettoriale, non fornisce una panoramica completa dei database vettoriali. Dobbiamo considerare anche fattori come il consumo di risorse, la capacità di caricamento dei dati e la stabilità del sistema. Inoltre, ANN-Benchmark non copre molti scenari comuni, come la ricerca vettoriale filtrata.
VectorDBBench è uno strumento di benchmarking open-source in grado di affrontare le limitazioni sopra menzionate ed è progettato per database vettoriali open-source come Milvus e Weaviate e servizi completamente gestiti come Zilliz Cloud e Pinecone. Poiché molti servizi di ricerca vettoriale completamente gestiti non espongono i propri parametri per la regolazione da parte dell'utente, VectorDBBench mostra separatamente QPS e tassi di recall.
I grafici qui sotto mostrano i risultati dei test per QPS e il tasso di recall di vari database vettoriali mainstream durante l'elaborazione rispettivamente di 500.000 vettori con 1.536 dimensioni e 1.000.000 di vettori con 768 dimensioni.
In base ai risultati nei grafici sopra, i database vettoriali purpose-built come Milvus e Zilliz hanno dimostrato prestazioni eccezionali sia in termini di QPS sia di tassi di recall. Questi risultati indicano che i database vettoriali purpose-built possono elaborare rapidamente enormi quantità di dati e recuperare risultati più precisi. Al contrario, gli add-on di ricerca vettoriale basati su database tradizionali hanno mostrato prestazioni inferiori.
Per ulteriori risultati di benchmarking, consulta il sito web di VectorDBBench.
Conclusione
Nel dinamico ambito dei database vettoriali, numerosi prodotti presentano enfasi e punti di forza unici. Non esiste un database vettoriale "migliore" in assoluto; la scelta dipende dalle tue esigenze. Pertanto, è fondamentale valutare scalabilità, funzionalità, prestazioni e compatibilità di un database vettoriale con i tuoi specifici casi d'uso.
Continua a leggere

We spent 8 years making vector databases faster. Then we stopped.
Rarely queried embeddings still need to stay searchable. See how Vector Lakebase enables on-demand vector search without always-on compute costs.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.



