Wie bewertet man eine Vektordatenbank?
Dieser Artikel wurde ursprünglich in InfoWorld veröffentlicht und hier mit Genehmigung erneut veröffentlicht.
In der heutigen datengesteuerten Welt ist das exponentielle Wachstum unstrukturierter Daten ein Phänomen, das unsere Aufmerksamkeit erfordert. Der Aufstieg von KI und Large Language Models (LLMs) hat diese Datenexplosion erneut entfacht und unseren Fokus auf eine bahnbrechende Technologie gelenkt: Vektordatenbanken. Als wichtige Infrastruktur im Zeitalter der KI sind Vektordatenbanken leistungsstarke Werkzeuge zum Speichern, Indexieren und Durchsuchen unstrukturierter Daten.
Da die Aufmerksamkeit der Welt fest auf Vektordatenbanken gerichtet ist, stellt sich eine dringende Frage: Wie wählen Sie die richtige für Ihre geschäftlichen Anforderungen aus? Welche Schlüsselfaktoren sollten beim Vergleichen und Bewerten von Vektordatenbanken berücksichtigt werden? Dieser Beitrag wird sich mit diesen Fragen befassen und Einblicke aus den Perspektiven Skalierbarkeit, Funktionalität und Leistung bieten, damit Sie in dieser dynamischen Landschaft fundierte Entscheidungen treffen können.
Was ist eine Vektordatenbank?
Konventionelle relationale Datenbanksysteme verwalten Daten in strukturierten Tabellen mit vordefinierten Formaten und zeichnen sich durch die Ausführung präziser Suchoperationen aus. Im Gegensatz dazu sind Vektordatenbanken auf das Speichern und Abrufen von unstrukturierten Daten wie Bildern, Audio, Videos und Text spezialisiert, und zwar mithilfe hochdimensionaler numerischer Darstellungen, die als Vektoreinbettungen bekannt sind.
Vektordatenbanken sind bekannt für Ähnlichkeitssuchen und verwenden Techniken wie den Approximate Nearest Neighbor (ANN)-Algorithmus. Dieser Algorithmus ordnet Daten nach räumlichen Beziehungen an und identifiziert innerhalb umfangreicher Datensätze schnell den nächstgelegenen Datenpunkt zu einer gegebenen Anfrage.
Entwickler verwenden Vektordatenbanken beim Aufbau von Empfehlungssystemen, Chatbots und Anwendungen zum Suchen ähnlicher Bilder, Videos und Audiodaten. Mit dem Aufstieg von ChatGPT sind Vektordatenbanken nützlich geworden, um die Halluzinationsprobleme großer Sprachmodelle anzugehen.
Vektordatenbanken vs. andere Vektorsuchtechnologien
Für die Vektorsuche stehen neben Vektordatenbanken verschiedene Technologien zur Verfügung. Im Jahr 2017 veröffentlichte Meta FAISS als Open Source und reduzierte damit die mit der Vektorsuche verbundenen Kosten und Hürden erheblich. Im Jahr 2019 stellte Zilliz Milvus vor, eine speziell entwickelte Open-Source-Vektordatenbank, die in der Branche führend ist. Seitdem sind viele weitere Vektordatenbankunternehmen entstanden. Der Trend zu Vektordatenbanken nahm 2022 mit dem Einstieg vieler traditioneller Suchprodukte wie Elasticsearch und Redis sowie der weit verbreiteten Nutzung von LLMs wie ChatGPT Fahrt auf.
Was sind nun ihre Unterschiede, da es so viele Vektorsuchprodukte gibt? Ich kategorisiere sie grob in die folgenden Typen:
Vektorsuchbibliotheken. Sie sind Sammlungen von Algorithmen ohne grundlegende Datenbankfunktionen wie Einfügen, Löschen, Aktualisieren, Abfragen, Datenpersistenz und Skalierbarkeit. FAISS ist ein wichtiges Beispiel.
Leichtgewichtige Vektordatenbanken. Sie basieren auf Vektorsuchbibliotheken, wodurch sie leichtgewichtig in der Bereitstellung sind, jedoch mit schlechter Skalierbarkeit und Leistung. Chroma ist ein solches Beispiel.
Vektorsuch-Plugins. Dies sind Vektorsuch-Erweiterungen, die auf traditionellen Datenbanken beruhen. Ihre Architektur ist jedoch für konventionelle Workloads ausgelegt, was ihre Leistung und Skalierbarkeit negativ beeinflussen kann. Elasticsearch und Pgvector sind wichtige Beispiele.
Zweckgebundene Vektordatenbanken. Diese Datenbanken sind speziell für die Vektorsuche entwickelt und bieten erhebliche Vorteile gegenüber anderen Vektorsuchtechnologien. Beispielsweise bieten dedizierte Vektordatenbanken benutzerfreundlichere Funktionen wie verteiltes Rechnen und Speichern, Notfallwiederherstellung und Datenpersistenz. Milvus ist ein wichtiges Beispiel.
Wie bewertet man eine Vektordatenbank?
Bei der Bewertung einer Vektordatenbank sind Skalierbarkeit, Funktionalität und Leistung die drei wichtigsten Kennzahlen.
Skalierbarkeit
Skalierbarkeit ist entscheidend, um festzustellen, ob eine Vektordatenbank exponentiell wachsende Daten effektiv verarbeiten kann. Bei der Bewertung der Skalierbarkeit müssen wir horizontale/vertikale Skalierbarkeit, Lastverteilung und mehrere Replikationen berücksichtigen.
Horizontale/vertikale Skalierbarkeit
Verschiedene Vektordatenbanken verwenden unterschiedliche Skalierungstechniken, um den Anforderungen des Geschäftswachstums gerecht zu werden. Beispielsweise entscheiden sich Pinecone und Qdrant für vertikale Skalierung, während Milvus horizontale Skalierung einsetzt. Horizontale Skalierbarkeit bietet im Vergleich zur vertikalen Skalierung größere Flexibilität und Leistung bei weniger Obergrenzen.
Lastverteilung
Scheduling ist für ein verteiltes System entscheidend. Seine Geschwindigkeit, Granularität und Präzision beeinflussen direkt das Lastmanagement und die Systemleistung und verringern die Skalierbarkeit, wenn es nicht korrekt optimiert ist.
Unterstützung mehrerer Replikate
Mehrere Replikate ermöglichen differenzierte Antworten auf verschiedene Abfragen und verbessern so die Abfragen pro Sekunde (QPS) und die gesamte Skalierbarkeit des Systems.
Verschiedene Vektordatenbanken richten sich an unterschiedliche Benutzertypen, daher unterscheiden sich ihre Skalierbarkeitsstrategien. Milvus konzentriert sich beispielsweise auf Szenarien mit schnell zunehmenden Datenmengen und verwendet eine horizontal skalierbare Architektur mit Trennung von Speicher und Rechenleistung. Pinecone und Qdrant hingegen sind für Benutzer mit moderatem Datenvolumen und Skalierungsanforderungen konzipiert. LanceDB und Chroma priorisieren hingegen leichtgewichtige Bereitstellungen gegenüber Skalierbarkeit.
Funktionalität
Ich unterteile die Funktionalität von Vektordatenbanken in zwei Hauptkategorien: datenbankorientierte und vektororientierte Funktionen.
Vektororientierte Funktionen
Vektordatenbanken nützen vielen Anwendungsfällen, wie etwa Retrieval Augmented Generation (RAG), Empfehlungssystemen und semantischer Ähnlichkeitssuche unter Verwendung verschiedener Indizes. Daher ist die Fähigkeit, mehrere Indextypen zu unterstützen, ein entscheidender Faktor bei der Bewertung einer Vektordatenbank.
Derzeit unterstützen die meisten Vektordatenbanken HNSW-Indizes (Hierarchical Navigable Small World), wobei einige auch IVF (Inverted File)-Indizes unterstützen. Diese Indizes eignen sich für In-Memory-Operationen und sind am besten für Umgebungen mit reichlich Ressourcen geeignet. Einige Vektordatenbanken wählen jedoch mmap-basierte Lösungen für Situationen mit begrenzten Hardwareressourcen. Während mmap-basierte Lösungen einfacher zu implementieren sind, gehen sie zulasten der Leistung.
Milvus, eine der am längsten bestehenden Vektordatenbanken, unterstützt 11 Indextypen, darunter festplattenbasierte und GPU-basierte Indizes. Dieser Ansatz gewährleistet Anpassungsfähigkeit an eine Vielzahl von Anwendungsszenarien.
Datenbankorientierte Funktionen
Viele Funktionen, die für traditionelle Datenbanken von Vorteil sind, gelten auch für Vektordatenbanken, wie Change Data Capture (CDC), Multi-Tenancy-Unterstützung, Ressourcengruppen und rollenbasierte Zugriffskontrolle (RBAC). Milvus und einige traditionelle Datenbanken, die mit Vektor-Plugins ausgestattet sind, unterstützen diese datenbankorientierten Funktionen effektiv.
Performance
Performance ist die wichtigste Kennzahl zur Bewertung einer Vektordatenbank. Im Gegensatz zu herkömmlichen Datenbanken führen Vektordatenbanken approximative Suchen durch, was bedeutet, dass die abgerufenen Top-k-Ergebnisse keine 100%ige Genauigkeit garantieren können. Daher ist neben traditionellen Kennzahlen wie Queries Per Second (QPS) und Latenz die „Recall Rate“ eine weitere wesentliche Performance-Kennzahl für Vektordatenbanken, die die Abrufgenauigkeit quantifiziert.
Ich empfehle zwei weithin anerkannte Open-Source-Benchmarking-Tools zur Bewertung verschiedener Kennzahlen: ANN-Benchmark und VectorDBBench.
ANN-Benchmark
Vektorindizierung ist ein kritischer und ressourcenintensiver Aspekt einer Vektordatenbank. Ihre Performance wirkt sich direkt auf die gesamte Datenbankperformance aus. ANN-Benchmark ist ein führendes Benchmarking-Tool zur Bewertung der Performance verschiedener Vektorindex-Algorithmen anhand einer Reihe realer Datensätze.
Die folgende Grafik zeigt die Ergebnisse des Tests von Recall/Queries per Second verschiedener Algorithmen auf Basis des GIST1M-Datensatzes (1 Mio. Vektoren mit 960 Dimensionen). Sie trägt die Recall Rate auf der x-Achse gegen QPS auf der y-Achse auf und veranschaulicht die Performance jedes Algorithmus bei unterschiedlichen Stufen der Abrufgenauigkeit.
Laut den in der obigen Grafik dargestellten Ergebnissen erzielten Milvus, Zilliz und HNSW-Bibliotheken die drei besten Ergebnisse bei der Verarbeitung von 1.000.000 Vektoren mit 960 Dimensionen. Weitere Benchmarking-Ergebnisse finden Sie auf der ANN-Benchmark-Website.
VectorDBBench
Obwohl ANN-Benchmark unglaublich nützlich für die Auswahl und den Vergleich verschiedener Vektorsuchalgorithmen ist, bietet es keinen umfassenden Überblick über Vektordatenbanken. Wir müssen auch Faktoren wie Ressourcenverbrauch, Datenladekapazität und Systemstabilität berücksichtigen. Darüber hinaus fehlen ANN-Benchmark viele gängige Szenarien, wie etwa gefilterte Vektorsuche.
VectorDBBench ist ein Open-Source-Benchmarking-Tool, das die oben genannten Einschränkungen adressieren kann und für Open-Source-Vektordatenbanken wie Milvus und Weaviate sowie vollständig verwaltete Dienste wie Zilliz Cloud und Pinecone entwickelt wurde. Da viele vollständig verwaltete Vektorsuchdienste ihre Parameter nicht für die Anpassung durch Benutzer offenlegen, zeigt VectorDBBench QPS und Recall Rates getrennt an.
Die folgenden Diagramme zeigen die Testergebnisse für QPS und die Recall Rate verschiedener gängiger Vektordatenbanken bei der Verarbeitung von 500.000 Vektoren mit 1.536 Dimensionen bzw. 1.000.000 Vektoren mit 768 Dimensionen.
Basierend auf den Ergebnissen in den obigen Diagrammen zeigten speziell entwickelte Vektordatenbanken wie Milvus und Zilliz eine herausragende Leistung sowohl bei QPS als auch bei den Recall-Raten. Diese Ergebnisse deuten darauf hin, dass speziell entwickelte Vektordatenbanken riesige Datenmengen schnell verarbeiten und präzisere Ergebnisse abrufen können. Im Gegensatz dazu zeigten auf traditionellen Datenbanken basierende Vektorsuche-Add-ons eine schwächere Leistung.
Weitere Benchmarking-Ergebnisse finden Sie auf der VectorDBBench-Website.
Fazit
Im dynamischen Bereich der Vektordatenbanken weisen zahlreiche Produkte einzigartige Schwerpunkte und Stärken auf. Es gibt keine universell „beste“ Vektordatenbank; die Wahl hängt von Ihren Bedürfnissen ab. Daher ist es entscheidend, die Skalierbarkeit, Funktionalität, Leistung und Kompatibilität einer Vektordatenbank mit Ihren jeweiligen Anwendungsfällen zu bewerten.
Weiterlesen

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).
Milvus/Zilliz + Surveillance: How Vector Databases Transform Multi-Camera Tracking
See how Milvus vector database enhances multi-camera tracking with similarity-based matching for better surveillance in retail, warehouses and transport hubs.

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Enhance legal document analysis with Zilliz Cloud’s Semantic Search and RAG. Improve accuracy, efficiency, and scalability for contracts, case law, and compliance.



