Was ist eine Vektordatenbank?

Was ist eine Vektordatenbank?

Eine Vektordatenbank ist eine spezialisierte Datenbank, die hochdimensionale Vektoreinbettungen speichert, verwaltet und durchsucht, um die Suche nach semantischen Ähnlichkeiten zu ermöglichen.

Diese von Machine-Learning-Modellen generierten Einbettungen erfassen die semantischen Beziehungen innerhalb unstrukturierter Daten wie Text, Bilder oder Audio und positionieren konzeptionell verwandte Objekte im Vektorraum näher beieinander, sodass das System Ergebnisse nach Relevanz bewerten kann. Vektordatenbanken indexieren und speichern sowohl dichte als auch dünnbesetzte Einbettungen für den schnellen Abruf und dienen häufig als externe Wissensdatenbank, die ein großes Sprachmodell (LLM) abfragen kann, um seine Antworten auf vertrauenswürdige Daten zu stützen und das Risiko von Halluzinationen zu verringern.


Vektoreinbettungen

Was sind Vektoreinbettungen und wie werden sie erstellt?

Vektoreinbettungen sind numerische Arrays von Fließkommawerten, die Daten wie Wörter, Phrasen oder ganze Dokumente darstellen. Sie werden durch Machine-Learning-Modelle generiert, wie zum Beispiel große Sprachmodelle, die digitale Medien in Punkte innerhalb eines hochdimensionalen Raums umwandeln. Dieser Prozess erfasst die zugrunde liegende semantische Bedeutung und die Beziehungen der ursprünglichen Daten. So könnte zum Beispiel das Bild von einem Golden Retriever, der in einem Park spielt, in eine Einbettung umgewandelt werden, die numerisch nahe an der Einbettung für den Text „glücklicher Hund draußen“ liegt. Es ist wichtig zu beachten, dass Einbettungen, die von einem Modell eines Anbieters erstellt wurden, nicht von einem anderen verstanden werden können; zum Beispiel ist eine Einbettung aus einem OpenAI-Modell nicht mit einer Einbettung eines anderen Anbieters kompatibel.

Was sind dichte Vektoren (Einbettungen)?

Dichte Vektoren sind hochdimensionale numerische Einbettungen, bei denen fast alle Elemente ungleich Null sind. Ein entscheidendes Merkmal dichter Vektoren ist, dass alle von einem bestimmten Modell generierten Vektoren dieselbe feste Anzahl von Dimensionen haben müssen, was eine Voraussetzung für die Messung der Ähnlichkeit ist. Einbettungen von Azure OpenAI-Modellen haben beispielsweise 1.536 Dimensionen. Sie werden in der Regel von Transformationsmodellen erzeugt und erfassen eine reichhaltige und nuancierte semantische Bedeutung, was sie ideal für die semantische Ähnlichkeitssuche macht. Ein dichter Vektor für das Wort „Katze“ könnte zum Beispiel als [0,135, -0,629, 0,327, 0,366, ...] erscheinen.

Was sind dünnbesetzte Vektoren (Einbettungen)?

Dünnbesetzte Vektoren sind hochdimensionale numerische Einbettungen, bei denen die Mehrheit der Elemente null ist, eine Struktur, die sowohl für die Speicher- als auch für die Recheneffizienz optimiert ist. Im Gegensatz zu dichten Retrievern verwenden dünnbesetzte Retriever traditionelle Suchtechniken wie Term Frequency-Inverse Document Frequency (TF-IDF) oder BM25, um Suchanfragen anhand von Stichwörtern mit Dokumenten abzugleichen. Eine Suche nach „gesunder Snack“ kann beispielsweise einen dünnbesetzten Vektor erzeugen, der sich auf verwandte Begriffe wie [„Apfel“ (3,0), „Karotte“ (2,5), „Vitamin“ (1,2)] ausdehnt und ihnen Gewichtungen zuweist, während alle anderen Begriffe im Vokabular eine Gewichtung von Null haben. Diese Struktur ist hochgradig kompatibel mit traditionellen invertierten Indizes und ermöglicht ein effizientes Abrufen.

Ähnlichkeit messen

Wie werden Vektorähnlichkeit und Abstand gemessen?

In der Vektorsuche wird die Ähnlichkeit quantifiziert, indem der Abstand oder der Winkel zwischen zwei Vektoren in einem hochdimensionalen Raum berechnet wird; Vektoren, die näher beieinander liegen, gelten als semantisch ähnlicher. Zu den gängigen Metriken zur Messung dieser Nähe gehören die Kosinusähnlichkeit, der euklidische Abstand, das Punktprodukt, der Hamming-Abstand und der Manhattan-Abstand.

  • Der L2-Abstand (euklidischer Abstand) ist die gebräuchlichste Metrik und stellt die geradlinige „Luftlinien“-Distanz zwischen zwei Vektorpunkten dar.
  • Der L1-Abstand (Manhattan-Abstand) misst die Entfernung, indem die absoluten Differenzen der Vektorkomponenten summiert werden, so, als ob man durch ein Stadtnetz navigiert.
  • Der Linf-Abstand (Tschebyscheff-Abstand) ist die maximale Differenz entlang einer einzelnen Dimension.
  • Die Kosinusähnlichkeit misst den Kosinus des Winkels zwischen zwei Vektoren, um festzustellen, ob sie unabhängig von ihrer Größe in eine ähnliche Richtung zeigen. Eine Punktzahl von 1 bedeutet identische Vektoren, und -1 bedeutet, dass sie gegensätzlich sind. Dies ist eine gängige Wahl für normalisierte Einbettungsräume wie die von OpenAI-Modellen.
  • Die Punktprodukt-Ähnlichkeit berücksichtigt sowohl den Winkel als auch den Betrag der Vektoren. Sie entspricht der Kosinusähnlichkeit für normalisierte Vektoren, ist jedoch oft rechnerisch effizienter.
  • Der Hamming-Abstand berechnet die Anzahl der Dimensionen, in denen sich zwei Vektoren unterscheiden.
  • Das maximale innere Produkt (MaxSim) ist eine Ähnlichkeitsmetrik, die verwendet wird, wenn ein einzelnes Datenelement (wie ein Dokument) durch mehrere Vektoren dargestellt wird (z. B. ein Vektor für jedes Wort). Sie berechnet die Ähnlichkeit, indem jeder Vektor in einem Dokument mit dem ähnlichsten Vektor im anderen Dokument verglichen wird und die Ergebnisse dann aggregiert werden.

Effiziente Suchalgorithmen

Was ist eine mehrstufige Suche in Vektorsuchsystemen?

Ein mehrstufiger Abruf oder ein Retriever-Framework (der Einfachheit halber können wir es auch Suchpipeline nennen) ist ein orchestrierter Workflow, der die Abfolge der Schritte zur Verarbeitung einer Abfrage definiert. Dazu gehören in der Regel Schritte wie die Abfrageanalyse, der erste Abruf aus einem oder mehreren Indizes (z. B. die Kombination von lexikalischer Suche und Vektorsuche für einen hybriden Ansatz), das Filtern der Ergebnisse und ein letztes erneutes Ranking, bevor die Ergebnisse an den Nutzer ausgegeben werden.


Welche Vorteile bietet die Verwendung des Retriever-Frameworks zum Erstellen von Suchpipelines?

Der Hauptvorteil besteht in Modularität und Flexibilität. Dies ermöglicht Entwicklern, verschiedene Such- und Rankingstrategien (wie die Hybridsuche) einfach zu kombinieren und komplexe, mehrstufige Retrieval-Pipelines zu erstellen, die auf spezifische Bedürfnisse zugeschnitten sind, ohne das gesamte System von Grund auf neu erstellen zu müssen.

Was ist semantisches Reranking?

Semantisches Reranking ist ein zweiter Prozessschritt, der die Relevanz der Suchergebnisse verbessert. Nachdem in einer ersten, schnellen Abrufphase eine breite Menge an Kandidatendokumenten ermittelt wurde, wird ein rechenintensiveres, aber genaueres Modell verwendet, um diese kleinere Menge neu zu ordnen und ein präziseres endgültiges Ranking zu erstellen.

Wie funktioniert ein mehrstufiger „Retrieve-and-Rerank“-Prozess?

Eine „Retrieve-and-Rerank“-Pipeline arbeitet in zwei unterschiedlichen Phasen:

  1. Retrieve (Abrufen): Eine effiziente, skalierbare Abrufmethode (wie die ANN-Vektorsuche oder die lexikalische BM25-Suche) wird verwendet, um einen ersten Satz von Kandidatendokumenten aus dem vollständigen Index abzurufen.
  2. Rerank (Neusortieren): Diese kleinere Kandidatenmenge wird dann an ein leistungsfähigeres Modell (wie einen Cross-Encoder) übergeben, das eine gründlichere Analyse der semantischen Beziehung zwischen der Abfrage und jedem Dokument durchführt und sie neu anordnet, um die endgültige Relevanz zu verbessern.

Worin besteht der Unterschied zwischen Bi-Encoder- und Cross-Encoder-Architekturen für das Reranking?

  • Ein Bi-Encoder erzeugt unabhängig voneinander separate Einbettungen für die Abfrage und die Dokumente. Da die Dokumenteinbettungen vorberechnet und indiziert werden können, ist diese Architektur sehr schnell und wird für die erste Abrufphase verwendet.
  • Ein Cross-Encoder verarbeitet die Abfrage und ein Dokument zusammen als eine einzige Eingabe. Dadurch kann er viel tiefere kontextuelle Interaktionen erfassen, was er sehr genau, aber auch viel langsamer macht. Aufgrund der hohen Rechenkosten eignet er sich nur für die Reranking-Phase einer kleinen Menge von Kandidatenergebnissen.

Speicherung und Optimierung für Vektordatenbanken

Wie werden Vektoren normalerweise in einer Vektordatenbank gespeichert und welche Speicherherausforderungen ergeben sich?

Vektoren werden in der Regel als Arrays von 32-Bit-Gleitkommazahlen (float32) gespeichert. Die primäre Herausforderung ist der immense Speicherbedarf; ein einzelner Vektor mit 384 Dimensionen verbraucht ungefähr 1,5 KB. Ein Index mit 100 Millionen Dokumenten kann daher allein durch das Hinzufügen eines Vektorfeldes um das Siebenfache anwachsen. Da Vektorsuchalgorithmen wie HNSW aus Leistungsgründen erfordern, dass der Index in den RAM geladen wird, entstehen dadurch erhebliche Herausforderungen hinsichtlich der Speicherkosten und der Skalierbarkeit.

Was ist Vektorquantisierung?

Die Vektorquantisierung ist eine verlustbehaftete Komprimierungstechnik, die den Speicher- und Rechenbedarf eines Modells reduziert, indem dessen Parameter mit weniger Bits dargestellt werden. Dies ist besonders nützlich für LLMs, die Milliarden von Parametern haben können. Durch die Konvertierung von hochpräzisen float32-Zahlen in niedrigere Ganzzahlen wie int8 oder int4 kann die Quantisierung die Modellgröße erheblich reduzieren und die Inferenz bei minimalen Auswirkungen auf die Genauigkeit beschleunigen.

Was ist skalare Quantisierung (SQ)?

Skalare Quantisierung komprimiert Vektoren, indem sie den kontinuierlichen Bereich von float32-Werten auf eine diskrete Menge von ganzzahligen Werten mit niedrigerer Genauigkeit (z. B. int8) abbildet. Dies kann eine bis zu vierfache Reduzierung der Speichergröße erreichen, während ein erheblicher Teil der Größeninformationen des Vektors erhalten bleibt, was für die Relevanz wichtig ist.

Was ist binäre Quantisierung (BQ)?

Die binäre Quantisierung ist eine aggressivere Komprimierungstechnik, die jede Komponente eines float32-Vektors in eine binäre Darstellung (z. B. 1 Bit) umwandelt. Dadurch kann eine bis zu 32-fache Komprimierung erreicht werden, was maximale Speichereinsparungen bietet und schnellere Berechnungen mit ganzzahlbasierten Operationen ermöglicht, oft auf Kosten eines gewissen Präzisionsverlusts.

Was sind die Vorteile einer Vektordatenbank?

Vektordatenbanken bieten bei der Arbeit mit unstrukturierten Daten und KI-Anwendungen mehrere Vorteile gegenüber herkömmlichen Datenbanken:

Semantische Suche, die über den Abgleich von Stichwörtern hinausgeht: Vektordatenbanken rufen Ergebnisse auf der Grundlage der Bedeutung ab und nicht anhand exakter Wortübereinstimmungen. Eine Suchanfrage nach „preisgünstigen Laptops für Studenten“ kann Produkte wie „Budget-Notebooks fürs College“ aufzeigen, da die zugrunde liegenden Einbettungen eher konzeptionelle Ähnlichkeiten als wörtliche Textübereinstimmungen erfassen.

Schnelle Ähnlichkeitssuche in großem Maßstab: Durch die Kombination von Vektorindexierung mit Algorithmen für den approximativen nächsten Nachbarn wie HNSW liefern Vektordatenbanken relevante Ergebnisse aus Milliarden von Vektoren in Millisekunden und ermöglichen damit Echtzeit-KI-Anwendungen.

Unterstützung für unstrukturierte Daten: Text, Bilder, Audio, Video und andere unstrukturierte Formate können als Vektoreinbettungen dargestellt und mit einem einzigen, einheitlichen System durchsucht werden. Das macht separate Pipelines pro Datentyp überflüssig.

Grundlage für große Sprachmodelle: Vektordatenbanken dienen als Abrufschicht in Retrieval Augmented Generation (RAG)-Architekturen, indem sie LLMs mit relevantem, aktuellem Kontext aus vertrauenswürdigen Quellen versorgen und Halluzinationen reduzieren.

Hybride Suchfunktionen: Moderne Vektordatenbanken kombinieren die Suche nach dichten und dünnbesetzten Vektoren und die traditionelle Stichwortsuche (BM25) in einer einzigen Abfrage und liefern so genauere Ergebnisse als jede einzelne Methode für sich.

Skalierbarkeit und Leistung: Speziell entwickelte Indexierungsstrukturen, Quantisierung und verteilte Architekturen ermöglichen es Vektordatenbanken, wachsende Datensätze und hohe Abfragevolumina ohne eine signifikante Verschlechterung der Latenz zu bewältigen.

Geringere operative Komplexität: Eine integrierte Vektordatenbank macht die Verknüpfung separater Systeme für Speicherung, Einbettungsmanagement und Suche überflüssig und vereinfacht so die Architektur für KI-gestützte Anwendungen.

Was sind die Vorteile einer integrierten Vektordatenbank- und Such-Plattform?

Eine integrierte Plattform, die Vektorspeicher und -suche mit traditionellen Datenbankfunktionen (wie lexikalischer Suche und Filterung) kombiniert, bietet erhebliche Vorteile. Sie vereinfacht die Architektur, da die Synchronisierung der Daten zwischen separaten Systemen nicht mehr erforderlich ist. Vor allem jedoch ermöglicht sie eine leistungsstarke Hybridsuche, bei der lexikalische Suche, Vektorsuche und Metadatenfilterung in einer einzigen, einheitlichen Abfrage durchgeführt werden können, was zu relevanteren Ergebnissen und einer einfacheren Entwicklererfahrung führt.

Was versteht man unter Metadatenfilterung in einer Vektordatenbank?

Beim Filtern von Metadaten werden die Vektorsuchergebnisse auf der Grundlage von strukturierten Attributen eingegrenzt, die den einzelnen Vektoren zugeordnet sind, z. B. Datum, Kategorie, Autor, Preis, Sprache oder Nutzerrechte. Während die Vektorsuche Ergebnisse anhand semantischer Ähnlichkeit liefert, wenden Metadatenfilter harte Einschränkungen an, die die Ergebnisse erfüllen müssen. So kann beispielsweise eine Anfrage nach „leichten Laufschuhen“ auf Artikel beschränkt werden, die auf Lager sind, unter 100 £ kosten und in der Region des Nutzers verfügbar sind.

Die Kombination von Vektorähnlichkeit mit der Filterung von Metadaten ist für Produktionsanwendungen unerlässlich. Ein RAG-System beispielsweise muss vielleicht die Antworten auf Dokumente beschränken, die der aktuelle Benutzer einsehen darf, oder auf Artikel, die in den letzten sechs Monaten veröffentlicht wurden. Ohne die Filterung von Metadaten würden regelmäßig semantisch relevante, aber kontextuell falsche Ergebnisse auftauchen.

Es gibt zwei gängige Vorgehensweisen. Das Vorfiltern wendet Metadaten-Einschränkungen vor der Ähnlichkeitssuche an und reduziert so die Kandidatenmenge; dies garantiert die geforderte Anzahl der Ergebnisse, kann aber bei hochselektiven Filtern langsamer sein. Bei der Nachfilterung wird zunächst die Ähnlichkeitssuche durchgeführt, anschließend werden die nicht übereinstimmenden Ergebnisse verworfen. Dies ist zwar schneller, kann aber bei einem restriktiven Filter zu einer geringeren Anzahl an Ergebnissen als angefordert führen. Moderne Vektordatenbanken kombinieren typischerweise beide Strategien und wählen dynamisch auf Basis der Filterselektivität, um ein Gleichgewicht zwischen Trefferquote, Latenz und Genauigkeit zu erzielen.


Vektordatenbank-Funktionen mit Elastic

Elasticsearch ist eine Vektordatenbank, die auf den Grundlagen der weltweit am häufigsten eingesetzten Suchmaschine aufbaut und Vektorsuche, lexikalische Suche und Metadatenfilterung auf einer einzigen Plattform vereint. Anstatt einen dedizierten Vektorspeicher neben einem separaten Suchsystem zu betreiben, können Teams eine einzige Engine verwenden, um semantische Suche, hybride Abfrage und Retrieval-Augmented Generation im Produktionsmaßstab zu betreiben.

Zu den wichtigsten Fähigkeiten gehören:

  • Native Unterstützung für dichte und dünnbesetzte Vektoren: Indexierung, Speicherung und Abfrage sowohl dichter als auch dünnbesetzter Vektoreinbettungen (einschließlich der vom ELSER-Modell von Elastic erzeugten) innerhalb desselben Index.
  • Sofort einsatzbereite Hybridsuche: Kombination der lexikalischen BM25-Suche mit einer kNN für dichte Vektoren und dem Abruf dünnbesetzter Vektoren in einer einzigen Abfrage unter Verwendung des Retriever-Frameworks und der Reciprocal Rank Fusion (RRF) zur Zusammenführung von Ergebnissen.
  • Integrierte Inferenz: Der Feldtyp semantic_text und die Inferenz-API behandeln Chunking, Einbettungsgenerierung und Abfragezeit-Vektorisierung automatisch, sodass keine separate Einbettungs-Pipeline verwaltet werden muss.
  • Speichereffiziente Speicher: Better Binary Quantization (BBQ) ist standardmäßig für dichte Vektoren aktiviert, wodurch der Speicherbedarf bei Beibehaltung der Trefferquote um das bis zu 32-fache reduziert wird, was die Infrastrukturkosten beim Skalieren senkt.
  • Gefilterte Vektorsuche: Anwendung von Metadatenfiltern, georäumlichen Einschränkungen und Sicherheit auf Dokumentenebene zusammen mit der Vektorähnlichkeit in einer einzigen Abfrage, wobei der Abfrageplaner basierend auf der Selektivität eine Vor- oder Nachfilterung wählt.
  • Produktionsreife Abläufe: Übernahme der verteilten Architektur von Elasticsearch, einschließlich Sharding, Replikation, rollenbasierter Zugriffssteuerung, Snapshots und Monitoring, die alle ausgereift sind und sich in großen Deployments bewährt haben.
  • Semantisches Reranking: Das Elastic Rerank-Modell bietet zusätzlich zur anfänglichen Suche eine zweite Stufe der Relevanzsteigerung und verbessert so die Ergebnisqualität, ohne dass eine Neuindizierung erforderlich ist.

Beginnen Sie mit der Vektorsuche in Elasticsearch in der Elasticsearch Labs-Dokumentation.

Flexibilität bei der Bereitstellung: On-Prem und Air-Gapped-Vektordatenbanken

Der Ort, an dem eine Vektordatenbank betrieben wird, ist zunehmend genauso wichtig wie die Art und Weise, wie sie funktioniert. Die meisten Vektordatenbanken sind als Managed Cloud Services verfügbar. Immer mehr Unternehmen müssen sie jedoch in ihrer eigenen Infrastruktur bereitstellen, entweder On-Prem oder in vollständig isolierten Netzwerken.

Eine On-Prem-Bereitstellung bedeutet, dass die Vektordatenbank auf Hardware läuft, die das Unternehmen kontrolliert, typischerweise in seinem eigenen Rechenzentrum oder einer privaten Cloud. Daten verlassen den Netzwerkbereich des Unternehmens nicht und das Betriebsteam kümmert sich selbst um Installation, Skalierung, Upgrades und Sicherheit. Air-Gapped-Deployment geht noch einen Schritt weiter: Die Umgebung hat überhaupt keine Verbindung zum öffentlichen Internet. Software-Updates, Modellgewichte und eingebettete Pipelines müssen durch kontrollierte Offline-Prozesse eingespielt werden, und es dürfen keine Telemetrie- oder andere Daten nach außen gesendet werden.

Das ist für Vektordatenbanken wichtiger als für die meisten anderen Infrastrukturen. In einer RAG-Pipeline enthält die Vektordatenbank die Wissensdatenbank, auf der die Antworten des Sprachmodells basieren. Dies sind oft die sensibelsten Inhalte, die ein Unternehmen besitzt: interne Recherchen, Kundendaten, Rechtsdokumente, Quellcode, geheime Informationen oder firmeneigene Betriebsdaten. Die Einbettungen selbst können ebenfalls Informationen über den Quellinhalt preisgeben, sodass die Speicherebene ein wichtiger Teil des Bedrohungsmodells ist und genauso berücksichtigt werden muss.

In einigen Branchen bestehen strenge Anforderungen, die rein auf Public-Cloud-Plattformen basierende Vektordatenbanken praktisch ausschließen:

  • Bundes- und Verteidigungsbehörden und Nachrichtendienste operieren häufig in geheimen oder isolierten Netzwerken, in denen keine externe Konnektivität erlaubt ist und in denen Software bestimmte Akkreditierungsstandards erfüllen muss, bevor sie eingesetzt werden kann.
  • Gesundheitsdienstleister, die mit geschützten Gesundheitsdaten umgehen, müssen strenge Vorschriften hinsichtlich des Speicherorts und der Verarbeitung von Patientendaten einhalten, und viele ziehen es vor, KI-Workloads innerhalb der Krankenhaus- oder Kostenträgerinfrastruktur zu halten, anstatt Einbettungen klinischer Notizen an einen Drittanbieterdienst zu senden.
  • Finanzdienstleistungsunternehmen sehen sich mit Vorschriften zur Datenresidenz, regulatorischen Prüfungsanforderungen und internen Richtlinien konfrontiert, die häufig vorschreiben, dass Kunden- und Transaktionsdaten in bestimmten Jurisdiktionen oder innerhalb der eigenen kontrollierten Umgebungen des Unternehmens aufbewahrt werden müssen.
  • Unternehmen mit Anforderungen an den Datenstandort oder die Datensouveränität, einschließlich aller Organisationen, die unter Vorschriften wie der DSGVO oder ähnlichen regionalen Rahmenwerken operieren, benötigen die Möglichkeit, ihre Vektordatenbank an ein bestimmtes Land oder eine bestimmte Region zu binden oder sie vollständig innerhalb ihrer eigenen Infrastruktur zu betreiben.

Die Wahl einer Vektordatenbank, die das gesamte Bereitstellungsspektrum unterstützt – Managed Cloud, Self-Managed Cloud, On-Prem und Air-Gapped – ermöglicht es Unternehmen, eine einheitliche Technologie für Workloads mit sehr unterschiedlichen Sicherheits- und Compliance-Profilen zu standardisieren, anstatt separate Stacks für sensible und nicht sensible Daten zu betreiben.