Was ist eine Vektordatenbank?

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.

Google Cloud bindet diese Funktionen der Enterprise-Klasse direkt in seine verwalteten Dienste ein, darunter AlloyDB for PostgreSQL, Spanner und BigQuery. So können Sie intelligente Anwendungen entwickeln, ohne eine separate Infrastruktur verwalten zu müssen.

Vektordatenbanken: semantische Suche aktivieren

Was sind Vektoreinbettungen?

Vektoreinbettungen sind numerische Darstellungen von Daten, die in der Regel als Arrays von Gleitkommazahlen definiert werden. Sie übersetzen komplexe, unstrukturierte Daten wie Text, Bilder oder Audio in ein Format, das von Machine-Learning-Modellen verarbeitet werden kann.

Durch die Zuordnung dieser Daten zu einem Vektorraum erfassen Einbettungen die semantische Bedeutung. Ähnliche Elemente werden näher beieinander positioniert, während unähnliche Elemente weiter voneinander entfernt sind. Diese räumliche Beziehung hilft Systemen, Verbindungen zwischen Datenpunkten basierend auf Kontext und Bedeutung zu identifizieren, anstatt nur auf Übereinstimmungen mit Schlüsselwörtern.

Weitere unterstützte Datentypen

Während einige spezialisierte Datenbanken nur Vektoreinbettungen unterstützen, unterstützen andere neben Vektoreinbettungen viele verschiedene Daten- und Abfragetypen. Dies ist entscheidend, um Anwendungen für generative KI 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 GenAI-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.

In diesem Video erfahren Sie, wie Sie LLM-basierte Anwendungen mit Einbettungen, Vektorsuche und RAG erstellen.

Wie funktioniert eine Vektordatenbank?

Für die effiziente Abfrage einer großen Menge von Vektoren sind spezielle Indizierungs- und Suchstrategien erforderlich, die sich von herkömmlichen Text- oder Zahlenfeldern unterscheiden. Da Vektoren keine einzelne logische Reihenfolge haben, verwenden Vektordatenbanken die folgenden Mechanismen, um Daten abzurufen:

  • Suche nach dem nächsten Nachbarn (KNN): Der häufigste Anwendungsfall ist die Identifizierung der „k“ Vektoren, die einem Abfragevektor am nächsten sind. Dabei werden Distanzmesswerte wie Punktprodukt, Kosinus-Ähnlichkeit oder euklidische Entfernung verwendet, um die Nähe im Vektorraum zu messen.
  • Approximate Nearest Neighbors (ANN): Die Berechnung der exakten Entfernung zwischen einem Abfragevektor und jedem anderen Vektor kann rechenintensiv sein. Um diese Kosten zu senken, verwenden Datenbanken ANN-Algorithmen. Diese Algorithmen können die Suchgeschwindigkeit erheblich verbessern, indem sie eine geringe Genauigkeit (Trefferquote) in Kauf nehmen – ein akzeptabler Kompromiss für die meisten Anwendungen der semantischen Suche.
  • Vektorindizierung: Um schnellere Suchvorgänge zu ermöglichen, werden Daten in Vektorindizes so organisiert, dass Cluster von Vektoren, die nahe beieinander liegen, zusammen gruppiert werden. Gängige Strukturen sind Listen (die Vektorcluster darstellen), Graphen (die Vektoren mit Nachbarn verbinden) und Bäume (bei denen Zweige Teilmengen von Clustern darstellen). Jeder Indextyp bietet unterschiedliche Kompromisse in Bezug auf Suchgeschwindigkeit, Arbeitsspeichernutzung und Indexerstellungszeit.
  • Metadatenfilterung: Die meisten Anwendungen erfordern mehr als nur semantische Ähnlichkeit. Beispielsweise könnte eine Person nach einem Buch suchen, das einer „herzerwärmenden Geschichte über einen Fisch“ ähnelt (Vektorsuche), aber die Ergebnisse auf Artikel „unter 20 $“ beschränken (Metadatenfilter). Erweiterte Vektordatenbanken kombinieren diese SQL-Prädikate mit Vektorähnlichkeit, um leistungsstarke Hybridabfragen auszuführen.

Anwendungsfälle für Vektordatenbanken

Vektoreinbettungen erfassen die semantische Bedeutung komplexer Daten. In Kombination mit Vektordatenbanken, die eine effiziente Indizierung und Abfrage ermöglichen, können Entwickler eine Vielzahl intelligenter Anwendungen und Datenverarbeitungstools erstellen.

Entwickler können Vektordatenbanken als externe Wissensdatenbank für Large Language Models (LLMs) verwenden. Durch das Abrufen relevanter, proprietärer Kontextinformationen vor dem Senden eines Prompts an das Modell können Anwendungen Halluzinationen reduzieren und faktisch korrekte, domänenspezifische Antworten liefern. Das ist wichtig für die Entwicklung von KI-gestützten Kundenservicemitarbeitern, Analysetools für Rechtsdokumente und interne Wissensmanagementsysteme.

Vektordatenbanken ermöglichen es Entwicklern, Personalisierungssysteme zu erstellen, die über kollaboratives Filtern hinausgehen. Indem Nutzerverhalten und Produktattribute als Vektoren dargestellt werden, können Anwendungen ähnliche Artikel identifizieren oder Nutzern in Echtzeit Inhalte zuordnen, die ihren Vorlieben entsprechen. Diese Architektur unterstützt Produktvorschläge für E-Commerce, Content-Feeds und Empfehlungen für das Medienstreaming.

Im Gegensatz zur herkömmlichen Stichwortsuche ermöglichen Vektordatenbanken semantische Suchanwendungen, die die Nutzerabsicht verstehen. Entwickler können Suchfunktionen erstellen, die es Nutzern ermöglichen, nach Konzepten statt nach exakten Formulierungen zu suchen. Da Vektoren außerdem verschiedene Datentypen im selben Raum darstellen können, lassen sich multimodale Suchtools erstellen. Nutzer können dann beispielsweise mit Textbeschreibungen nach Bildern suchen oder mit einem Eingabebild ähnliche Dokumente finden.

Vektordatenbanken können dabei helfen, unregelmäßige Muster in riesigen Datasets zu erkennen. Durch die Einrichtung eines Vektorraums, der „normales“ Verhalten oder normale Transaktionen darstellt, können Entwickler programmatisch Ausreißer erkennen, die weit von den etablierten Clustern entfernt sind. Diese Funktion ist entscheidend für die Entwicklung von Systemen zur Erkennung von Finanzbetrug, Tools zur Überwachung der Netzwerksicherheit und Systemdiagnosen für die IT-Infrastruktur.

In Data-Engineering-Workflows können Vektordatenbanken dazu beitragen, unterschiedliche Datasets zu bereinigen und zu vereinheitlichen. Durch den Vergleich von Einbettungen von Kundendatensätzen oder Produktangeboten können Systeme doppelte Einträge erkennen, auch wenn der Text leicht variiert (z. B. „Hauptstr.“ vs. „Hauptstraße“). So können Unternehmen eine einheitliche, korrekte Ansicht ihrer Daten erhalten.

Vektordatenbanken in Google Cloud

AlloyDB for PostgreSQL

AlloyDB for PostgreSQL kombiniert die Kompatibilität von PostgreSQL mit der skalierbaren Infrastruktur von Google. Es bietet integrierten Support für Vektoreinbettungen über die Standarderweiterung pgvector und erweitert diesen mit dem ScaNN-Index von Google. Dies ermöglicht schnellere Vektorabfragen und Inline-Filterung, wodurch hybride Suchen optimiert werden können, indem Vektorähnlichkeit und Metadatenfilter gleichzeitig ausgewertet werden, um eine bessere Leistung zu erzielen.

Beispiel: Hybridsuche nach Immobilien

In einer Immobilien-App wollen Nutzer Häuser nach „Atmosphäre“ suchen (z. B. „Mid-Century Modern mit viel Tageslicht“), während sie gleichzeitig strenge Einschränkungen angeben (z. B. „3 Schlafzimmer“, „unter 800.000 $“, „im Schulbezirk A“).

  • Herausforderung: Eine Standard-Vektorsuche liefert möglicherweise ein Haus aus der Mitte des letzten Jahrhunderts, das 2 Millionen US-Dollar kostet oder im falschen Bezirk liegt. Eine Standard-SQL-Abfrage kann zwar nach Preis filtern, versteht aber nicht, was mit „Mid-Century-Stil“ gemeint ist.
  • Lösung: Die Inline-Filterung von AlloyDB scannt den Vektorindex und prüft die SQL-Metadatenfilter (Preis, Standort) gleichzeitig in einem Durchgang.
  • Ergebnis: Die App gibt in Millisekunden Häuser zurück, die den ästhetischen Vorstellungen und dem Budget entsprechen, ohne dass die Leistung durch das nachträgliche Filtern der Ergebnisse beeinträchtigt wird.

Google Cloud integriert Vektorsuchfunktionen direkt in seine zentralen Datenbankdienste, sodass Sie generative KI mit Ihren vorhandenen Daten und Workflows operationalisieren können.

Spanner

Spanner, die global verteilte Datenbank von Google, unterstützt die Vektorsuche für transaktionale Anwendungen. Sie ermöglicht eine hochverfügbare, skalierbare Vektorsuche mit exakten und ungefähren Algorithmen für die Suche nach dem nächsten Nachbarn. So können globale Anwendungen Funktionen wie Echtzeit-Empfehlungen oder semantische Suche implementieren und gleichzeitig strenge Konsistenz und Zuverlässigkeit beibehalten.

Beispiel: Empfehlungen in Echtzeit im Bereich E-Commerce

Eine globale E-Commerce-Plattform möchte ein Empfehlungssystem entwickeln, das vage Nutzeranfragen wie „beste Wanderschuhe für Regenwetter“ verarbeiten kann und die sofortige Produktverfügbarkeit prüft.

  • Herausforderung: Bei der herkömmlichen Keyword-Suche werden Produkte übersehen, die zwar relevant sind, aber nicht die exakten Suchbegriffe enthalten. So wird beispielsweise eine Beschreibung mit dem Wort „wasserdicht“ möglicherweise nicht mit einer Suche nach „Regen“ abgeglichen. Außerdem führt die Überprüfung der Lagerverfügbarkeit in einer separaten Vektordatenbank zu Latenzzeiten und zu Risiken in Sachen Datenkonsistenz bei hohem Traffic.
  • Lösung: Die Plattform fügt der vorhandenen Spanner-Produkttabelle eine Vektorspalte hinzu und generiert Einbettungen mit Vertex AI über SQL. Sie verwendet die Vektorsuche von Spanner, um eine Hybridabfrage auszuführen, die semantisch ähnliche Produkte findet und gleichzeitig eine strenge Inventurprüfung durchführt (InventoryCount > 0).
  • Ergebnis: Kundinnen und Kunden erhalten präzise, personalisierte Produktempfehlungen, die auf Lager sind und mit der niedrigen Latenz und globalen Konsistenz bereitgestellt werden, die für eine Live-Transaktion erforderlich sind.

BigQuery

Mit BigQuery können Sie Vektoranalysen für riesige Datasets durchführen, ohne Daten aus Ihrem Data Warehouse zu verschieben. Mit der Funktion VECTOR_SEARCH können Sie Ähnlichkeitssuchen mit Standard-SQL ausführen. Das ist besonders nützlich für analytische Anwendungsfälle, etwa um Kunden anhand ihres Verhaltens zu gruppieren oder ähnliche Produkttrends in Milliarden von Datenzeilen zu erkennen.

Beispiel: Erkennung von Cyberbedrohungen in großem Umfang

Ein Sicherheitsteam muss Petabyte an Serverlogs analysieren, um schädliche Aktivitäten zu erkennen. Angreifer modifizieren ihren Code oft leicht, um Suchanfragen mit genau passenden Keywords zu umgehen.

  • Herausforderung: Bei der Suche nach Schlüsselwörtern werden subtile Variationen bekannter Angriffe übersehen (z. B. das Ändern eines Variablennamens in einem schädlichen Script).
  • Lösung: Das Team verwendet BigQuery, um Einbettungen für Milliarden von Logeinträgen zu generieren. Anschließend wird eine VECTOR_SEARCH-Abfrage ausgeführt, um alle Logs zu finden, die einer bekannten Exploit-Signatur semantisch ähnlich sind. So werden neue Varianten des Angriffs identifiziert.
  • Ergebnis: Sie können Zero-Day-Bedrohungen über Jahre hinweg in historischen Daten mit einfachem SQL erkennen und gruppieren, ohne Daten in eine spezielle Vektordatenbank verschieben zu müssen.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.
Sprechen Sie mit einem Google Cloud-Vertriebsexperten, um Ihre besonderen Herausforderungen im Detail zu besprechen.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.

Google Cloud