Want to Become a Sponsor? Contact Us Now!🎉

vector-database
Was ist Qdrant? Der ultimative Leitfaden zum Verständnis dieser Vektor-Suchmaschine

Was ist Qdrant? Der ultimative Leitfaden zum Verständnis dieser Vektor-Suchmaschine

Published on

Sie haben von Vektor-Suchmaschinen gehört, aber haben Sie sich jemals gefragt, was eine davon von den anderen abhebt? Hier kommt Qdrant ins Spiel, ein Gamechanger im Bereich der hochdimensionalen Datensuche. Dieser Artikel soll erklären, was Qdrant ist, wie es funktioniert und warum es wichtig ist.

Ob Sie ein Datenwissenschaftler, ein Entwickler oder einfach nur an den neuesten Entwicklungen in der Suchtechnologie interessiert sind, dieser Leitfaden ist für Sie. Wir werden uns ausführlich mit den technischen Aspekten befassen, sie mit anderen Engines wie Faiss vergleichen und Sie sogar bei Installation und Nutzung anleiten. Also, lasst uns anfangen!

Möchten Sie die neuesten LLM-Nachrichten erfahren? Schauen Sie sich das aktuelle LLM-Leaderboard an!

Was ist Qdrant?

Was ist Qdrant in technischen Begriffen?

Qdrant ist eine Open-Source-Vektor-Suchmaschine, die für den Umgang mit hochdimensionalen Daten entwickelt wurde. Sie verwendet fortschrittliche Algorithmen wie Hierarchical Navigable Small World (HNSW)-Graphen und Product Quantization. Diese Algorithmen machen sie unglaublich effizient bei der Indizierung und Suche von Vektoren, auch bei großen Datensätzen.

  • HNSW-Graphen: Diese werden für eine effiziente Indizierung verwendet. Sie ermöglichen es Qdrant, schnell durch hochdimensionale Daten zu navigieren und relevante Ergebnisse zu finden.

  • Product Quantization: Dies ist eine Technik zur Komprimierung von Vektoren. Sie gewährleistet, dass die Engine nicht nur schnell, sondern auch speichereffizient ist.

Was ist Qdrant in einfachen Worten?

Denken Sie an Qdrant als einen super-intelligenten Organisator für Ihre digitalen Inhalte. Stellen Sie sich vor, Sie haben eine riesige Sammlung von Fotos, Artikeln oder sogar Liedern. Etwas Spezifisches in diesem Haufen zu finden, kann wie die Suche nach der berühmten Nadel im Heuhaufen sein. Qdrant verwendet seine "Intelligenz", um schnell das zu finden, wonach Sie suchen. Es ist wie ein persönlicher Assistent, der Ihre Sammlung genauso gut kennt wie Sie, vielleicht sogar besser!

Was macht Qdrant einzigartig?

  • HNSW-Graphen: Diese Graphen sind eine Form von Datenstruktur, die es Qdrant ermöglicht, hochdimensionale Daten effizient zu indizieren. Sie reduzieren die rechnerische Komplexität und beschleunigen den Suchprozess.

  • Product Quantization: Diese Technik komprimiert die Vektoren in der Datenbank. Es ist wie das Komprimieren einer Datei; der Inhalt ist derselbe, aber er benötigt weniger Platz. Dies ist entscheidend für die Verarbeitung großer Datensätze, ohne dabei an Geschwindigkeit einzubüßen.

  • Semantische Suche: Dies ist die Fähigkeit, den Kontext und die Feinheiten einer Abfrage zu verstehen.

Herkömmliche Suchmaschinen beschränken sich auf schlüsselwortbasierte Suchen. Qdrant hingegen setzt auf semantische Suche. Das bedeutet, dass sie die Bedeutung hinter Ihrer Abfrage versteht, nicht nur die verwendeten Wörter.

Wenn Sie zum Beispiel nach "Apple" suchen, könnte eine schlüsselwortbasierte Suche Ergebnisse im Zusammenhang mit der Frucht und dem Technologieunternehmen liefern. Eine semantische Suche würde den Kontext verstehen und relevantere Ergebnisse liefern.

Qdrant hebt sich in mehreren Punkten ab:

  • Open-Source: Durch die Open-Source-Bereitstellung kann jeder zur Weiterentwicklung beitragen. Dies schafft eine von der Community getriebene Umgebung, die Innovation und Transparenz fördert.

  • Effizienz: Qdrant wurde entwickelt, um schnelle und präzise Suchergebnisse zu liefern. Der Einsatz fortschrittlicher Algorithmen gewährleistet, dass die Engine in Bezug auf Geschwindigkeit und Zuverlässigkeit herausragt.

Qdrant vs. Faiss: Benchmark-Vergleich

Im Bereich der Vektor-Suchmaschinen werden Qdrant und Faiss oft nebeneinander bewertet. Allerdings fehlt es an einem einheitlichen Benchmark, was es schwierig macht, klare Vergleiche anzustellen. Diese Analyse soll eine technische und datengetriebene Perspektive dazu bieten, wie sich Qdrant im Vergleich zu Faiss und anderen Wettbewerbern schlägt.

Die folgende Tabelle zeigt wesentliche Leistungskennzahlen aus einem Benchmark-Test. Der Test wurde auf dem Dataset deep-image-96-angular durchgeführt, wobei jede Engine unterschiedlich konfiguriert war.

EngineSetup-NameDatasetUpload-Zeit (s)Upload + Index-Zeit (s)P95 (s)RPSParallelP99 (s)Latenz (s)PräzisionEngine-Parameter
Qdrantqdrant-rps-m-64-ef-512deep-image-96-angular845.788959.440.0551541.861000.0630.0240.96{"search_params":{"hnsw_ef":64}}
Weaviateweaviate-m-16-ef-128deep-image-96-angular8922.258922.250.35507.331000.410.190.94{"vectorIndexConfig":{"ef":256}}
Milvusmilvus-m-16-ef-128deep-image-96-angular364.462116.900.22339.441000.230.170.97{"params":{"ef":128}}
Elasticelastic-m-16-ef-128deep-image-96-angular5252.686069.671.1195.901001.670.920.97{"num_candidates":128}

Erklärung der Parameter:

  1. Upload-Zeit: Qdrant hat eine moderate Upload-Zeit von 845,78 Sekunden, was schneller als bei Weaviate, aber langsamer als bei Milvus ist.

  2. Indexierungszeit: Die Gesamtzeit für Upload und Indizierung in Qdrant beträgt 8959,44 Sekunden, was bei den getesteten Engines am längsten dauert.

  3. Latenz: Qdrant glänzt mit einer Latenz von nur 0,024 Sekunden und übertrifft damit deutlich alle anderen Engines.

  4. Requests Pro Sekunde (RPS): Qdrant führt mit einem RPS von 1541,86, was auf eine höhere Durchsatzrate hinweist.

  5. Genauigkeit: Qdrant und Milvus haben beide hohe Präzisionswerte, wobei Qdrant bei 0,96 und Milvus bei 0,97 liegt.

  6. P95- und P99-Latenzen: Qdrant hat die niedrigsten P95- und P99-Latenzen, was auf eine bessere Leistungsstabilität hinweist.

Technische Erkenntnisse aus den Daten:

  • Qdrant verwendet einen HNSW-Graph (Hierarchical Navigable Small World) mit einem hnsw_ef-Parameter, der auf 64 eingestellt ist und die Suche optimiert.

  • Weaviate verwendet einen anderen ef-Parameter, der auf 256 eingestellt ist, was möglicherweise zu höheren Latenzzeiten und einer niedrigeren Anzahl von Anfragen pro Sekunde (RPS) führt.

  • Milvus verwendet ebenfalls einen ef-Parameter, der auf 128 eingestellt ist, erreicht jedoch einen höheren Präzisionswert von 0,97.

Basierend auf den Daten zeigt Qdrant eine starke Leistung in Bezug auf Latenz und Durchsatz (RPS), obwohl es länger dauert, um Daten hochzuladen und zu indexieren. Sein hoher Präzisionswert macht es auch zu einer zuverlässigen Wahl für Similarity-Search-Aufgaben.

Wie man Qdrant installiert: Ein umfassender Leitfaden

Qdrant mit Docker installieren

Docker ist eine beliebte Plattform für die Containerisierung und eine der einfachsten Möglichkeiten, Qdrant zu installieren und auszuführen. Hier ist eine schrittweise Anleitung:

  1. Docker installieren: Wenn Docker noch nicht auf Ihrem Computer installiert ist, laden Sie es von der offiziellen Website herunter und installieren Sie es.

  2. Qdrant-Image herunterladen: Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus, um das neueste Qdrant-Image von Docker Hub herunterzuladen.

docker pull qdrant/qdrant
  1. Qdrant-Container ausführen: Um einen neuen Container basierend auf dem heruntergeladenen Image zu starten, führen Sie folgenden Befehl aus:
docker run -p 6333:6333 qdrant/qdrant
  1. Installation überprüfen: Um sicherzustellen, dass Qdrant läuft, öffnen Sie ein neues Terminal und führen Sie Folgendes aus:
curl http://localhost:6333

Wenn Sie eine JSON-Antwort erhalten, war die Installation von Qdrant erfolgreich.

Qdrant in der Cloud installieren

Qdrant Cloud bietet einen verwalteten Service für diejenigen, die sich nicht um die Infrastruktur kümmern möchten. So können Sie loslegen:

  1. Registrieren: Besuchen Sie die Qdrant Cloud-Website und erstellen Sie ein Konto.

  2. Eine Instanz erstellen: Folgen Sie den Anweisungen auf dem Bildschirm, um eine neue Qdrant-Instanz einzurichten.

  3. API-Schlüssel: Nachdem die Instanz erstellt wurde, werden Ihnen API-Schlüssel und Endpunkte zur Verfügung gestellt. Speichern Sie diese sicher.

  4. Die Instanz testen: Verwenden Sie die API-Schlüssel, um eine Testanfrage zu stellen. Eine erfolgreiche Antwort bedeutet, dass Ihre Cloud-Instanz betriebsbereit ist.

Qdrant mit Python installieren

Für Python-Entwickler bietet Qdrant eine Python-Client-Bibliothek. So installieren Sie sie:

  1. Python und pip installieren: Wenn Python und pip noch nicht installiert sind, laden Sie Python und pip herunter und installieren Sie sie.

  2. Qdrant-Client installieren: Öffnen Sie ein Terminal und führen Sie Folgendes aus:

pip install qdrant-client
  1. Python-Skript: Um mit Qdrant zu interagieren, können Sie den folgenden Beispielcode verwenden:
from qdrant_client import QdrantClient
client = QdrantClient(host='localhost', port=6333)

Qdrant Tutorial: Aufbau eines Frage- und Antwortsystems mit Qdrant

Schritt 1: Variablen initialisieren und Bibliotheken importieren

Bevor Sie den Code eingeben, initialisieren Sie die Variablen und importieren Sie die benötigten Bibliotheken.

import openai
from qdrant_client.http.models import PointStruct
 
points = []
i = 1

Schritt 2: Textabschnitte durchlaufen

Durchlaufen Sie jeden Textabschnitt, um Embeddings zu generieren. Die Textabschnitte sollten zuvor erstellt und in einer Liste namens chunks gespeichert worden sein.

for chunk in chunks:
i += 1

Schritt 3: Embeddings generieren

Rufen Sie innerhalb der Schleife OpenAI's ada002-Modell auf, um für jeden Textabschnitt Embeddings zu erstellen.

response = openai.Embedding.create(
input=chunk,
model="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']

Schritt 4: Embeddings speichern

Nachdem die Embeddings generiert wurden, speichern Sie diese zusammen mit einer ID und dem ursprünglichen Text in einer Liste.

points.append(PointStruct(id=i, vector=embeddings, payload={"text": chunk}))

Warum ada002 verwenden?

Das ada002-Modell ist darauf ausgelegt, die semantischen Nuancen von Texten zu erfassen, was es ideal für Anwendungen wie die semantische Suche oder Q&A-Systeme macht. Es nimmt einen Textabschnitt als Eingabe entgegen und gibt einen numerischen Vektor aus, der die Bedeutung des Textes verkörpert.

Schritt 5: Qdrant-Client initialisieren

Initialisieren Sie zuerst den Qdrant-Client mit dem entsprechenden Host und API-Schlüssel.

from qdrant_client import QdrantClient
 
qdrant_client = QdrantClient(
host="<HOSTNAME>",
api_key="<API_KEY>",
)

Schritt 6: Kollektion erstellen oder neu erstellen

Erstellen Sie in Qdrant eine neue Kollektion, um die Embeddings zu speichern. Wenn die Kollektion bereits existiert, können Sie sie neu erstellen.

qdrant_client.recreate_collection(
collection_name="mycollection",
vectors_config=models.VectorParams(size=1536, distance=models.Distance.COSINE),
)

Schritt 7: Embeddings indizieren

Indizieren Sie nun die Embeddings in der gerade erstellten Kollektion.

operation_info = qdrant_client.upsert(
collection_name="mycollection",
wait=True,
points=points
)

Warum Qdrant für die Indexierung verwenden?

Qdrant bietet einen robusten, produktionsfähigen Service, der speziell für erweiterte Filterunterstützung entwickelt wurde. Seine API ist bequem zum Speichern, Suchen und Verwalten von Punkten, die in diesem Fall die Embeddings sind. Durch das Indizieren der Embeddings in Qdrant können Sie später effiziente Ähnlichkeitssuchen basierend auf Benutzereingaben durchführen.

Fazit

Zusammenfassend zeigt die datengetriebene Analyse, dass Qdrant in wichtigen Leistungskennzahlen wie Latenz, RPS und Präzision herausragt. Obwohl es länger dauern kann, Daten hochzuladen und zu indexieren, erhalten Sie im Gegenzug eine Engine mit hoher Durchsatzrate, geringer Latenz und präzisen Ergebnissen. Diese Eigenschaften machen Qdrant zu einer überzeugenden Wahl für Organisationen, die Suchleistung und Ergebnisgenauigkeit in ihren Anforderungen an eine Vektor-Suchmaschine priorisieren.

Häufig gestellte Fragen (FAQs)

  1. Was zeichnet Qdrant in Bezug auf Latenz und RPS aus? Qdrant verwendet einen optimierten Hierarchical Navigable Small World (HNSW) Graphen für die Suche, was zu niedriger Latenzzeit und hoher RPS beiträgt. Die Engine-Parameter, insbesondere hnsw_ef, der auf 64 gesetzt ist, werden feinabgestimmt, um diese Leistung zu erreichen.

  2. Warum dauert das Hochladen und Indizieren von Daten in Qdrant länger?

Die längere Zeit für das Hochladen und Indizieren von Daten in Qdrant ist ein Kompromiss für die hohe Leistung bei Suchabfragen. Die Engine konzentriert sich auf die Erstellung einer optimierten Indexstruktur, die zwar zeitaufwändig ist, jedoch später schnellere und genauere Suchergebnisse liefert.

  1. Wie vergleicht sich die Genauigkeit von Qdrant mit anderen Engines?

Qdrant hat eine hohe Genauigkeitsbewertung von 0,96, die mit Milvus bei 0,97 vergleichbar ist. Dies deutet darauf hin, dass Qdrant für Ähnlichkeitssuchaufgaben äußerst zuverlässig ist und in den meisten Fällen genaue Ergebnisse liefert.

  1. Ist Qdrant für den Einsatz in groß angelegten Bereitstellungen geeignet?

Aufgrund der hohen RPS und niedrigen Latenzzeit ist Qdrant ideal für groß angelegte Bereitstellungen geeignet, bei denen hohe Durchsatzraten und schnelle Reaktionszeiten entscheidend sind. Organisationen sollten jedoch die längeren Zeiten für das Hochladen und Indizieren bei der Planung ihrer Datenpipeline berücksichtigen.

Möchten Sie die neuesten LLM-Nachrichten erfahren? Schauen Sie sich das neueste LLM-Ranking an!

Anakin AI - The Ultimate No-Code AI App Builder