Wie Vektor-Datenbanken wirklich funktionieren: Von Embeddings bis hin zu hybriden Suchverfahren
Erklärt, wie Embeddings Bedeutung kodieren, wie Similaritätssuche und -indizierung skaliert sowie wann hybride Suchverfahren und Vektordatenbanken tatsächlich in Unternehmens-KI-Systeme passen.
Es gibt einen Satz, der immer wieder auftaucht, wenn Entwickler erstmals mit GenAI-Systemen arbeiten:
"Ich verstehe, wie SQL-Datenbanken funktionieren. Aber Vektordatenbanken erscheinen mir weiterhin wie eine Black Box."
Das ist eine durchaus nachvollziehbare Haltung.
Eine herkömmliche Datenbank beantwortet Abfragen durch strukturierte Beziehungen:
SELECT * FROM customers WHERE country = 'India';
Eine Vektordatenbank ist dafür konzipiert, eine völlig andere Art von Frage zu beantworten:
"Welche gespeicherten Elemente haben eine Bedeutung, die dieser Abfrage am nächsten kommt?"
Diese Veränderung in der Art der gestellten Fragen liegt der überraschend großen Anzahl an heutigen künstlichen Intelligenz-basierten Anwendungen zugrunde.
RAG-Pipelines, semantische Suche, Empfehlungssysteme, dokumentbasierte Assistenten sowie autonome Agenten stützen sich stark auf diese Fähigkeit.
Am wichtigsten ist nicht die Datenbanktechnologie an sich.
Es geht darum zu verstehen, was ein Vektor tatsächlich kodiert, wie die Nähe zwischen Vektoren gemessen wird und warum es wichtig ist, den richtigen Indexierungsansatz zu wählen.
Was ist eigentlich ein Embedding?
Bedeutung in Zahlen umwandeln
Betrachten wir diesen Satz:
"Employees can work remotely for up to 30 days."
Ein Embedding-Modell wandelt ihn in einen Vektor um:
[0.021, -0.184, 0.731, 0.092, ...]
In der Praxis haben Embeddings Hunderte oder sogar Tausende von Dimensionen.
Fallen Sie nicht in die Falle, einzelne Zahlen als folgendes zu betrachten:
"Dieser bestimmte Wert steht für das Wort Mitarbeiter."
Das ist kein genaues mentales Modell.
Stattdessen ist der Vektor eine erlernte numerische Kodierung der semantischen Eigenschaften des Textes.
Angesichts dessen werden Sätze wie:
"I love my dog."
"My puppy is my favorite companion."
in der Regel mit Vektoren enden, die näher beieinander liegen als eine Kombination wie:
"I love my dog."
"The database connection timed out."
Das ist der zugrunde liegende Mechanismus.
Die Bedeutung wird in etwas umgewandelt, das mathematisch gesucht werden kann.
Eine Embedding-Struktur erzeugen
Die Erstellung eines Embeddings mit einem Modell folgt einem einfachen Muster:
from openai import OpenAI
client = OpenAI()
response = client.embeddings.create(
model="text-embedding-3-small",
input="Employees can work remotely for up to 30 days."
)
vector = response.data[0].embedding
print(len(vector))
print(vector[:5])
Der resultierende Vektor ist nicht für Menschen zum Lesen bestimmt.
Das ist in Ordnung.
Menschen sind nicht die Zielgruppe für die Rohzahlen.
Ziel ist es, diesen Vektor mit anderen Vektoren zu vergleichen.
Ähnlichkeit ist die eigentliche Idee
Im Kern durchsucht eine Vektordatenbank einen mathematischen Raum
Nehmen wir an, Sie haben drei Quelldokumente:
A -> Remote work policy
B -> Travel reimbursement policy
C -> Employee leave policy
Und Ihre Abfrage lautet:
"Can I work from home while travelling abroad?"
Zuerst wird die Abfrage in ein Embedding umgewandelt.
Anschließend wird dieser Abfragevektor mit dem Vektor jedes Dokuments verglichen.
Eine häufig verwendete Ähnlichkeitsmetrik hier ist die Kosinusähnlichkeit:
import numpy as np
def cosine_similarity(a, b):
return np.dot(a, b) / (
np.linalg.norm(a) *
np.linalg.norm(b)
)
Visuell sieht das so aus:
Eine höhere Kosinusähnlichkeitswerte deuten darauf hin, dass zwei Vektoren in eher parallelen Richtungen zeigen.
Wenn Vektoren normalisiert werden, liegt die Kosinusähnlichkeitswerte mathematisch nahe an der Skalarproduktähnlichkeit.
Dieses Überschneiden erklärt, warum beide Begriffe häufig in Diskussionen über Vektor-Suchsysteme vorkommen.
Warum können wir nicht einfach jeden Vektor vergleichen?
Die Skalierung ist es, die den naiven Ansatz zunichte macht
Stellen Sie sich ein Datensatz vor:
1,000 documents
Bei dieser Größe ist der Vergleich der Abfrage mit jedem einzelnen Vektor trivial.
Stellen Sie sich nun vor:
100 million vectors
Ein ausführlicher Vergleich mit jedem Vektor bei dieser Skalierung wird kostspielig.
Genau dieses Problem löst Vektorindexierung ab.
Anstatt jeden Vektor einzeln zu überprüfen, strukturieren annähernde Nachbarnsuch-Techniken den Vektorraum so, dass die Suche nach ähnlichen Vektoren deutlich schneller abläuft.
Eine bekannte Familie solcher Techniken sind die HNSW – Hierarchische, navigierbare kleine Welt-Graphen.
Um von der Vektorsuche zu profitieren, müssen Sie HNSW nicht selbst erstellen.
Was Sie jedoch verstehen müssen, ist der zugrunde liegende Kompromiss:
Ein geringer Verzicht auf die Präzision der exakten Suche bringt Ihnen einen erheblichen Geschwindigkeitsvorteil sowie die Fähigkeit zur Skalierung.
Dieser Kompromiss liegt im Kern der Funktionsweise von Vektordatenbanken.
Was speichert ein Vektorindex eigentlich?
In einer echten Implementierung enthält jede gespeicherte Zeile in der Regel mehr als nur den Embedding:
document = {
"id": "policy-1042",
"title": "Remote Work Policy",
"content": "Employees can work remotely...",
"department": "HR",
"country": "India",
"embedding": vector
}
Diese Details sind sehr wichtig.
Die Einbettung ist kein Ersatz für das vollständige Dokument.
Sie dient als indexfreundliche Darstellung des Dokuments.
Neben dieser müssen Sie weiterhin aufbewahren:
- den ursprünglichen Text, Metadaten, eindeutige Identifikatoren, Details zur Zugriffskontrolle sowie Verweise auf die Quelle
Das wird entscheidend, sobald Sie RAG-Systeme für unternehmenseigene Zwecke entwickeln.
Azure AI Search
Der Schnittpunkt von Vektorsuche und Unternehmenssuche
Azure AI Search bietet neben der traditionellen Schlagwortsuche eine auf Vektoren basierende Suche sowie hybride Kombinationen beider.
Ein vereinfachtes Beispiel für eine Vektorabfrage sieht so aus:
from azure.search.documents.models import VectorizedQuery
vector_query = VectorizedQuery(
vector=query_vector,
k_nearest_neighbors=5,
fields="content_vector"
)
results = search_client.search(
search_text=None,
vector_queries=[vector_query],
select=["title", "content"]
)
Was zurückgegeben wird, ist nicht wie folgt formuliert:
"Hier ist der mathematisch nächstliegende Satz."
Anstelle dessen erhalten Sie eine nach Rang sortierte Sammlung von Dokumenten, die entsprechend der von Ihnen eingestellten Vektor-Suchkonfiguration geordnet sind.
Dort beginnen architektonische Entscheidungen tatsächlich Gewicht zu erlangen.
Warum hybride Suche oft gewinnt
Suchverfahren, die auf Bedeutung und Schlüsselwörtern basieren, überzeugen in unterschiedlichen Situationen
Nehmen wir diese Frage:
"Was besagt die Richtlinie HR-2026-17?"
Für diese Art der Suche funktioniert die Schlüsselwortsuche hervorragend.
Vergleichen wir sie nun mit:
"Kann ein Mitarbeiter vorübergehend aus einem anderen Land arbeiten?"
Hier hat die semantische Suche eindeutig den Vorteil.
Anstatt eine Methode der anderen vorzuziehen:
Keyword OR Vector
können Sie sie kombinieren:
Keyword + Vector => Hybrid Ranking
Azure AI Search ermöglicht es Ihnen, hybride Abfragen auszuführen, die Volltextsuche mit Vektor-Suche verbinden.
Dies eröffnet ein nützliches Muster:
results = search_client.search(
search_text="remote work from another country",
vector_queries=[vector_query],
top=10
)
Die konkrete Einstellung der Rangfolge variiert je nach Anwendungsfall, doch die wichtigste Erkenntnis lautet folgende:
Man sollte nicht jedes Suchproblem ausschließlich mit Embeddings lösen.
Metadatenfilterung ist in Unternehmensumgebungen nicht optional
Stellen Sie sich vor, Ihr Vektorindex enthält Dokumente wie diese:
India HR policies
US HR policies
UK HR policies
Finance policies
Engineering documentation
Dann fragt ein Benutzer:
"Wie hoch ist die Erstattungsgrenze für Reisen nach Indien?"
Die reine Verwendung semantischer Ähnlichkeit könnte Dokumente aus mehreren verschiedenen Regionen gleichzeitig auswählen.
Durch das Hinzufügen von Metadatenfiltern kann man den Suchbereich einengen:
results = search_client.search(
search_text=query,
vector_queries=[vector_query],
filter="country eq 'India'",
top=5
)
Nun kombiniert die Suche zwei Faktoren:
Semantic relevance + Structured filtering
Dies ist ein Grund, warum Dateningenieure oft schnell die Unternehmensversion der Vektorsuche übernehmen.
Es ersetzt nicht das, was Datenbanken bereits gut können.
Anstatt dessen kombiniert es unstrukturierte semantische Suche mit dem vertrauten Denken an strukturierte Daten.
Pinecone, Weaviate und Databricks Vector Search
Unterschiedliche Anbieter, dasselbe zugrundeliegende Konzept
Einige Plattformen, auf die Sie wahrscheinlich stoßen werden:
Pinecone
Eine voll verwaltete Vektordatenbank, die hauptsächlich für skalierbare Vektorsuche entwickelt wurde.
Weaviate
Eine Open-Source-Vektordatenbank, die Vektorsuche, Filterfunktionen sowie eine Reihe zusätzlicher, künstliche Intelligenz ausgerichteter Funktionen bietet.
Databricks Vector Search
Eine Vektorsuchfunktion, die in der Databricks-Plattform integriert ist und besonders dann relevant wird, wenn Ihre Unternehmensdaten bereits in einem Lakehouse gespeichert sind.
Die Schnittstellen sowie die operativen Details unterscheiden sich bei diesen Tools.
Das zugrundeliegende Konzept bleibt jedoch dasselbe:
Betrachten Sie diese Produkte nicht als getrennte Technologien, die man einzeln meistern muss.
Fangen Sie damit an, das Suchmodell selbst zu verstehen.
Sobald Sie das verstanden haben, wird jedes Produkt lediglich zu einer anderen Implementierungsvariante.
Wo Vektor-Datenbanken tatsächlich sinnvoll sind
Eine Vektor-Datenbank ist nicht das richtige Werkzeug für jedes KI-Szenario
Gute Anwendungsbeispiele sind:
Enterprise RAG
Das Auffinden relevanter Richtlinien, Dokumentationen und technischen Kenntnissen.
Semantische Suche
Das Abgleichen auf zugrundeliegenden Konzepten statt auf exakten Schlüsselwörtern.
Empfehlungen
Das Anzeigen von Produkten, Inhalten oder Dokumenten mit ähnlichen Eigenschaften.
Support-Systeme
Das Aufrufen früherer Vorfälle oder Tickets, die dem aktuellen ähneln.
Code-Suche
Das Auffinden von Funktionen oder Codeausschnitten, die semantisch zu einem bestimmten Problem passen.
Dateningenieur-Assistenten
Auswahl der relevanten Dokumente zu Pipelines, Schemata, Runbooks sowie des Incident-Historiens.
Allerdings sollte man für strukturierte Analyseabfragen nicht automatisch auf eine Vektordatenbank zurückgreifen.
Falls die Frage lautet:
"Wie hoch waren die Einnahmen im 2. Quartal?"
und die Antwort sich in einem verwalteten Datenlager befindet, ist SQL in der Regel das geeignetere Werkzeug.
Structured question => SQL
Semantic question => Vector Search
Mixed question => SQL + Vector Search
Allein diese Unterscheidung kann viele architektonische Fehler vermeiden.
Die Unternehmensarchitektur, die ich bevorzuge
Ein gut konzipiertes Abrufsystem ähnelt eher einem Pipeline-System als einem einzelnen Tool.
Die Vektordatenbank ist nur ein Bestandteil dieses Pipelines.
Das ist vermutlich der größte Missverständnis, das korrigiert werden muss.
Eine Vektordatenbank für sich allein macht eine KI-Anwendung nicht intelligenter.
Es bietet eine effiziente Methode, um Informationen auf der Grundlage semantischer Nähe abzurufen.
Die eigentliche Intelligenz entsteht aus allem, was damit verbunden ist:
- die Embedding-Strategie, wie der Inhalt in Blöcke unterteilt wird, die angehängten Metadaten, die Abfragenlogik, die Rangierungsentscheidungen, wie der Kontext zusammengestellt wird, die Bewertungsmethoden sowie das Modell selbst
Das zu merkende Mentalmodell
Falls Sie ein Data Engineer sind, der in die KI-Entwicklung wechselt, sollten Sie nicht mit dem Auswendiglernen von Produktnamen beginnen.
Besser ist es, sich Folgendes zu merken:
Embedding = numerical representation of meaning
Vector Search = find semantically similar representations
Vector Index = make nearest-neighbor search fast
Hybrid Search = semantic + lexical retrieval
Metadata Filter = apply structured constraints
Reranking = improve ordering of retrieved candidates
Sobald diese sechs Konzepte vertraut erscheinen, wirken Tools wie Azure AI Search, Pinecone, Weaviate und Databricks Vector Search nicht mehr wie getrennte Rätsel.
Es handelt sich dabei einfach um unterschiedliche Wege, dieselbe zugrunde liegende Frage zu lösen:
Angesichts einer Abfrage: Wie gelangt man an die nützlichsten Informationen aus einer riesigen Datensammlung?
Deshalb sind Vektordatenbanken letztendlich so wichtig.
Sie sind nicht einfach nur ein weiterer Eintrag in der Kategorie der Datenbanken.
Sie entwickeln sich zu einem der wesentlichen Auswertungsschichten, die moderne KI-Systeme antreiben.
Für Dateningenieure macht das den Erwerb von Kenntnissen über sie lohnenswert – nicht, weil jedes Projekt eine Vektordatenbank erfordert, sondern weil immer mehr KI-Anwendungen eine zuverlässige Methode benötigen, um die richtigen Informationen zu finden, bevor sie die richtige Antwort liefern können.
Zusätzliche Literatur
- Benchmarking von Vektordatenbanken für semantische Suche mit hoher Durchsatzrate — Lernen Sie eine praktische Methode für Node.js und Python zum Benchmarking von Vektordatenbanken unter realistischer Last, um fundierte Entscheidungen bezüglich Architektur und Skalierung zu treffen.
- Erklärung von Vektordatenbanken: Der Motor hinter RAG- und KI-Suchen — Erfahren Sie, wie Vektordatenbanken Text in Embeddings umwandeln, semantische Suche sowie RAG-Pipelines ermöglichen und KI-Anwendungen in der Praxis wie Empfehlungssysteme antreiben.