Eine Vektordatenbank ist ein System zum Speichern, Indizieren und Abfragen großer Mengen hochdimensionaler Vektoren, typischerweise Embeddings, die von einem Modell für maschinelles Lernen erzeugt werden, sodass ein Abfragevektor anhand der Distanz mit den nächstgelegenen gespeicherten Vektoren abgeglichen werden kann, anstatt über exakte Stichwort- oder Schlüsselsuchen. Traditionelle relationale und Dokumentdatenbanken basieren auf exakten Übereinstimmungen und Bereichsabfragen über strukturierte Felder; sie sind für die Frage, die eine Vektordatenbank gut beantwortet, nämlich „Welches dieser Millionen Elemente ist diesem hier in der Bedeutung am ähnlichsten?“, nur schlecht geeignet.
Warum sie entstanden sind
Der Bedarf an spezieller Vektorsuche entstand direkt aus dem Aufstieg des Transformers und der darauf aufbauenden großen Sprachmodelle. Als Organisationen begannen, Dokumente, Bilder und andere Inhalte für semantische Suche und retrieval-augmentierte Generierung einzubetten, wurde eine naive Ähnlichkeitssuche, bei der ein Abfragevektor einzeln mit jedem gespeicherten Vektor verglichen wird, ab einigen Zehntausend Elementen rechenintensiv unpraktikabel. Algorithmen für approximative nächste Nachbarn (ANN), insbesondere hierarchische navigierbare Kleine-Welt-Graphen (HNSW) und invertierte Dateiindizes in Kombination mit Produktquantisierung, ermöglichten es, Millionen oder Milliarden von Vektoren in Millisekunden zu durchsuchen, auf Kosten eines kleinen, einstellbaren Verlusts an Genauigkeit bei der Trefferquote.
Speziell entwickelte Vektordatenbanken wie Pinecone, Weaviate, Milvus und Qdrant entstanden in den frühen 2020er-Jahren, um diese ANN-Algorithmen mit den betrieblichen Funktionen zu bündeln, die man von einer Datenbank erwartet: Persistenz, Replikation, Filtern nach Metadaten und horizontale Skalierung. Gleichzeitig fügten etablierte Datenbanken Vektorsuche als Funktion hinzu, anstatt als eigenständiges Produkt, darunter pgvector für PostgreSQL und Vektorindizes in Elasticsearch, Redis und MongoDB, wodurch die Grenze zwischen „Vektordatenbank“ als eigener Kategorie und Vektorsuche als Fähigkeit, die in bestehende Infrastruktur integriert wird, verschwimmt.
Wie sie funktionieren
Ein typischer Arbeitsablauf bettet jedes Element eines Korpus mit einem Einbettungsmodell ein, speichert den resultierenden Vektor zusammen mit einer Kennung und optionalen Metadaten und erstellt einen ANN-Index über die Vektorsammlung. Zur Abfragezeit wird der eingehende Text oder das Bild mit demselben Modell eingebettet, und der Index gibt die k nächsten Vektoren basierend auf einer gewählten Distanzmetrik zurück, am häufigsten Kosinusähnlichkeit, Skalarprodukt oder euklidische Distanz. Viele Systeme unterstützen hybride Suche, die Vektorähnlichkeit mit traditionellem Stichwortfiltern oder Metadateneinschränkungen kombiniert, beispielsweise die Beschränkung von Ergebnissen auf Dokumente aus einem bestimmten Datumsbereich oder einer bestimmten Kategorie.
Rolle in KI-Anwendungen
Vektordatenbanken wurden mit dem Wachstum von retrieval-augmentierter Generierung zu einem zentralen Bestandteil der KI-Infrastruktur, bei der relevante Passagen, die aus einem Vektorindex abgerufen werden, in den Kontextfenster eines LLM eingefügt werden, um dessen Antworten auf bestimmte Dokumente zu stützen und Halluzinationen zu reduzieren. Sie unterstützen auch Empfehlungssysteme, Ähnlichkeitssuche für Bilder und Audio, Deduplizierungspipelines und Anomalieerkennung, überall dort, wo „finde Dinge, die diesem ähnlich sind“ die operative Abfrage ist.
Einschränkungen und Abwägungen
ANN-Suche tauscht eine kleine Menge an Genauigkeit gegen große Geschwindigkeitsvorteile ein, und die Wahl des Indextyps und der Parameter beinhaltet echte Abwägungen zwischen Abfragelatenz, Speicherbedarf und Trefferquote. Die Qualität der Einbettungen begrenzt die Qualität des Abrufs: Eine Vektordatenbank kann nur so gut sein wie das Einbettungsmodell, das sie speist, und eine Diskrepanz zwischen dem Einbettungsmodell, das zum Indizieren eines Korpus verwendet wird, und dem, das zur Abfragezeit verwendet wird, verschlechtert die Ergebnisse stillschweigend. Ab Mitte der 2020er-Jahre stehen Vektordatenbanken unter Wettbewerbsdruck durch LLMs mit langen Kontextfenstern, die große Mengen rohen Texts direkt verarbeiten können, wodurch der Bedarf an Abruf in einigen Anwendungen reduziert, aber nicht beseitigt wird, sowie durch Allzweckdatenbanken, die Vektorsuche als integrierte Funktion absorbieren, anstatt ein separates System zu betreiben.