Share via


Open-Source-Vektordatenbanken

GILT FÜR: MongoDB-vCore

Wenn Entwickler Vektordatenbanken auswählen, bieten die Open-Source-Optionen zahlreiche Vorteile. „Open Source“ bedeutet, dass der Quellcode der Software frei verfügbar ist, sodass Benutzer die Datenbank an ihre spezifischen Anforderungen anpassen können. Diese Flexibilität ist von Vorteil für Organisationen, die im Zusammenhang mit Daten spezielle gesetzliche Anforderungen erfüllen müssen (z. B. Finanzdienstleister).

Ein weiterer Vorteil von Open-Source-Vektordatenbanken ist die starke Unterstützung durch die Community. Aktive Benutzercommunitys beteiligen sich häufig an der Entwicklung dieser Datenbanken, bieten Support, teilen bewährte Methoden und treiben so Innovationen voran.

Einige Personen entscheiden sich für Open-Source-Vektordatenbanken, da sie kostenlos sind. Das bedeutet, dass keine Kosten für das Herunterladen und die Nutzung der Software anfallen. Eine Alternative ist die Verwendung der kostenlosen Tarife, die von verwalteten Vektordatenbankdiensten angeboten werden. Diese verwalteten Dienste bieten nicht nur kostenfreien Zugriff bis zu einem bestimmten Nutzungslimit, sondern kümmern sich auch um Wartung, Updates und Skalierbarkeit, was den Betrieb vereinfacht. So können Benutzer durch Nutzung des kostenlosen Tarifs von verwalteten Vektordatenbankdiensten Kosten sparen und gleichzeitig den Verwaltungsaufwand reduzieren. Bei diesem Ansatz können sich Benutzer stärker auf ihre Kernaktivitäten konzentrieren anstatt auf die Datenbankverwaltung.

Arbeitsmechanismus von Vektordatenbanken

Vektordatenbanken sind für die Speicherung und Verwaltung von Vektoreinbettungen konzipiert. Das sind mathematische Darstellungen von Daten in einem hochdimensionalen Raum. In diesem Raum entspricht jede Dimension einem Merkmal der Daten, und zehntausende Dimensionen können verwendet werden, um komplexe Daten darzustellen. Die Position eines Vektors in diesem Raum stellt seine Merkmale dar. Wörter, Ausdrücke oder ganze Dokumente sowie Bilder, Audioinhalte und andere Datentypen können vektorisiert werden. Diese Vektoreinbettungen werden bei der Ähnlichkeitssuche, der multimodalen Suche, Empfehlungs-Engines, großen Sprachenmodellen (LLMs) usw. verwendet.

Die Architektur dieser Datenbanken umfasst in der Regel eine Speicher-Engine und einen Indizierungsmechanismus. Die Speicher-Engine optimiert die Speicherung von Vektordaten für effiziente Abruf- und Bearbeitungsvorgänge, und der Indizierungsmechanismus strukturiert die Daten für schnelle Such- und Abrufvorgänge.

In einer Vektordatenbank werden Einbettungen basierend auf Vektorabstand oder Ähnlichkeit indiziert und über Vektorsuchalgorithmen abgefragt. Ein robuster Mechanismus ist erforderlich, um die relevantesten Daten zu identifizieren. Zu den bekannten Vektorsuchalgorithmen zählen unter anderem Hierarchical Navigable Small World (HNSW) und Inverted File (IVF).

Vektordatenbanken werden in zahlreichen Bereichen und Situationen über analytische und generative KI hinweg verwendet, einschließlich natürlicher Sprachverarbeitung, Video- und Bilderkennung, Empfehlungssystem, Suche usw. Eine Vektordatenbank kann beispielsweise für Folgendes verwendet werden:

  • Identifizieren ähnlicher Bilder, Dokumente und Songs auf der Grundlage von Inhalt, Thema, Stimmung und Stil
  • Identifizieren ähnlicher Produkte basierend auf Merkmalen, Features und Benutzergruppen
  • Empfehlen von Inhalten, Produkten oder Diensten basierend auf den Vorlieben von Einzelpersonen
  • Empfehlen von Inhalten, Produkten oder Diensten basierend auf den Ähnlichkeiten bei Benutzergruppen
  • Identifizieren der besten potenziellen Optionen aus einem großen Pool, um komplexe Anforderungen zu erfüllen
  • Identifizieren von Datenanomalien oder betrügerischen Aktivitäten, die sich von vorherrschenden oder normalen Mustern unterscheiden
  • Implementieren von PMEM für KI-Agents
  • Ermöglichen von Retrieval Augmented Generation (RAG)

Integrierte Vektordatenbank im Vergleich zur reinen Vektordatenbank

Es gibt zwei gängige Typen von Vektordatenbankimplementierungen: reine Vektordatenbank und integrierte Vektordatenbank in einer NoSQL-Datenbank oder einer relationalen Datenbank.

Eine reine Vektordatenbank wurde entwickelt, um Vektoreinbettungen zusammen mit einer kleinen Menge an Metadaten effizient zu speichern und zu verwalten. Sie ist von der Datenquelle getrennt, von der die Einbettungen abgeleitet werden.

Eine Vektordatenbank, die in eine hochleistungsfähige NoSQL-Datenbank oder relationale Datenbank integriert ist, bietet zusätzliche Funktionen. Die integrierte Vektordatenbank in einer NoSQL-Datenbank oder relationalen Datenbank kann zusammen mit den entsprechenden Originaldaten Einbettungen speichern, indizieren und abfragen. So vermeiden Sie zusätzliche Kosten für die Replikation der Daten in einer separaten reinen Vektordatenbank. Außerdem bleiben Ihre Vektoreinbettungen und Ihre Originaldaten zusammen, was multimodale Datenvorgänge erleichtert und eine höhere Datenkonsistenz, Skalierbarkeit und Leistung ermöglicht.

Auswählen der besten Open-Source-Vektordatenbank

Bei der Wahl der besten Open-Source-Vektordatenbank müssen mehrere Faktoren berücksichtigt werden. Leistung und Skalierbarkeit der Datenbank sind entscheidend, da sie sich darauf auswirken, ob die Datenbank Ihre spezifischen Workloadanforderungen bewältigen kann. Datenbanken mit effizienten Indizierungs- und Abfragefunktionen bieten in der Regel eine optimale Leistung. Ein weiterer Faktor sind die Communityunterstützung und die Dokumentation, die für die Datenbank zur Verfügung stehen. Eine robuste Community und eine umfangreiche Dokumentation können wertvolle Unterstützung bieten. Hier sind einige beliebte Open-Source-Vektordatenbanken:

  • Chroma
  • Milvus
  • Qdrant
  • Weaviate

Die beliebteste Option ist aber möglicherweise nicht die beste Option für Sie. Daher sollten Sie verschiedene Optionen basierend auf Features, unterstützten Datentypen und der Kompatibilität mit bereits vorhandenen Tools und von Ihnen verwendeten Frameworks vergleichen. Sie sollten auch die Herausforderungen von Open-Source-Vektordatenbanken (unten) berücksichtigen.

Herausforderungen von Open-Source-Vektordatenbanken

Die meisten Open-Source-Vektordatenbanken, einschließlich der oben aufgeführten, sind reine Vektordatenbanken. Mit anderen Worten, sie sind so konzipiert, dass Vektoreinbettungen nur gespeichert und verwaltet werden, zusammen mit einer kleinen Menge an Metadaten. Da sie unabhängig von der Datenquelle sind, aus der die Einbettungen abgeleitet werden, müssen Ihre Daten zwischen den Dienstintegrationen übertragen werden, was zusätzliche Kosten, Komplexität und Engpässe für Ihre Produktionsworkloads mit sich bringt.

Sie stellen auch die Herausforderungen dar, die für Open-Source-Datenbanken typisch sind:

  • Einrichtung: Benutzer benötigen umfassende Kenntnisse rund um Installation, Konfiguration und Betrieb. Das gilt insbesondere bei komplexen Bereitstellungen. Die Optimierung der Ressourcen und der Konfiguration beim Hochskalieren des Betriebs erfordert eine sorgfältige Überwachung und entsprechende Anpassungen.
  • Wartung: Benutzer müssen sich um ihre eigenen Updates, Patches und Wartungsmaßnahmen kümmern. Daher reicht Fachwissen im ML-Bereich nicht aus. Benutzer benötigen auch umfangreiche Erfahrung mit der Verwaltung von Datenbanken.
  • Support: Verglichen mit verwalteten Diensten ist der offizielle Support ggf. eingeschränkt, und es wird stärker auf Unterstützung durch die Community gesetzt.

Daher verursachen Open-Source-Vektordatenbanken beim Hochskalieren unter Umständen erhebliche Kosten, auch wenn sie zunächst kostenlos sind. Der Ausbau des Betriebs erfordert mehr Hardware, qualifizierte IT-Mitarbeiter und eine komplexere Infrastrukturverwaltung, was höhere Hardware-, Personal- und Betriebskosten zur Folge hat. Die Skalierung von Open-Source-Vektordatenbanken kann trotz nicht vorhandener Lizenzgebühren eine finanzielle Herausforderung darstellen.

Bewältigung der Herausforderungen von Open-Source-Vektordatenbanken

Eine vollständig verwaltete Vektordatenbank, die in eine hochleistungsfähige NoSQL- oder relationale Datenbank integriert ist, vermeidet die zusätzlichen Kosten und die Komplexität von Open-Source-Vektordatenbanken. Eine solche Datenbank speichert, indiziert und fragt Einbettungen neben den entsprechenden Originaldaten ab. So vermeiden Sie zusätzliche Kosten für die Replikation der Daten in einer separaten reinen Vektordatenbank. Außerdem bleiben Ihre Vektoreinbettungen und Ihre Originaldaten zusammen, was multimodale Datenvorgänge erleichtert und eine höhere Datenkonsistenz, Skalierbarkeit und Leistung ermöglicht. Der vollständig verwaltete Dienst hilft Entwicklerinnen und Entwicklern, die Schwierigkeiten bei der Einrichtung und Wartung einer Open-Source-Vektordatenbank zu vermeiden und sich auf die Unterstützung der Community zu verlassen. Darüber hinaus bieten einige verwaltete Vektordatenbank-Services einen lebenslangen Gratistarif an.

Ein Beispiel ist die integrierte Vektordatenbank in Azure Cosmos DB for MongoDB. Dadurch können Entwickler von den gleichen finanziellen Vorteilen profitieren wie bei Open-Source-Vektordatenbanken, während sich der Dienstanbieter um Wartung, Updates und Skalierbarkeit kümmert. Wenn der Betrieb hochskaliert werden muss, kann schnell ein Upgrade durchgeführt werden, ohne dass die Gesamtkosten (Total Cost of Ownership, TCO) explodieren. Dieser Dienst kann auch verwendet werden, um MongoDB-Anwendungen, die bereits in Produktion sind, bequem zu skalieren.

Nächste Schritte