Eine Vektordatenbank ist eine Datenbank, in der Sie Vektoreinbettungen oder numerische Darstellungen unstrukturierter Daten wie Text, Bilder oder Audio speichern, indexieren und abfragen können.
Vektoreinbettungen sind nützliche Darstellungen unstrukturierter Daten, da sie Inhalte so zuordnen, dass semantische Ähnlichkeit durch Entfernung im n-dimensionalen Vektorraum dargestellt wird. So können Sie ganz einfach nach Ähnlichkeiten oder relevanten Inhalten in einer Wissensdatenbank suchen oder ein Element abrufen, das am besten mit einer komplexen, von Nutzern erstellten Suchanfrage übereinstimmt.
Während einige spezialisierte Datenbanken nur Vektoreinbettungen unterstützen, unterstützen andere neben Vektoreinbettungen viele andere Daten- und Abfragetypen. Die Unterstützung einer breiten Palette von Datentypen und Abfragetypen ist entscheidend, um Generative-KI-Anwendungen auf der Grundlage von umfangreichen, realen Daten zu erstellen. Da die Vorteile der semantischen Abfrage mithilfe von Vektoreinbettungen deutlich werden, werden die meisten Datenbanken Vektoren unterstützen. Wir gehen davon aus, dass in Zukunft jede Datenbank eine Vektordatenbank sein wird.
Hier erfahren Sie, wie Sie mit der Vektorsuche von Vertex AI leistungsstarke Gen AI-Anwendungen erstellen können. Die Vektorsuche von Vertex AI basiert auf ScaNN, einer skalierbaren und effizienten Vektorsuchtechnologie, die von Google Research entwickelt wurde. Sie eignet sich daher ideal für die Verarbeitung großer Datasets und die Echtzeitsuche. Weitere Informationen zur Vektorsuche und Einbettungen finden Sie in diesem Video. Lesen Sie außerdem diese Kurzanleitung.
Wie bei anderen Datentypen erfordert die effiziente Abfrage einer großen Menge von Vektoren einen Index – und Vektordatenbanken unterstützen spezialisierte Indizes für Vektoren. Im Gegensatz zu vielen anderen Datentypen (wie Text oder Zahlen), die eine einzelne logische Sortierung haben, haben Vektoren keine natürliche Reihenfolge, die praktischen Anwendungsfällen entspricht. Der häufigste Anwendungsfall ist stattdessen die Abfrage der k-Vektoren, die einem anderen Vektor in Bezug auf einen Entfernungsmesswert wie Punktprodukt, Kosinus-Ähnlichkeit oder euklidische Entfernung am nächsten sind. Diese Art von Abfrage wird als „k (Exact) Nearest Neighbors“ oder „KNN“-Abfrage bezeichnet.
Leider gibt es keine allgemeinen Algorithmen für effiziente KNN-Abfragen – um garantiert zu finden, dass die nächsten Nachbarn k zu einem bestimmten Vektor q gefunden werden, muss die Entfernung zwischen q und jedem anderen Vektor berechnet werden. Es gibt jedoch effiziente Algorithmen, um die k Approximate Nearest Neighbors (ANN) zu finden. Bei diesen ANN-Algorithmen wird eine gewisse Genauigkeit abgeschwächt (insbesondere die Trefferquote; möglicherweise lässt der Algorithmus einige der tatsächlichen nächsten Nachbarn aus), um die Geschwindigkeit erheblich zu verbessern. Da die Berechnung von Vektoreinbettungen in vielen Anwendungsfällen bereits als etwas ungenau eingestuft wird, können sie im Gegenzug für erhebliche Leistungssteigerungen oft mit einem gewissen Trefferquotenverlust rechnen.
Um ANN-Abfragen für Vektoren basierend auf der Entfernung von einem anderen Vektor zu ermöglichen, ist ein Vektorindex so strukturiert, dass Cluster benachbarter Vektoren in der Regel gruppiert werden. Gängige Vektorindextypen können als eine Reihe von Listen strukturiert werden, in denen jede Liste die Vektoren in einem bestimmten Cluster darstellt; ein Graph, in dem jeder Vektor mit mehreren der nächsten Nachbarn verbunden ist; Strukturen, bei denen die Zweige den Teilmengen des Clusters des übergeordneten Knotens entsprechen; und vieles mehr. Jeder Indextyp bietet Kompromisse zwischen Suchgeschwindigkeit, Trefferquote, Arbeitsspeichernutzung, Indexerstellungszeit und anderen Faktoren.
Die meisten Datenbankabfragen basieren jedoch nicht nur auf semantischer Ähnlichkeit. Zum Beispiel könnte eine nutzende Person nach einem Buch suchen, dessen Beschreibung „eine herzerwärmende Geschichte über ein Kind und einen Hund“ ähnelt, aber sie möchten es auch auf Bücher unter 20 $ beschränken, die im Taschenbuchformat verfügbar sind. Spezielle Vektordatenbanken bieten möglicherweise einige begrenzte zusätzliche Filterfunktionen (manchmal als „Einschränkungen“ bezeichnet), während Datenbanken für allgemeine Zwecke mithilfe von Standardsprachen wie SQL umfassende Prädikate erstellen können, die mit der Reihenfolge von Vektorähnlichkeiten kombiniert werden können, um sehr leistungsstarke, ausdrucksstarke Abfragen zu ermöglichen.
Die Fähigkeit von Vektoreinbettungen, die semantische Bedeutung unstrukturierter Daten darzustellen, kombiniert mit der Fähigkeit von Vektordatenbanken, effizient nach nahe gelegenen Vektoren zu suchen, eröffnet viele wichtige Anwendungsfälle:
Vektordatenbanken sind wichtig, da sie verwendet werden können, um eine Vielzahl von Problemen zu lösen, die nur mit relationalen Prädikaten oder Textsuchtechniken allein schwer oder unmöglich zu lösen sind.
Vektordatenbanken eignen sich gut für Generative-KI-Anwendungen, da sie es einfach machen, kritische Geschäfts- und Anwendungskontexte wie den relevanten Chatverlauf oder geschäftsspezifische unstrukturierte Inhalte abzurufen, um LLMs dabei zu helfen, auf eine komplexe Nutzeranfrage zu reagieren.
Außerdem erleichtern sie die Suche nach Inhalten mit natürlicher Sprache oder die Abfrage anhand von Beispielen.
Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.