Getty Images/iStockphoto
KI und Vektorsuche: Ein unschlagbares Team
KI-Anwendungen sind oft vom Einsatz von Vektoren abhängig. Couchbase-Experte Gregor Bauer erklärt, wie wichtig Vektoren sind und wie sie in künstlicher Intelligenz genutzt werden.
Wo klassische Datenbankmodelle an ihre Grenzen kommen, übernimmt die Vektorsuche die Arbeit. Als Hidden Hero (aus dem Englischen: versteckter Held) leistet sie meist im Schatten des globalen KI-Hypes einen wertvollen Beitrag für den Einsatz der neuesten Technologien. Höchste Zeit, Vektoren und fortschrittlichen Datenbanken mehr Zeit im Scheinwerferlicht zu verschaffen.
ChatGPT nach einem Trainingsplan fragen, mit dem Chatbot des Kundensupports kommunizieren oder sogar Cyberangriffe frühzeitig erkennen – die vermeintliche Magie künstlicher Intelligenz scheint keine Grenzen zu kennen. Sprechen wir in diesem Kontext von KI, so meinen wir damit in der Regel Large Language Models (LLMs), also auf der Grundlage riesiger Datenmengen trainierte Anwendungen, die menschliche Sprache verarbeiten und generieren können. Ein Blick unter die Haube zeigt: Wo Nutzer über eine intuitiv gestaltete Oberfläche in natürlicher Sprache ihre Anfragen stellen, herrscht kein Hexenwerk, sondern Technologie und Mathematik. Eine zentrale Rolle spielen dabei Vektoren, die es LLMs ermöglichen, auch extrem große Datenbestände schnell und präzise zu durchsuchen, bei denen relationale oder NoSQL-Datenbanken aufgrund der schieren Masse an Informationen an ihr Limit gelangen.
Bei Vektoren handelt es sich zunächst nur um nüchterne Fließkommazahlen, beispielsweise:
- [0.1, 0.2, 0.3, 04, …] oder
- [357593, 637959, 893734, 637586, …].
Diese Datenstrukturen sind die Grundlage von LLMs, die auf diese Weise alle gesammelten Daten speichern. Generiert werden die Vektoren von Embedding-Modulen aus strukturierten und unstrukturierten Daten. Im Grunde ist ein Vektor also nichts weiter als ein mehrdimensionales Array, das einen Teil der Daten zusammenfasst, die ein maschineller Lernprozess zuvor analysiert hat.
So könnte 0.1 etwa dem Wort „SQL“ zugeordnet sein, das das LLM gemeinsam mit verwandten Begriffen wie „Datenbank“ oder „Programmiersprache“ in relativer Nähe zueinander abspeichert. Anfragen wie „Was ist SQL?“ verwandelt das Modell zunächst ebenfalls in Vektoren und vergleicht sie mit den Embeddings seines gesamten Clusters. Dafür greifen LLMs auf das mathematische Konzept des Nearest Neighbour zurück, um die statistisch nächstgelegenen Datenpunkte mit Hilfe von Algorithmen in einem mehrdimensionalen Raum zu definieren. Dieser Prozess ist nicht nur extrem schnell und effizient, sondern ermöglicht auch erst die semantische Suche, also das Auffinden von Informationen, die auf der Sinnebene zueinander in Verbindung stehen. In unserem Beispiel könnte das Modell auf die Query „Was ist SQL?“ auf diese Weise die statistisch relevantesten Informationen abrufen und eine passende Definition liefern. Es scheint daher so, als könnten LLMs semantische Zusammenhänge verstehen und mit den Nutzern in natürlicher Sprache kommunizieren.
Die Grenzen der klassischen Datenbanken
Anhand der Funktionsweise einer Vektorsuche zeigt sich bereits, warum die Technologie für den Einsatz bei LLMs und riesigen Datenmengen besser geeignet ist als herkömmliche Suchanfragen. Sollten relationale- oder NoSQL-Vertreter mehrere tausend Dimensionen mit Milliarden an Vektoren durchsuchen, wäre an Effizienz nicht mehr zu denken. Bei Suchanfrage müssten sie jedes Mal aufs Neue den gesamten Storage durchsuchen und wären auf riesige Indexe mit den entsprechenden Keywords angewiesen. Die Geschwindigkeit und Präzision ist allerdings auch dann nicht annähernd mit den Ergebnissen einer Vektorsuche vergleichbar – von semantischer Suche könnte ebenfalls keine Rede sein. Auch wenn klassische Datenbanken orthographische Ähnlichkeiten wie „Blume“, „Blumen“ oder „Blumenstrauß“ noch verstehen, erreichen sie hier ihr Limit. Eine Vektorsuche kommt im Gegensatz dazu ohne Anfragen mit passenden Indexen aus, vielmehr übernimmt die Engine selbst diese Aufgabe und weiß bereits, wo sie suchen muss. Bei der individuellen Konfiguration der Modelle sind darüber hinaus auch Einstellungen möglich, die den Fokus des LLM entweder auf eine höhere Präzision der Ergebnisse oder die Geschwindigkeit legen – je nach den speziellen Anforderungen und Einsatzgebieten.
„Alleine die Überlegung, die gleiche Anzahl an Informationen in Tabellen oder JSON-Dokumenten zu speichern, zeigt, wie sehr LLMs auf den Einsatz von Vektoren und der Vektorsuche angewiesen sind. Dabei muss es sich nicht zwangsläufig um reine Vektordatenbanken handeln, vielmehr bieten leistungsstarke Datenbankplattformen die Technologie als integrierte Leistung an.“
Gregor Bauer, Couchbase
Neben der unerreichten Geschwindigkeit und der semantischen Suche komplettiert die einfache Skalierung das Dreigespann von Vorteilen der Vektorsuche. Die Anzahl der zu durchsuchenden Daten ist nahezu unbegrenzt, informationshungrige LLMs unterliegen nahezu keinen Limitierungen nach oben – so wurden ChatGPT und Co. beispielsweise auf großen Teilen des Internets und zusätzliche Quellen wie Büchern, Videos und wissenschaftliche Arbeiten trainiert. Alleine die Überlegung, die gleiche Anzahl an Informationen in Tabellen oder JSON-Dokumenten zu speichern, zeigt, wie sehr LLMs auf den Einsatz von Vektoren und der Vektorsuche angewiesen sind. Dabei muss es sich nicht zwangsläufig um reine Vektordatenbanken handeln, vielmehr bieten leistungsstarke Datenbankplattformen die Technologie als integrierte Leistung an.
Hohe Qualität – hohe Quantität
Trotz der fortschrittlichen Suchfunktionen kennt jeder LLM-Nutzer das Problem: Das Modell beantwortet zwar die Anfrage – allerdings mehr oder weniger offensichtlich falsch. Solche Halluzinationen entstehen, wenn ein Datenpunkt über zu wenige oder falsche Nearest Neighbours verfügt. Den statistischen Berechnungen des LLM nach stimmen die Antworten dennoch, schließlich analysiert es lediglich die ihm zu Verfügung gestellten Informationen. Das Fundament eines jeden einzelnen Modells stellt daher eine qualitativ hochwertige Datenmenge dar, schließlich gilt auch hier: Garbage in, Garbage out. Daneben steigt und fällt ein LLM allerdings auch gleichzeitig mit der Anzahl der verfügbaren Daten. Je mehr, desto besser – ohne Abstriche bei der Qualität. Je genauer ein Modell über den Fragesteller und das Problem weiß, desto genauer kann es die Antwort formulieren. Das Prompting, also das Formulieren von Anfragen, ist daher ebenfalls ein essentieller Bestandteil der Arbeit mit LLMs und erleichtert den Anwendungen eine sinnvolle Kontextualisierung.
Über den Autor:
Gregor Bauer ist Manager Solutions Engineering CEUR bei Couchbase.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.