
Definition in einem Satz
Sistema que almacena vectores y permite recuperar elementos próximos según una métrica de similitud.
Was ist eine Vektordatenbank?
Eine Vektordatenbank ist ein System, das Vektoren speichert – also Listen von Zahlen, die Daten repräsentieren – und anhand eines festgelegten Maßes nach den Vektoren sucht, die einem Anfragevektor am nächsten liegen. Sie soll Ähnlichkeitssuchen über numerische Repräsentationen ermöglichen. Ein Anwendungsfall ist etwa, Texte, Produkte oder Bilder zu einer Anfrage abzurufen, die in der Darstellung ähnlich sind.
Die Datenbank arbeitet mit den Vektoren, die sie erhält. Ein Modell oder eine andere Komponente wandelt die ursprünglichen Daten häufig in eine numerische Repräsentation um, die als Embedding bezeichnet wird. Das Erzeugen eines Embeddings und die anschließende Suche sind unterschiedliche Vorgänge: Wenn eine Datenbank Vektoren speichert, heißt das nicht, dass sie diese Repräsentationen selbst erstellt, den Inhalt verstanden oder bestätigt hat, dass zwei Elemente gleichwertig sind.
In einer Anwendung ist ein Vektor meist mit einer ID verknüpft. Zusätzlich können Metadaten wie eine Kategorie oder ein Datum sowie ein Verweis auf das ursprüngliche Objekt gespeichert werden. Der vollständige Inhalt kann im selben System oder an anderer Stelle liegen. Welche Datentypen ein Produkt unterstützt, welche Funktionen es anbietet und wie es sie umsetzt, hängt vom jeweiligen Produkt ab. „Vektordatenbank“ bezeichnet daher keine einzelne, einheitliche Architektur.
Was ein Datensatz enthält und wie eine Anfrage abläuft
Ein Vektordatensatz kann eine ID, den Vektor, Metadaten und einen Verweis auf das zugehörige Objekt enthalten. Für einen Abschnitt aus einer Dokumentation könnten beispielsweise der Vektor, eine Dokument-ID, die Sprache und die Position des Abschnitts gespeichert werden. Der Originaltext kann in der Datenbank selbst liegen oder aus einem anderen Speicher abgerufen werden.
Ein typischer Ablauf umfasst mehrere Schritte. Die Anwendung nimmt die zu indexierenden Daten und übergibt sie an ein Embedding-Modell. Dieses gibt einen Vektor zurück, der zusammen mit einer ID gespeichert wird. Geht später eine Suchanfrage ein, erzeugt die Anwendung oder eine andere Komponente dafür einen kompatiblen Anfragevektor. Anschließend fragt sie die nächstgelegenen Nachbarn anhand des gewählten Maßes ab. Danach kann die Anwendung die zugehörigen Originaldaten laden, Geschäftsregeln anwenden oder die Treffer anzeigen.
Die Kompatibilität der Vektoren ist wichtig. Werden gespeicherte Vektoren und Anfragevektor mit unterschiedlichen Modellen, unvereinbaren Konfigurationen oder nicht zueinander passenden Repräsentationsräumen erzeugt, kann der Vergleich unbrauchbar sein. Eine Datenbank kann eine ungeeignete Repräsentation nicht automatisch korrigieren.
Von den Daten zu den Treffern
- 01Die Daten vorbereiten und mit einem für die Aufgabe geeigneten Modell in ein Embedding umwandeln.
- 02Den Vektor zusammen mit einer ID und bei Bedarf mit Metadaten oder einem Verweis auf das Original speichern.
- 03Die Anfrage in einen kompatiblen Vektor umwandeln und anhand des gewählten Maßes nach Nachbarn suchen.
- 04Die zugehörigen Daten abrufen und die Ergebnisse mit anwendungsspezifischen Regeln und Kriterien bewerten.
Wie wird die Nähe gemessen?
Eine Suche braucht eine Regel, um Vektoren miteinander zu vergleichen. Zu den verbreiteten Maßen zählen Kosinusähnlichkeit, Skalarprodukt und euklidische Distanz. Diese Bezeichnungen sind nicht austauschbar: Die Maße berechnen unterschiedliche Beziehungen, und die Ergebnisse können sich anders ordnen oder interpretieren lassen.
Die Kosinusähnlichkeit vergleicht die Ausrichtung der Vektoren. Die euklidische Distanz misst den Abstand zwischen ihren Punkten. Das Skalarprodukt berücksichtigt die Komponenten der Vektoren und kann von deren Betrag abhängen. Die Wahl sollte nicht bloß aus Gewohnheit erfolgen. Sie muss zum Modell, zur Erzeugung oder Normalisierung der Vektoren und zum Ziel der Anwendung passen.
Prüfe die Konfiguration entlang der gesamten Verarbeitungskette: Welche Maße unterstützt die konkrete Implementierung? Welches Maß verwendet der Index? Und wie werden die Treffer sortiert und angezeigt? Die Bezeichnung „Ähnlichkeit“ bedeutet nicht, dass zwei Produkte denselben Wert berechnen oder dass ein hoher Wert überall dasselbe aussagt.
Orientierung bei der Wahl eines Maßes
Die Tabelle dient der begrifflichen Orientierung. Sie ersetzt weder die Dokumentation des Modells noch die der konkreten Implementierung.
| Maß | Was grundsätzlich verglichen wird | Was zu prüfen ist |
|---|---|---|
| Kosinusähnlichkeit | Die relative Ausrichtung der Vektoren. | Ob Modell und Implementierung für dieses Maß konfiguriert sind und wie die Ergebnisse sortiert werden. |
| Skalarprodukt | Die Summe der Produkte der Komponenten; der Vektorbetrag kann das Ergebnis beeinflussen. | Ob der Einfluss des Vektorbetrags dem erwarteten Verhalten der erzeugten Vektoren entspricht. |
| Euklidische Distanz | Der geometrische Abstand zwischen den Vektoren. | Ob Distanz und Sortierung zum Ziel und zur Konfiguration des Systems passen. |
Exakte Suche und approximative Suche
Bei einer exakten Suche vergleicht das System die Anfrage mit allen Vektoren der betrachteten Menge und gibt die besten Treffer gemäß dem gewählten Maß zurück. Das ist ein klarer Referenzpunkt, um die Ergebnisqualität zu bewerten. Mit wachsender Sammlung kann der nötige Aufwand jedoch zunehmen.
Die approximative Suche nach nächsten Nachbarn wird meist als ANN bezeichnet, kurz für „Approximate Nearest Neighbor“. Sie verwendet Indexstrukturen, um nur einen Teil des Vektorraums zu durchsuchen, statt jeden Vektor vollständig zu vergleichen. Dadurch können Abfragen schneller werden. Dafür ist nicht garantiert, dass immer genau dieselben Nachbarn wie bei einer vollständigen Suche gefunden werden. Wie stark die Annäherung ausfällt und welche Kosten entstehen, hängt unter anderem vom Index, seinen Parametern und der Arbeitslast ab.
HNSW ist ein Beispiel für einen Index zur approximativen Suche, der auf hierarchischen Graphen beruht. HNSW ist weder für jede Vektordatenbank erforderlich noch die einzige Indexierungsart. Die Dokumentation einzelner Systeme kann unterschiedliche Indizes und Kompromisse beschreiben. Allein aus dem Namen eines Index lässt sich daher nicht ableiten, wie schnell eine Anwendung in der Praxis sein wird.
Ein sinnvoller Vergleich führt repräsentative Anfragen sowohl gegen eine exakte Suche als auch gegen den approximativen Index aus. Dabei sollten Abrufqualität und Latenz gemeinsam betrachtet werden. Wer nur die Geschwindigkeit misst, übersieht möglicherweise fehlende Treffer. Wer lediglich die Übereinstimmung mit der exakten Suche misst, weiß noch nicht, ob das System den tatsächlichen Bedarf der Nutzer erfüllt.
Erste Entscheidung: exakt oder approximativ?
| Situation | Zu prüfende Option | Wesentlicher Kompromiss |
|---|---|---|
| Kleine Sammlung oder Bedarf an einem Qualitätsvergleich | Exakte Suche | Vergleicht alle betrachteten Kandidaten; der Aufwand kann mit der Sammlung wachsen. |
| Große Sammlung oder strenge Latenzanforderungen | ANN-Index, etwa HNSW, sofern verfügbar und geeignet | Kann schneller antworten, doch die Treffer können von denen einer exakten Suche abweichen. |
| Anforderungen noch unklar | Beide Optionen mit repräsentativen Daten und Anfragen messen | Vor der Entscheidung müssen ein Qualitätsmaß und ein Latenzziel festgelegt werden. |
Filter und kombinierte Suche
Metadaten beschreiben Eigenschaften eines Datensatzes, die nicht unbedingt im Vektor codiert sind. Ein Filter kann die Suche etwa auf eine Kategorie, eine Sprache, einen Zeitraum oder verfügbare Artikel beschränken. So kann eine Ähnlichkeitssuche – sofern Implementierung und Anwendung diese Kombination unterstützen – auf einer relevanten Teilmenge arbeiten.
Filter können auch das praktische Verhalten einer Anfrage verändern. Schränkt ein Filter die Kandidaten stark ein oder wählt einen sehr spezifischen Teil des Index aus, braucht das System möglicherweise eine andere Strategie, um Treffer abzurufen. Es sollte nicht vorausgesetzt werden, dass alle Produkte Filter zum selben Zeitpunkt, mit denselben Garantien oder mit denselben Auswirkungen auf den Index anwenden.
Eine Anwendung kann die Vektorsuche außerdem mit lexikalischer Suche kombinieren, die nach übereinstimmenden Wörtern sucht, und mit ausdrücklich formulierten Regeln. Das ist nützlich, wenn sowohl begriffliche Ähnlichkeit als auch genaue Begriffe, IDs oder Einschränkungen zählen. Eine hybride Suche ist jedoch keine universelle Funktion: Sie kann spezielle Produktfunktionen oder eine Koordination in der Anwendung selbst erfordern.
Drei Anwendungsbeispiele
Die folgenden Szenarien beschreiben mögliche Einsätze, keine garantierten Ergebnisse. In jedem Fall ruft die Suche anhand von Repräsentationen Kandidaten ab. Ihre Interpretation und Validierung hängen von der Anwendung und ihrem jeweiligen Kontext ab.
blocks
Was eine Vektordatenbank nicht leistet
Eine Vektordatenbank erzeugt nicht notwendigerweise die Embeddings. Diese Aufgabe übernimmt üblicherweise ein Modell oder eine andere Komponente. Die Datenbank speichert und vergleicht die Vektoren, die ihr bereitgestellt werden. Wer beides als einen einzigen Vorgang behandelt, übersieht, dass die Qualität der Suche schon durch das Modell und die Vorbereitung der Daten geprägt wird.
Die Datenbank versteht auch nicht automatisch die Bedeutung einer Anfrage. Sie berechnet Nähe gemäß einem Maß und einer Repräsentation. Ob die gefundenen Elemente für einen Nutzer relevant sind, ob sie die Frage tatsächlich beantworten oder ob sie sachlich korrekt sind, muss gesondert beurteilt werden.
Ebenso wenig ist eine Vektordatenbank ein generatives System, das eigenständig Antworten formuliert. In einem RAG-System kann die Vektorsuche ein Schritt sein, um Kontext abzurufen. Für die Antwortgenerierung und die Zusammenführung der Komponenten sind weitere Teile des Systems zuständig.
Begriffe auseinanderhalten
| Begriff | Wofür er steht | Abgrenzung |
|---|---|---|
| Embedding | Eine numerische Repräsentation, die häufig durch ein Modell erzeugt wird. | Das Erzeugen eines Embeddings ist nicht dasselbe wie das Speichern und Durchsuchen eines Vektors. |
| Vektordatenbank oder Vektorspeicher | Ein System oder eine Komponente, die Vektoren speichert und einen Abruf nach Nähe ermöglichen kann. | Die konkreten Funktionen unterscheiden sich. Ein Vektorspeicher muss nicht dieselben Datenbankfunktionen oder dieselbe Architektur wie ein anderes Produkt haben. |
| Semantische Suche | Ein Suchansatz, der auf Bedeutung oder Ähnlichkeit von Repräsentationen zielt. | Eine Vektorsuche kann dazu beitragen, doch gute semantische Suche hängt auch von Modell, Daten, Anfrage und Ergebnisbewertung ab. |
| Relationale Datenbank mit Vektorunterstützung | Eine relationale Datenbank, die zusätzlich Vektoren speichern oder Ähnlichkeitssuchen unterstützen kann. | Ob sie für einen konkreten Anwendungsfall genügt, muss anhand der verfügbaren Funktionen und der gemessenen Arbeitslast beurteilt werden. |
| RAG | Ein Ansatz, bei dem Informationen abgerufen und für die Verarbeitung oder Generierung einer Antwort genutzt werden. | Eine Vektordatenbank kann eine Abrufkomponente sein, ist aber nicht das gesamte RAG-System. |
Grenzen und Entscheidungskriterien
Die Ergebnisse sind durch die Qualität des Repräsentationsmodells begrenzt. Wenn das Modell für die Aufgabe ungeeignet ist, wichtige Unterschiede nicht abbildet oder relevante Eigenschaften nicht aus den Daten lernt, behebt ein schneller Index dieses Problem nicht. Ebenso kann die Wahl des Distanzmaßes die Rangfolge verändern. Modell, Vektorkonfiguration, Metrik und Ziel der Anwendung sollten daher zusammen betrachtet werden.
Bei ANN stehen Abrufqualität und Antwortzeit in einem Verhältnis zueinander, das je nach Index und Konfiguration unterschiedlich ausfällt. Filter können die Auswahl der Kandidaten verändern, und häufige Einfügungen oder Aktualisierungen können zusätzliche Anforderungen an den Betrieb stellen. Der Speicherbedarf, Berechtigungen und Datenschutz gehören ebenfalls zur Bewertung: Eine passende Ähnlichkeitssuche allein beantwortet diese Fragen nicht.
Auch die Bewertung sollte sich an echten Anfragen orientieren. Ein System kann bei einem Testsatz gut abschneiden und bei den tatsächlichen Anfragen der Nutzer dennoch enttäuschen. Prüfe deshalb, welche Ergebnisse fehlen oder unpassend sind, ob Filter zuverlässig greifen und ob die Latenz unter der erwarteten Last passt. Ein pauschaler Grenzwert für die Größe der Sammlung oder die Leistung entscheidet nicht, wann ein spezialisiertes Produkt nötig ist.
Ein spezialisiertes System ist nicht automatisch erforderlich. Eine allgemeine Datenbank mit Vektorunterstützung kann für einen Anwendungsfall ausreichen; für einen anderen können bestimmte Index-, Skalierungs- oder Betriebsanforderungen ausschlaggebend sein. Die Entscheidung sollte auf Funktionen beruhen, die konkret benötigt und unter repräsentativen Bedingungen gemessen wurden – nicht allein auf der Produktkategorie.
Checkliste für die Auswahl
- 01Klären, welches Problem gelöst werden soll und welche Ergebnisse für die Nutzer tatsächlich relevant sind.
- 02Prüfen, welches Modell die Vektoren erzeugt, wie es konfiguriert ist und ob Anfrage- und gespeicherte Vektoren zusammenpassen.
- 03Metrik, Filter, Index und gegebenenfalls hybride Suche anhand der Dokumentation des konkreten Produkts überprüfen.
- 04Exakte Suche und ANN mit repräsentativen Daten und Anfragen vergleichen und dabei Qualität, Latenz und Ressourcenbedarf gemeinsam betrachten.
- 05Betriebsanforderungen wie Aktualisierungen, Speicher, Zugriffskontrolle und Datenschutz in die Entscheidung einbeziehen.
- 06Eine allgemeine Datenbank mit Vektorunterstützung und spezialisierte Systeme anhand derselben Anforderungen und Messungen vergleichen.
Verwandte Begriffe und technische Prüfung
Für die Einordnung einer Vektordatenbank helfen einige verwandte Konzepte: Ein Embedding ist die numerische Repräsentation, die ein Modell erzeugen kann. Semantische Suche bezeichnet einen Suchansatz, der auf Bedeutung oder Ähnlichkeit zielt. RAG beschreibt einen Ablauf, bei dem abgerufene Informationen zur Verarbeitung oder Antwortgenerierung genutzt werden. Chunking ist das Aufteilen längerer Inhalte in kleinere Abschnitte, die getrennt repräsentiert und abgerufen werden können. Quantisierung ist eine Technik, die Repräsentationen oder Berechnungen kompakter machen kann; Inferenz bezeichnet die Anwendung eines Modells, etwa um einen Vektor zu erzeugen.
Diese Begriffe überschneiden sich in einer Anwendung, bezeichnen aber unterschiedliche Aufgaben. Eine Vektordatenbank kann Vektoren zu gechunkten Dokumenten speichern und Teil eines RAG-Ablaufs sein. Daraus folgt nicht, dass sie selbst das Embedding-Modell, die Aufteilung der Dokumente oder die Antwortgenerierung bereitstellt. Bei jeder konkreten Implementierung sollten Aussagen über Indizes, Maße, Filter und hybride Suche in der jeweiligen technischen Dokumentation überprüft werden.