Zum Inhalt

Was sind Vektordatenbanken?#

Vektordatenbanken speichern Informationen als Zahlen:

Eine Vektordatenbank ist eine Art von Datenbank, die Daten als hochdimensionale Vektoren speichert, die mathematische Darstellungen von Merkmalen oder Attributen sind. (Quelle)

Dies ermöglicht schnelle und genaue Ähnlichkeitssuchen. Mit einer Vektordatenbank können Sie, anstatt herkömmliche Datenbankabfragen zu verwenden, nach relevanten Daten basierend auf semantischer und kontextueller Bedeutung suchen.

Ein vereinfachtes Beispiel#

Eine Vektordatenbank könnte den Satz "Localmind Automate ist ein Automatisierungstool, das sehr hilfreich ist" speichern, aber anstatt ihn als Text zu speichern, speichert die Vektordatenbank ein Array von Dimensionen (Zahlen zwischen 0 und 1), die seine Merkmale darstellen. Dies bedeutet nicht, dass jeder Buchstabe im Satz in eine Zahl umgewandelt wird. Stattdessen beschreiben die Vektoren in der Vektordatenbank den Satz.

Angenommen, in einem Vektorspeicher steht 0.1 für Localmind Automate, 0.2 für Automatisierungstool und 0.3 für sehr hilfreich ist. Sie könnten die folgenden Vektoren erhalten:

Satz Vektor (Array von Dimensionen)
Localmind Automate ist ein Automatisierungstool, das sehr hilfreich ist [0.1, 0.2, 0.3]
Zapier ist ein Automatisierungstool [0.1]
Make ist ein Automatisierungstool [0.1]
Confluence ist ein Wiki-Tool, das Sie selbst hosten können [0.3]

Dieses Beispiel ist sehr vereinfacht

In der Praxis sind Vektoren weitaus komplexer. Ein Vektor kann eine Größe von zehn bis tausend Dimensionen haben. Die Dimensionen haben keine Eins-zu-eins-Beziehung zu einem einzelnen Merkmal, sodass Sie einzelne Dimensionen nicht direkt in einzelne Konzepte übersetzen können. Dieses Beispiel gibt ein ungefähres mentales Modell, kein echtes technisches Verständnis.

Demonstration der Leistungsfähigkeit der Ähnlichkeitssuche#

Qdrant bietet Vektorsuchdemos, um Benutzern zu helfen, die Leistungsfähigkeit von Vektordatenbanken zu verstehen. Die Food-Discovery-Demo zeigt, wie ein Vektorspeicher helfen kann, Bilder basierend auf visuellen Ähnlichkeiten zuzuordnen.

Diese Demo verwendet Daten von Delivery Service. Benutzer können das Foto eines Gerichts mögen oder ablehnen, und die App empfiehlt weitere ähnliche Mahlzeiten basierend auf ihrem Aussehen. Es ist auch möglich, Ergebnisse von Restaurants innerhalb des Lieferradius anzuzeigen. (Quelle)

Vollständige technische Details finden Sie im Qdrant demo-food-discovery GitHub-Repository.

Einbettungen, Retriever, Textaufteiler und Dokumentenladeprogramme#

Vektordatenbanken benötigen andere Tools, um zu funktionieren:

  • Dokumentenladeprogramme und Textaufteiler: Dokumentenladeprogramme ziehen Dokumente und Daten ein und bereiten sie für die Einbettung vor. Dokumentenladeprogramme können Textaufteiler verwenden, um Dokumente in Blöcke zu zerlegen.
  • Einbettungen: Dies sind die Tools, die die Daten (Text, Bilder usw.) in Vektoren und zurück in Rohdaten umwandeln. Beachten Sie, dass Localmind Automate nur Texteinbettungen unterstützt.
  • Retriever: Retriever rufen Dokumente aus Vektordatenbanken ab. Sie müssen sie mit einer Einbettung kombinieren, um die Vektoren zurück in Daten zu übersetzen.