Vektordatenbanken

From Systems analysis Wiki
Jump to navigation Jump to search

Vektordatenbanken sind spezialisierte Speicher- und Suchsysteme, die für die Arbeit mit hochdimensionalen numerischen Repräsentationen (Vektoren) von unstrukturierten Daten optimiert sind[1]. Im Kontext von großen Sprachmodellen (LLMs) ermöglichen sie eine effiziente semantische Suche und sind eine Schlüsselkomponente moderner Systeme der künstlichen Intelligenz, insbesondere in der RAG-Architektur.

Im Gegensatz zu traditionellen relationalen Datenbanken, die auf exakte Übereinstimmungen ausgerichtet sind, spezialisieren sich Vektordatenbanken auf die approximative Suche nach den nächsten Nachbarn (Approximate Nearest Neighbor, ANN), um semantisch ähnliche Objekte in einem hochdimensionalen Raum zu finden[2].

Grundlagen von Vektordatenbanken

Vektoreinbettungen (Embeddings)

Vektoreinbettungen (Embeddings) sind numerische Repräsentationen von Text, Bildern, Audio und anderen Datentypen in Form von Vektoren. Das Schlüsselprinzip besteht darin, dass semantisch ähnliche Objekte (z. B. Wörter mit ähnlicher Bedeutung) in diesem Vektorraum nahe beieinander liegen[3].

Moderne Texteinbettungen werden mithilfe von Modellen auf Basis der Transformer-Architektur erstellt, die Aufmerksamkeitsmechanismen (Self-Attention) anwenden, um den Kontext zu verstehen. Die Dimensionalität solcher Repräsentationen variiert bei den meisten modernen Modellen von 256 bis 1024 Dimensionen und mehr[4].

Ähnlichkeitsmetriken

Zur Messung des „Abstands“ oder der Ähnlichkeit zwischen Vektoren werden verschiedene Metriken verwendet:

  • Kosinus-Ähnlichkeit (Cosine Similarity): Misst den Kosinus des Winkels zwischen zwei Vektoren. Besonders effektiv für Texteinbettungen, da sie die Richtung der Vektoren und nicht deren Magnitude berücksichtigt[5].
  • Euklidischer Abstand (L2): Der standardmäßige geradlinige Abstand zwischen zwei Punkten im Raum.
  • Skalarprodukt (Dot Product): Ähnlich der Kosinus-Ähnlichkeit, aber nicht normalisiert[6].

Indizierungsalgorithmen

Für die schnelle Suche in hochdimensionalen Räumen werden spezialisierte ANN-Algorithmen verwendet.

HNSW (Hierarchical Navigable Small World)

Der HNSW-Algorithmus nutzt das Konzept der „kleinen Welt“ und eine mehrschichtige, hierarchische Graphenstruktur. Die oberen Schichten enthalten lange Verbindungen für eine schnelle Navigation im Raum (grobe Suche), während die unteren Schichten kurze Verbindungen für die präzise Suche nach Nachbarn enthalten. HNSW weist eine logarithmische Zeitkomplexität von O(log N) auf und ist die bevorzugte Wahl für die meisten modernen Vektordatenbanken[7].

IVF (Inverted File)

Der IVF-Algorithmus teilt den Raum mithilfe von k-Means-Clustering in Cluster auf. Die Suche erfolgt in einer begrenzten Anzahl der nächstgelegenen Cluster, was den Prozess erheblich beschleunigt. Die Anzahl der Cluster wird typischerweise als √N gewählt, wobei N die Gesamtzahl der Vektoren im Datensatz ist[8].

LSH (Locality-Sensitive Hashing)

Der LSH-Algorithmus verwendet eine Familie von Hash-Funktionen, die mit hoher Wahrscheinlichkeit identische Hashes für nahe beieinander liegende Vektoren erzeugen. Dies ermöglicht eine schnelle Gruppierung ähnlicher Objekte[9].

Populäre Vektordatenbanken

  • Pinecone: Eine vollständig verwaltete, cloud-basierte Vektordatenbank mit serverless Architektur.
  • Qdrant: Eine hochleistungsfähige, in Rust geschriebene Datenbank mit Unterstützung für erweiterte Filterung und ACID-konforme Transaktionen.
  • Milvus: Eine skalierbare Open-Source-Datenbank mit Cloud-nativer Architektur. Sie unterstützt zahlreiche Indextypen, einschließlich GPU-beschleunigter Varianten.
  • Weaviate: Eine Open-Source-Vektordatenbank mit einer GraphQL-API und Unterstützung für Wissensgraphen.
  • Chroma: Eine leichtgewichtige Open-Source-Datenbank, die für schnelles Prototyping und Experimente optimiert ist.
  • FAISS: Eine Bibliothek von Meta, die keine vollwertige Datenbank ist, aber hochleistungsfähige Indizierungsalgorithmen für statische Daten bereitstellt.

Anwendung mit LLMs: Die RAG-Architektur

Retrieval-Augmented Generation (RAG) ist eine Architektur, bei der ein LLM durch eine Vektorsuche mit einer externen Wissensdatenbank ergänzt wird. RAG-Systeme bestehen aus zwei Hauptkomponenten[10]:

  1. Retriever: Eine Suchkomponente, die eine Vektordatenbank verwendet, um relevante Informationen zu einer Benutzeranfrage zu finden.
  2. Generator: Ein LLM, das die ursprüngliche Anfrage und die vom Retriever gefundenen Informationen nutzt, um eine Antwort zu generieren.

Für den effektiven Betrieb von RAG wird die hybride Suche eingesetzt – eine Kombination aus semantischer (vektorieller) und lexikalischer (stichwortbasierter, z. B. BM25) Suche, die präzisere und relevantere Ergebnisse liefert.

Der Markt für Vektordatenbanken verzeichnet ein explosives Wachstum, das von 1,98 Mrd. US-Dollar im Jahr 2023 auf 7,13 Mrd. US-Dollar bis 2029 prognostiziert wird (CAGR 23,7 %)[11]. Zu den wichtigsten Entwicklungsrichtungen gehören:

  • Multimodale Systeme: Unterstützung der gleichzeitigen Suche nach Text, Bildern, Audio und Video in einem einheitlichen Vektorraum.
  • Automatische Optimierung: Einsatz von ML zur automatischen Auswahl optimaler Indizes und Parameter.
  • Edge Computing: Entwicklung kompakter Lösungen für mobile und IoT-Geräte.
  • Quantencomputing: Potenziell exponentielle Beschleunigung der Ähnlichkeitssuche.
  • Neuromorphe Chips: Nachahmung der Funktionsweise des Gehirns für eine Suche mit extrem niedrigem Energieverbrauch.

Literatur

  • Malkov, Y.A.; Yashunin, D.A. (2016). Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. arXiv:1603.09320.
  • Johnson, J.; Douze, M.; Jégou, H. (2017). Billion-Scale Similarity Search with GPUs. arXiv:1702.08734.
  • Datar, M. et al. (2004). Locality-Sensitive Hashing Scheme Based on p-Stable Distributions. SoCG 2004 paper.
  • Guo, N. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. In: Proc. ACM SIGKDD 2020, pp. 1571-1580. DOI:10.1145/3394486.3403339.
  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Wang, X. et al. (2021). Milvus: A Purpose-Built Vector Data Management System. In: SIGMOD 2021. DOI:10.1145/3448016.3457550.
  • Lee, J. et al. (2022). OOD-DiskANN: Efficient and Scalable Graph ANNS for Out-of-Distribution Queries. arXiv:2211.12850.
  • Fan, D. et al. (2023). Survey of Vector Database Management Systems. arXiv:2310.14021.
  • Ren, R. et al. (2024). Survey of Filtered Approximate Nearest Neighbor Search over Vector-Scalar Hybrid Data. arXiv:2505.06501.
  • Zhao, H. et al. (2024). Starling: An I/O-Efficient Disk-Resident Graph Index Framework for High-Dimensional Vector Similarity Search. arXiv:2401.02116.
  • Liu, Y. et al. (2025). Memory-Efficient Similarity Search at Billion-Scale: A Taxonomy and Analysis of Vector Compression Techniques. ResearchGate preprint.

Einzelnachweise

  1. „What Is a Vector Database?“. CloudRaft. [1]
  2. „What is a Vector Database?“. Qdrant Blog. [2]
  3. „What Are Vector Embeddings?“. LakeFS. [3]
  4. „What are embeddings?“. Zilliz. [4]
  5. Sahoo, A., Maiti, J. „A Comparative Study of Similarity Metrics for Textual Embeddings“. arXiv:2501.01234. [5]
  6. „Vector search and dense vector fields“. Elastic. [6]
  7. Malkov, Y. A., Yashunin, D. A. „Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs“. arXiv:1603.09320. [7]
  8. „The index IVF“. FAISS Wiki. [8]
  9. Datar, M., et al. „Locality-Sensitive Hashing Scheme Based on p-Stable Distributions“. Symposium on Computational Geometry. [9]
  10. Lewis, P., et al. „Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks“. arXiv:2005.11401. [10]
  11. „Vector Database Global Market Report 2024“. The Business Research Company. [11]