Qdrant – Vektor-Datenbank im Test

01.08.2024
Von 
Martin Heller schreibt als freier Autor für die Schwesterpublikation InfoWorld.
Qdrant verspricht viele Vorteile. Wir haben ausprobiert, ob die quelloffene Vektor-Datenbank diese auch in der Praxis realisieren kann.
Ohne Vektor-Datenbank wird Generative AI schwierig. Lesen Sie, ob Qdrant eine lohnende Open-Source-Option in diesem Bereich ist.
Ohne Vektor-Datenbank wird Generative AI schwierig. Lesen Sie, ob Qdrant eine lohnende Open-Source-Option in diesem Bereich ist.
Foto: Roman Samborskyi | shutterstock.com

Falls Sie damit planen, Retrieval Augmented Generation (RAG) im Rahmen ihrer KI-Projekte effizient und erfolgreich einzusetzen, brauchen Sie dazu vor allem eine qualitativ hochwertige Vektorsuche, um Dokumente respektive Daten abzufragen. Inzwischen bieten zwar so gut wie alle großen Datenbanken entsprechende Embedding-Algorithmen oder direkte Optionen für Vector Storage, -Indexing und -Search. Nichtsdestotrotz haben Standalone-Produkte in diesem Bereich weiterhin ihre Daseinsberechtigung - insbesondere mit Blick auf Produktionsanwendungen. Eine solche Lösung ist Qdrant. Sie wirbt nicht nur damit, in Sachen Vektor-Handling am (oberen) Limit zu performen, sondern bringt auch diverse weitere Features mit. Dazu gehören:

  • Advanced One-Stage Filtering,

  • Storage-Optimierung und -Quantisierung,

  • horizontale und vertikale Skalierbarkeit,

  • Payload-basiertes Sharding oder

  • flexible Deployment-Optionen.

Darüber hinaus lässt sich die Lösung auch in diverse, gängige RAG-Frameworks und Large Language Models (LLMs) integrieren und ist wahlweise als Open Source Software oder Cloud-basierter Service verfügbar. Qdrant steht dabei im direkten Wettbewerb mit:

Indirekt konkurriert Qdrant auch mit jeder anderen Datenbank, die Vektorsuchen unterstützt - also auch mit der FAISS Library (für die Suche in Multimedia-Dokumenten) und Chroma (spezialisiert auf KI).

Im Folgenden werfen wir einen Blick auf die grundlegenden Komponenten und Funktionen von Qdrant und Anschließend überprüfen wir, ob die Vektor-Datenbank halten kann, was sie verspricht.

Qdrant erklärt

Wie bereits erwähnt, ist Qdrant im Kern eine Vektor-Datenbank. Grundlegende Informationen zur Funktionsweise und Anwendung dieser Art der Datenbanken lesen Sie mit einem Klick auf den nachfolgenden Button.

[button href="https://www.computerwoche.de/a/warum-vektorisierung-die-basis-fuer-genai-ist,3615597"]Zum Artikel: Vektorisierung - die Basis für GenAI[/button]

Um die Abfrage einer Vektor-Datenbank zu beschleunigen, gibt es diverse Möglichkeiten. Dazu zählt etwa, die Vektoren so weit wie möglich im Speicher zu behalten, effiziente ANN-Algorithmen und Indizes einzusetzen oder die Vektor-Präzision zu verringern (Quantisierung). Dabei kommen häufig spezielle Datenstrukturen und Indizierungstechniken zum Einsatz, beispielsweise Hierarchical Navigable Small World (HNSW). Wichtig sind zudem auch sogenannte Abstandmetriken (Distance Metrics): Auf dieser Grundlage wird bei Similarity- und Semantic-Suchanfragen ermittelt, welche Vektoren am nächsten liegen. Die am häufigsten eingesetzten Distance Metrics werden alle von Qdrant unterstützt:

Weil Vektoren in der Regel eine hohe Dimensionalität aufweisen, ist es diffizil, Abstandsmetriken zu visualisieren.

Wie dem nachfolgenden Schaubild zu entnehmen ist , verknüpft die Qdrant-Architektur Client-Anfragen, Embeddings der gespeicherten Vektoren und Server-seitige Suche. Die Datenpunkte werden in Collections organisiert. Dabei handelt es sich um benannte, durchsuchbare Punkte-Sets. Die Dimensionalität und die metrischen Anforderungen für jeden Punkt in einer solchen Collection müssen übereinstimmen (beides wird definiert, wenn die Collection erstelllt wird).

Qdrant im Überblick: Das Deep-Learning-Modell kommt zu Embedding-Zwecken zum Einsatz und wandelt Daten (in diesem Fall Bilder) in Vektoren um.
Qdrant im Überblick: Das Deep-Learning-Modell kommt zu Embedding-Zwecken zum Einsatz und wandelt Daten (in diesem Fall Bilder) in Vektoren um.
Foto: Qdrant

In Sachen Storage bietet Qdrant zwei Optionen:

  • In Memory: Hierbei werden sämtliche Vektoren im RAM gespeichert. Weil Festplattenzugriff lediglich für die Persistenz erforderlich ist, ermöglicht das eine maximale Geschwindigkeit.

  • Memmap: Diese Storage-Art erstellt einen virtuellen Adressraum, der mit der Datei auf der Festplatte verknüpft ist. Das belegt im Vergleich zu In-Memory-Storage wesentlich weniger Arbeitsspeicher und lässt sich auch für HNSW-Indizes einsetzen.

Qdrant-Integrationen

Qdrant lässt sich in diverse gängige KI-Frameworks und LLMs verschiedener Anbieter integrieren. Dazu gehören unter anderem:

Qdrant Use Cases

Die wichtigsten Anwendungsfälle für Qdrant sind:

  • Retrieval Augmented Generation,

  • Advanced Search,

  • Datenanalysen,

  • Anomalieerkennung sowie

  • Empfehlungssysteme.

Qdrant installieren

Der einfachste Weg, Qdrant lokal zu installieren, führt über Docker:

docker pull qdrant/qdrant

Anschließend müssen Sie es nur noch ausführen mit:

docker run -p 6333:6333 -p 6334:6334 \

-v $(pwd)/qdrant_storage:/qdrant/storage:z \

qdrant/qdrant

Was Programmiersprachen angeht, bietet Qdrant Support für:

Die ersten fünf Sprachen werden von Qdrant direkt unterstützt, die übrigen verwenden Treiber, die von Kontributoren beigesteuert wurden.

Qdrant Cloud

Noch einfach wäre es, das Cloud-Angebot von Qdrant zu nutzen. Sie haben die Möglichkeit, nach Registrierung einen kostenlosen Cluster zu erstellen, den Sie über die grafische Benutzeroberfläche erkunden - und wie einen lokalen Server programmieren können. Gratis dürfen Sie dabei 1 GB RAM und 4 GB Cloud-Speicherplatz nutzen - bei Mehrbedarf hilft eine Kreditkarte. Um die Kosten für Qdrant möglichst gut vorab einschätzen zu können, steht auch ein Preisrechner zur Verfügung.

Qdrant Cloud bietet vollständig gemanagte Cluster in mehreren Regionen von Amazon Web Services, Google Cloud Platform und Azure. Die folgenden Screenshots veranschaulichen diverse Funktionen von Qdrant Cloud.

Um ein Qdrant-Cluster zu erstellen, genügt es, ein simples Web-Formular auszufüllen.
Um ein Qdrant-Cluster zu erstellen, genügt es, ein simples Web-Formular auszufüllen.
Foto: IDG
Die Collections, die wir in unser Qdrant-Cloud-Cluster eingeladen haben, stammen aus Demos, Tutorials oder Beispiel-Datensätzen.
Die Collections, die wir in unser Qdrant-Cloud-Cluster eingeladen haben, stammen aus Demos, Tutorials oder Beispiel-Datensätzen.
Foto: IDG
Die Qdrant Cloud-Konsole ermöglicht Ihnen, Ihre Cluster interaktiv abzufragen.
Die Qdrant Cloud-Konsole ermöglicht Ihnen, Ihre Cluster interaktiv abzufragen.
Foto: IDG
Ein Blick auf die Punkte innerhalb der Collection "mid-styles". Diese enthalten die Links zu Bildern ihrer Payloads. Ähnlichkeitssuchen lassen sich auf Knopfdruck ("Find Similar") anstoßen.
Ein Blick auf die Punkte innerhalb der Collection "mid-styles". Diese enthalten die Links zu Bildern ihrer Payloads. Ähnlichkeitssuchen lassen sich auf Knopfdruck ("Find Similar") anstoßen.
Foto: IDG
Das interaktive Qdrant-Cloud-Tutorial bietet eine Konsole, die bereits mit Code befüllt ist. Ein Klick auf den "Run"-Button führt Sie durch die einzenen Schritte für jeden Block.
Das interaktive Qdrant-Cloud-Tutorial bietet eine Konsole, die bereits mit Code befüllt ist. Ein Klick auf den "Run"-Button führt Sie durch die einzenen Schritte für jeden Block.
Foto: IDG
Die Ergebnisse von Qdrant lassen sich sowohl nach Payload als auch nach Vektorsuche filtern - auch parallel.
Die Ergebnisse von Qdrant lassen sich sowohl nach Payload als auch nach Vektorsuche filtern - auch parallel.
Foto: IDG
Der Status eines Qdrant-Cloud-Clusters ist jederzeit über die Konsole einsehbar.
Der Status eines Qdrant-Cloud-Clusters ist jederzeit über die Konsole einsehbar.
Foto: IDG
Hier erhalten Sie außerdem Einblicke in Requests über den Zeitverlauf sowie deren Latenz.
Hier erhalten Sie außerdem Einblicke in Requests über den Zeitverlauf sowie deren Latenz.
Foto: IDG
Die Punkte innerhalb einer Collection können visualisiert, gefiltert und reduziert dargestellt (wichtig für besonders große Collections) werden.
Die Punkte innerhalb einer Collection können visualisiert, gefiltert und reduziert dargestellt (wichtig für besonders große Collections) werden.
Foto: IDG
Falls Ihr Qdrant-Cloud-Cluster nicht optimal für Ihre Applikation geeignet ist, können Sie es horizontal und/oder vertikal skalieren. Falls das Cluster aus mehr als einem Knoten besteht, geht das auch ganz ohne Downtime.
Falls Ihr Qdrant-Cloud-Cluster nicht optimal für Ihre Applikation geeignet ist, können Sie es horizontal und/oder vertikal skalieren. Falls das Cluster aus mehr als einem Knoten besteht, geht das auch ganz ohne Downtime.
Foto: IDG

Qdrant Hybrid- und Private Cloud

Um in den Genuss des äußerst praktischen Managed Cloud Interfaces zu kommen, müssen Sie Qdrant nicht notwendigerweise in SaaS-Form über die Public Cloud betreiben:

  • Die Vektor-Datenbank läuft auch in Ihrem eigenen Kubernetes-Cluster - lokal oder in der Cloud - und lässt sich anschließend mit dem Management Interface verbinden. Das heißt bei Qdrant Hybrid Cloud.

  • Darüber hinaus können Sie Qdrant auch in Private-Cloud-Konfigurationen betreiben, ebenfalls wahlweise On-Premises oder in der Cloud. Dabei werden Cluster über die eigene Infrastruktur, in der Public Cloud, am Edge oder sogar komplett "air gapped" gemanagt.

Benchmarks zur Vektorsuche

Das Team hinter Qdrant hat eine ganze Reihe von Benchmarks durchgeführt, um die Vektor-Datenbank mit den (quelloffenen) Konkurrenten zu vergleichen. Die Ergebnisse können Sie hier online einsehen.

Qdrant lernen

Um Qdrant zu durchdringen, stehen Ihnen mehrere Wege offen. Zum Beispiel in Form von:

Das ermöglicht Ihnen, sich einen guten Überblick über die Vektor-Datenbank und ihre Funktionen zu verschaffen, ohne direkt eigene Daten einzubetten und hochzuladen.

Ein Beispiel für Retrieval Augmented Generation mit Llamaindex, OpenAI und Qdrant. Letzteres läuft in einem Container innerhalb der StackBlitz-Umgebung, um eine Vektorsuche zu ermöglichen. Das hat wie zu sehen ist, gut funktioniert.
Ein Beispiel für Retrieval Augmented Generation mit Llamaindex, OpenAI und Qdrant. Letzteres läuft in einem Container innerhalb der StackBlitz-Umgebung, um eine Vektorsuche zu ermöglichen. Das hat wie zu sehen ist, gut funktioniert.
Foto: IDG

Testfazit zu Qdrant

Qdrant ist eine gute Wahl wenn es um Vektorsuchen geht - insbesondere, wenn Sie diese in Produktionsumgebungen für Semantci Search oder RAG einsetzen möchten. Dabei punktet die Vektor-Datenbank insbesondere mit ihren flexiblen Deployment-Optionen, dem breiten Support für Programmiersprachen und KI-Frameworks sowie zahlreichen Optimierungsmöglichkeiten.

Pro:

  • effiziente, quelloffene Implementierung von Vektorsuchen für Container und Kubernetes;

  • komfortable SaaS-Implementierung;

  • überzeugende Benchmarks im Vergleich mit Open-Source-Konkurrenzprodukten;

  • zahlreiche Integrationsmöglichkeiten;

  • diverse Optionen, um Applikationen zu optimieren;

Kontra:

  • steile Lernkurve;

  • für Einsteiger möglicherweise zu viele Optionen;

(fm)