Was ist eine Vektordatenbank?

In einer Vektordatenbank werden Informationen als Vektoren gespeichert. Vektorendatenbanken bündeln verwandte Objekte und ermöglichen so die Suche nach Ähnlichkeiten und die Erstellung von leistungsstarken KI-Modellen.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Vektoren und Vektordatenbanken erklären
  • Einbettungen verstehen
  • Verwendungszwecke von Vektordatenbanken auflisten

Link zum Artikel kopieren

Was ist eine Vektordatenbank?

Eine Vektordatenbank ist eine Sammlung von Daten, die als mathematische Repräsentationen gespeichert sind. Vektordatenbanken erleichtern es den Modellen für maschinelles Lernen, sich an frühere Eingaben zu erinnern, sodass maschinelles Lernen für die Suche, für Empfehlungen und für die Texterstellung eingesetzt werden kann. Daten können auf der Grundlage von Ähnlichkeitsmetriken anstelle von exakten Übereinstimmungen identifiziert werden, was es einem Computermodell ermöglicht, Daten kontextbezogen zu verstehen.

Beim Besuch eines Schuhgeschäfts kann ein Verkäufer Schuhe vorschlagen, die dem bevorzugten Paar ähnlich sind. Ebenso kann der Shop beim Einkauf in einem E-Commerce-Geschäft ähnliche Artikel unter einem Header wie „Kunden kauften auch ...“ vorschlagen. Vektordatenbanken ermöglichen es maschinellen Lernmodellen, ähnliche Objekte zu identifizieren, so wie der Verkäufer vergleichbare Schuhe finden und der E-Commerce-Shop ähnliche Produkte vorschlagen kann. (In der Tat kann der E-Commerce-Shop ein solches maschinelles Lernmodell dafür verwenden).

Zusammenfassend lässt sich sagen, dass Vektordatenbanken es Computerprogrammen ermöglichen, Vergleiche anzustellen, Beziehungen zu erkennen und Zusammenhänge zu verstehen. Dies ermöglicht die Erstellung von fortschrittlichen Programmen der künstlichen Intelligenz (KI) wie z. B. großen Sprachmodellen (LLMs).

Einbettungen – Dokumente im Vektorraum, die zusammengefasst werden

In dieser einfachen Vektorendatenbank sind die Dokumente in der oberen rechten Ecke wahrscheinlich ähnlich zueinander.

Was ist ein Vektor?

Ein Vektor ist eine Reihe von numerischen Werten, die die Position eines Gleitkommas entlang mehrerer Dimensionen ausdrückt.

In der Alltagssprache ist ein Vektor eine Liste von Zahlen, wie z. B.: {{12, 13, 19, 8, 9}}. Diese Zahlen geben eine Position innerhalb eines Raums an, so wie eine Zeilen- und Spaltennummer eine bestimmte Zelle in einer Tabellenkalkulation angibt (z. B. „B7“).

Wie funktionieren Vektordatenbanken?

Jeder Vektor in einer Vektorendatenbank entspricht einem Objekt oder Element, egal ob es sich dabei um ein Wort, ein Bild, ein Video, einen Film, ein Dokument oder ein anderes Datenelement handelt. Diese Vektoren sind wahrscheinlich lang und komplex und drücken die Position jedes Objekts entlang Dutzender oder sogar Hunderter von Dimensionen aus.

Eine Vektorendatenbank von Filmen kann zum Beispiel Filme entlang von Dimensionen wie Laufzeit, Genre, Erscheinungsjahr, Altersfreigabe, Anzahl der gleichen Schauspieler, Anzahl der gleichen Zuschauer und so weiter lokalisieren. Wenn diese Vektoren genau erstellt werden, ist es wahrscheinlich, dass ähnliche Filme in der Vektorendatenbank in Gruppen gebündelt werden.

Wie werden Vektorendatenbanken verwendet?

  • Ähnlichkeit und semantische Suche: Vektorendatenbanken ermöglichen es Anwendungen, relevante Elemente miteinander zu verbinden. Vektoren, die in einer Gruppe zusammengefasst sind, sind ähnlich und wahrscheinlich zueinander relevant. Dies kann Nutzern bei der Suche nach relevanten Informationen helfen (z. B. bei einer Bildersuche), aber es hilft auch Anwendungen:
    • Ähnliche Produkte zu empfehlen
    • Lieder, Filme oder Serien vorzuschlagen
    • Bilder oder Videos vorzuschlagen
  • Maschinelles Lernen und Deep Learning: Die Fähigkeit, relevante Informationen miteinander zu verknüpfen, ermöglicht die Entwicklung von Modellen für maschinelles Lernen (und Deep Learning), die komplexe kognitive Aufgaben erfüllen können.
  • Große Sprachmodelle (LLMs) und generative KI: LLMs, wie das Modell, auf dem ChatGPT und Bard basieren, stützen sich auf die kontextuelle Analyse von Text, die durch Vektorendatenbanken ermöglicht wird. Indem sie Wörter, Sätze und Ideen miteinander assoziieren, können LLMs die natürliche menschliche Sprache verstehen und sogar Text generieren.

Was sind Einbettungen?

Einbettungen sind Vektoren, die von neuronalen Netzwerken erzeugt werden. Eine typische Vektorendatenbank für ein Deep-Learning-Modell besteht aus Einbettungen. Sobald ein neuronales Netzwerk richtig abgestimmt ist, kann es Einbettungen selbständig erzeugen, sodass diese nicht mehr manuell erstellt werden müssen. Diese Einbettungen können dann, wie oben beschrieben, für die Ähnlichkeitssuche, die Kontextanalyse, die generative KI und so weiter verwendet werden.

Welche Vorteile bietet die Verwendung einer Vektorendatenbank?

Die Abfrage eines maschinellen Lernmodells ist ohne eine Vektorendatenbank weder schnell noch kostengünstig. Modelle für maschinelles Lernen können sich nichts anderes merken als das, worauf sie trainiert wurden. Sie müssen jedes Mal den Kontext angeben (so funktionieren viele einfache Chatbots).

Den Kontext einer Abfrage jedes Mal an das Modell weiterzugeben, ist sehr langsam, da es sich wahrscheinlich um eine Menge Daten handelt – und auch teuer, da die Daten hin- und hergeschoben werden müssen und Rechenleistung aufgewendet werden muss, damit das Modell immer wieder die gleichen Daten parsen kann. Und in der Praxis können die meisten APIs für maschinelles Lernen ohnehin nur eine begrenzte Anzahl von Daten auf einmal verarbeiten.

Hier kommt eine Vektordatenbank ins Spiel: Ein Datensatz durchläuft das Modell nur einmal (oder in regelmäßigen Abständen, wenn er sich ändert), und die Einbettungen des Modells für diese Daten werden in einer Vektordatenbank gespeichert.

Das spart enorm viel Verarbeitungszeit. Es ermöglicht die Entwicklung von Anwendungen für Nutzer, die sich mit semantischer Suche, Klassifizierung und dem Erkennen von Anomalien befassen, da die Ergebnisse innerhalb von zehn Millisekunden zurückkommen, ohne zu warten, bis das Modell den gesamten Datensatz durchforstet hat.

Bei Abfragen fragen die Entwickler das maschinelle Lernmodell nach einer Darstellung (Einbettung) genau dieser Abfrage. Die Einbettung kann dann an die Vektorendatenbank weitergegeben werden und diese kann ähnliche Einbettungen zurückgeben – die bereits durch das Modell gelaufen sind. Diese Einbettungen können dann auf ihren ursprünglichen Inhalt zurückgeführt werden: sei es eine URL für eine Seite, ein Link zu einem Bild oder die Artikelnummern von Produkten.

Zusammengefasst: Vektorendatenbanken funktionieren in großem Maßstab, arbeiten schnell und sind kostengünstiger als die Abfrage von maschinellen Lernmodellen ohne sie.

Bietet Cloudflare die Möglichkeit, Vektordatenbanken zu nutzen?

Vectorize ist eine global verteilte Vektorendatenbank, die von Cloudflare angeboten wird. Anwendungen, die auf Cloudflare Workers aufbauen, können mit Vectorize in Workers KV gespeicherte Dokumente, in R2 gespeicherte Bilder oder in D1 gespeicherte Nutzerprofile abfragen. So wie Workers es Entwicklern ermöglicht, Anwendungen zu erstellen, ohne eine Backend-Infrastruktur aufbauen zu müssen, ermöglicht Vectorize es Entwicklern, KI-Funktionen in ihre Anwendungen einzubauen, ohne eine eigene Infrastruktur für die Vektorendatenbank aufbauen zu müssen. Und für die Erstellung von Einbettungen bietet Cloudflare Workers AI.

Erfahren Sie mehr über die Erstellung von KI-gesteuerten Anwendungen auf Cloudflare.