Vektordatenbanken

Vektordatenbanken

Vektordatenbanken

  • Speicherung und Verwaltung von Vektordaten
  • Effiziente Suche nächstgelegener Nachbarn
  • Distanzmaße
  • Index-Strukturen
  • Auch in hochdimensionalen Vektorräumen
  • Anwendung in Zusammenhang mit
    • Semantischen Vektoreinbettungen (Embeddings)
    • Großen Sprachmodellen (Large Language Models, LLM)
    • Retrieval Augmented Generation (RAG)
  • Aktives Entwicklungsfeld - viele neue Anbieter

Vektoreinbettungen 1

  • Vektor = Zahlenfeld fester Länge
    • Zweidimensional: (3, 5): Vektor der in der Ebene
    • Dreidimensional: (3, 5, 1): Vektor im Raum
    • 1536-dimensional: (1.7, 2.9, 0.9, ..., 3.4, 4,7): OpenAI-Texteinbettung
  • Einbettungen: Umwandlung von Datenobjekten in Vektoren
    • Texte, Bilder, Audio, Video
    • Erfassung der Bedeutung der Objekte
    • Ähnlichkeiten von Wörtern, Bildern usw.

(Quelle)

Vektoreinbettungen 2

  • Mathematische Repräsentation von Datenobjekten
  • Komprimierte, einheitliche Darstellung
  • Bewahren Beziehungen in den Daten
  • Ergebnis tiefer neuronaler Netze (Deep Learning)

(Quelle)

Sentence Transformers

Vektoreinbettungen - Beispiel 1


(Quelle)

Vektoreinbettungen - Beispiel 2

Vektoreinbettungen - Beispiel 3

Explained: Tokens and Embeddings in LLMs (link)

Retrieval Augmented Generation


(Quelle)

Distanzmaße


(Quelle)

Gängige Distanzmaße in Vektordatenbanken


Verteilung im n-dimensionalen Raum 1

Ein-dimensional


Zwei-dimensional


Drei-dimensional


  • Verteilung von 50 Datenpunkten
  • Seitenlänge eines Teilwürfels: 0.2 Einheiten
  • Füllgrad der Teilwürfel nimmt drastisch ab

Verteilung im n-dimensionalen Raum 2



Verhalten der Verteilung bei 20% Seitenlänge

  • Ein-dimensional: ca. 20% Datenpunkte
  • Zwei-dimensional: ca. 4% Datenpunkte
  • Drei-dimensional: viele leere Teilwürfel
  • n>10-dimensional: sehr dünn besiedelter Datenraum

784-dimensional: für 20% der Datenpunkte ist über 99,9% Seitenlänge erforderlich

Distanzen im n-dimensinalen Raum



Je mehr Dimensionen, desto

  • größer die Abstände
  • ähnlicher die Abstände

Fluch der Dimensionalität
Euklidische Distanz verliert an Bedeutung

Vergleich der Ähnlichkeitsmaße

Cosinus-Ähnlichkeit Euklidische Distanz Inneres Prdukt
Winkel zwischen Vektoren Abstand zwischen Vektoren Winkel und Abstand zwischen Vektoren
Unabhängigkeit von Größe der Vektoren Abhängigkeit von Größe der Vektoren Abhängigkeit von Größe der Vektoren
(Quelle)

Eignung und Einsatzbereiche der jeweiligen Metrik: Untersuchung im Klassenraum

Suchstrategien in Vektordatenbanken

Lineare Suche

  • Berechne Distanz des Query-Vektors zu allen Vektoren in der DB
  • Liefere Vektor mit geringstem Abstand
  • Liefert genaue Ergebnisse
  • Zu langsam bei großen Datemengen

Inverted File Index

  • Partitionierung des Datenraums auf Basis von Clustering, z.B 256 Cluster
  • 256 Zentroide
  • Berechne Distanz des Query-Vektors zu allen Zentroiden
  • Lineare Suche in der Partition des gefundenen Zentroiden
  • Liefert Näherungswerte
  • Drastische Reduktion der Suchvorgänge

Quantitisierung

  • Reduzierung der Genauigkeit der Vektoren
  • Spart Speicherplatz, z.B. 8-fach bei float64 zu int8
  • Schnellere Abstandsberechnungen auf int8 als auf float64
  • Skalare Quantitisierung
  • Produkt-Quantitisierung

Hierarchical Navigable Small Worlds (HNSW)

  • Umwandlung der Vektoren in einen Graph
  • Abstände zwischen Vektoren als Kanten
  • Multi-Ebenen-Graph
  • Hierarchische Suche im Graphen

Lineare Suche

(Code)

Inverted File Index


(Quelle)
(Code)

Quantitisierung

Skalare Quantitisierung


(Quelle)
(Code)

Produkt-Quantitisierung


(Quelle)
(Code)

Hierarchical Navigable Small Worlds (HNSW)


(Quelle)

Beschreibung: (link)

Top Sitemap 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0