Qdrant – Vektor-Datenbank im Test

01.08.2024 von Martin Heller
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.
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:

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.
Foto: Qdrant

In Sachen Storage bietet Qdrant zwei Optionen:

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:

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.
Foto: IDG
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.
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.
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.
Foto: IDG
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.
Foto: IDG
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.
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.
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:

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

Kontra:

(fm)