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:
Weaviate, Elasticsearch und Milvus (Open Source),
Pinecone (proprietär) sowie
Redis (gemischte Lizenzierung).
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:
der euklidische Abstand,
die Kosinus-Ähnlichkeit sowie
das Skalarprodukt.
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).
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,
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.
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.
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;
Optimizing RAG Systems: Embedding Model Comparison ??
— Qdrant (@qdrant_engine) July 31, 2024
Quamer Nasim's new tutorial shows how to build and evaluate RAG pipelines using @LangChainAI , @ollama, @qdrant_engine, and Llama-3. ??
Key points:
? Compares 5 embedding models, including Beijing Academy of Artificial… pic.twitter.com/HWyUB9GsS0
(fm)