Zum Hauptinhalt springen

Was sind Embeddings? Vektoren und Vektordatenbank erklärt

Embeddings verwandeln Text in Zahlenvektoren, die Bedeutung abbilden. So arbeitet eine Vektordatenbank, was sie an Speicher braucht und wo sie scheitert.

FHFinn Hillebrandt
Zuletzt aktualisiert:
Technik
Was sind Embeddings? Vektoren und Vektordatenbank erklärt

Ein Embedding ist eine Liste von Zahlen (ein Vektor), die beschreibt, was ein Text bedeutet. Inhalte mit ähnlicher Bedeutung bekommen ähnliche Zahlen, Inhalte mit anderer Bedeutung weit entfernte. So kann ein Computer Bedeutung vergleichen, obwohl er nur rechnen kann.

Stell dir eine Landkarte vor, auf der jeder Satz einen Standort hat. Sätze über Rückgabe und Umtausch stehen im selben Viertel, ein Satz über Katzen liegt am anderen Ende der Stadt. Die Suche nach einer Antwort wird zur Frage, welche Orte am nächsten liegen. Ein Embedding ist die Adresse, die Vektordatenbank das Verzeichnis, in dem du die nächsten Nachbarn nachschlägst.

1. Wie aus Text Zahlen werden

Ein Embedding-Modell liest einen Text und gibt eine feste Anzahl Zahlen zurück, etwa 1.536 Stück. Diese Länge nennt man Dimensionen. Beim Training lernt das Modell, Texte mit verwandtem Inhalt nah beieinander abzulegen. Aus sehr vielen Texten entsteht so eine Bedeutungskarte.

Die Wurzel dieser Idee liegt in word2vec. Ein Team um Tomas Mikolov zeigte 2013, dass sich aus Wortvektoren Bedeutungsbeziehungen ablesen lassen. Berühmt ist das Beispiel aus dem Paper. Rechnet man vector(„King“) minus vector(„Man“) plus vector(„Woman“), landet man beim Vektor, der „Queen“ am nächsten liegt. Heutige Embedding-Modelle verarbeiten ganze Sätze und Absätze statt einzelner Wörter, das Prinzip ist geblieben.

1.1 Wie „nah“ gemessen wird

Den Abstand zweier Vektoren misst man meist mit der Kosinus-Ähnlichkeit. Sie vergleicht die Richtung der beiden Vektoren und nicht ihre Länge. Zeigen sie in dieselbe Richtung, liegt der Wert nahe 1. Stehen sie senkrecht zueinander, ist er 0. OpenAI empfiehlt in seiner Dokumentation diese Kennzahl, auch wenn die Wahl der Abstandsfunktion meist wenig ausmacht.

1.2 Ein Rechenbeispiel im Kleinen

Echte Embeddings haben Hunderte bis Tausende Dimensionen. Zum Nachrechnen reichen drei. Die Werte in der Tabelle sind ausgedacht und zeigen nur das Prinzip.

Umtausch
Mini-Vektor (ausgedacht)
(0,60; 0,90; 0,30)
Kosinus-Ähnlichkeit zu „Rückgabe“
0,95
Rechnungsadresse
Mini-Vektor (ausgedacht)
(0,10; 0,90; 0,40)
Kosinus-Ähnlichkeit zu „Rückgabe“
0,71
Katze
Mini-Vektor (ausgedacht)
(0,10; 0,10; 0,95)
Kosinus-Ähnlichkeit zu „Rückgabe“
0,23
Eigene Berechnung, ausgedachte Werte
gradually.ai

„Umtausch“ liegt fast in derselben Richtung wie „Rückgabe“, „Rechnungsadresse“ ein Stück daneben, „Katze“ weit weg. Genau diese Rangfolge nutzt eine Suche. Beachte, dass in echten Modellen keine einzelne Dimension eine lesbare Bedeutung hat. Es gibt keine Spalte „Tier“ oder „Reklamation“. Erst das Zusammenspiel aller Zahlen trägt die Bedeutung.

2. Die Vektordatenbank

Eine Vektordatenbank speichert Embeddings zusammen mit dem Text oder einer Kennung, aus der sie berechnet wurden. Ihre Hauptaufgabe ist die Ähnlichkeitssuche. Du gibst den Vektor einer Frage hinein und bekommst die gespeicherten Einträge zurück, die ihm am nächsten liegen.

Das exakte Durchrechnen aller Einträge wird bei Millionen Vektoren langsam. Deshalb nutzen Vektordatenbanken meist die ungefähre Suche nach nächsten Nachbarn (Approximate Nearest Neighbor). Ein verbreitetes Verfahren ist HNSW, das Yury Malkov und Dmitry Yashunin 2016 vorgestellt haben. Es legt die Vektoren in einem mehrschichtigen Graphen ab und springt von groben zu feinen Schichten zum Ziel. Das Ergebnis ist sehr schnell, liefert aber nicht garantiert den allerbesten Treffer.

Du brauchst dafür nicht zwingend ein eigenes Produkt. pgvector zum Beispiel ist eine Erweiterung für PostgreSQL. Sie speichert Vektoren neben den übrigen Daten in derselben Tabelle und unterstützt exakte sowie ungefähre Suche, darunter HNSW und die Kosinus-Distanz. Daneben gibt es eigenständige Vektordatenbanken. Welche passt, hängt von Datenmenge, Betrieb und vorhandener Technik ab.

3. Wofür man Embeddings nutzt

  • Semantische Suche: Die Suche findet „Umtausch“, auch wenn du „Rückgabe“ eintippst.
  • RAG: Das System sucht die passenden Abschnitte aus deinen Dokumenten und gibt sie dem Sprachmodell mit.
  • Empfehlungen: Produkte oder Artikel mit verwandter Beschreibung werden vorgeschlagen.
  • Gruppieren: Texte mit ähnlichem Inhalt lassen sich zu Themen bündeln.
  • Dubletten finden: Fast gleiche Einträge liegen im Vektorraum dicht beisammen.

OpenAI nennt in seiner Dokumentation außerdem Ausreißererkennung und Klassifikation als typische Einsatzzwecke.

3.1 Embedding-Modell oder LLM?

Beides sind meist neuronale Netze, aber mit verschiedener Aufgabe. Ein LLM erzeugt Text. Ein Embedding-Modell erzeugt Vektoren und schreibt nichts. Auch im Inneren eines LLM kommen Embeddings vor. Das Transformer-Paper von 2017 beschreibt, wie gelernte Embeddings die Eingabe-Token in Vektoren verwandeln, mit denen das Netz weiterrechnet.

4. Rechenbeispiel: Speicher für 3.000 Seiten

Wir greifen die Wissensbasis aus dem Eintrag zu RAG auf. Sie umfasst 3.000 Seiten, geteilt in Abschnitte von etwa 300 Wörtern. Das ergibt rund 4.500 Abschnitte, und jeder bekommt einen Vektor. Gespeichert werden 4 Byte je Dimension (eine 32-Bit-Zahl). Wie viel das ausmacht, hängt von der Länge der Vektoren ab. OpenAIs Modelle liefern standardmäßig 1.536 Dimensionen bei text-embedding-3-small und 3.072 bei text-embedding-3-large.

768
Speicher je Vektor
3 KB
Speicher für 4.500 Abschnitte
13,8 MB
1.536
Speicher je Vektor
6 KB
Speicher für 4.500 Abschnitte
27,6 MB
3.072
Speicher je Vektor
12 KB
Speicher für 4.500 Abschnitte
55,3 MB
Eigene Berechnung, 32-Bit-Zahlen
gradually.ai

Selbst mit 3.072 Dimensionen bleibt die Wissensbasis klein. Zum Problem wird der Speicher erst bei Millionen Abschnitten. Kürzere Vektoren sparen Speicher und kosten etwas Genauigkeit. Bei den OpenAI-Modellen lässt sich die Länge über den Parameter „dimensions“ verkürzen.

5. Grenzen und Missverständnisse

  • Ähnlich heißt nicht richtig. Die Suche findet Texte, die zur Frage passen, nicht solche, die stimmen. Ein veralteter Absatz kann der beste Treffer sein.
  • Sprache und Fachjargon. Ein Modell kennt nur, was es im Training gesehen hat. Interne Abkürzungen oder seltene Fachbegriffe liegen im Vektorraum oft falsch.
  • Zahlen und Eigennamen. Zwei Produktnummern, die sich nur in einer Ziffer unterscheiden, können im Vektorraum nah beieinander liegen. Ein Embedding erfasst Bedeutung, keine exakten Zeichenfolgen. Deshalb kombinieren viele Systeme Vektor- und Stichwortsuche (hybride Suche).
  • Modellwechsel heißt neu rechnen. Vektoren verschiedener Modelle sind nicht vergleichbar. Wechselst du das Embedding-Modell, musst du alle gespeicherten Texte neu einbetten.
  • Der Vektor ersetzt den Text nicht. Du speicherst den Originaltext zusätzlich, um ihn anzuzeigen und später neu einzubetten.
  • Ungefähre Suche ist ungefähr. Verfahren wie HNSW tauschen ein wenig Genauigkeit gegen Tempo.

6. Was heißt das für dich?

  • Prüfe, ob du eine Vektordatenbank brauchst. Für kleine Bestände genügt oft eine Erweiterung deiner bestehenden Datenbank oder die Datei-Suche eines Anbieters.
  • Teste das Modell an deinen Daten. Sammle 20 bis 50 echte Fragen mit bekannter Fundstelle. Ein Leaderboard wie MTEB zeigt eine Richtung, ersetzt aber den eigenen Test nicht.
  • Kombiniere Vektor- und Stichwortsuche, wenn deine Texte Produktnummern, Namen oder Paragrafen enthalten.
  • Plane den Modellwechsel ein. Speichere den Originaltext und den Namen des Modells mit, damit du später neu einbetten kannst.
  • Kläre den Datenschutz vorab. Zum Berechnen gehen deine Texte an das Embedding-Modell, bei einem Cloud-Anbieter also an dessen Server.

Häufig gestellte Fragen

Embeddings sind Zahlenlisten (Vektoren), die die Bedeutung eines Textes, Bildes oder Tons beschreiben. Inhalte mit ähnlicher Bedeutung bekommen ähnliche Zahlen, auch wenn sie andere Wörter verwenden. So kann eine Software Bedeutung vergleichen, obwohl sie nur rechnet. Sie bilden die Grundlage für semantische Suche, RAG, Empfehlungen und das Gruppieren von Texten.

Wörtlich heißt „embedding“ Einbettung. Gemeint ist, dass ein Text in einen Raum aus Zahlen eingebettet wird, den sogenannten Vektorraum. Im Deutschen sagt man meist einfach „Embedding“. Üblich sind auch „Einbettung“ oder „Vektordarstellung“.

Ein Embedding-Modell wandelt einen Text in einen Vektor um und liefert dafür keinen Text zurück. Ein LLM sagt dagegen Wort für Wort voraus, wie ein Text weitergeht, und schreibt so Antworten. Beide beruhen meist auf neuronalen Netzen, haben aber unterschiedliche Aufgaben. In einem RAG-System arbeiten sie zusammen. Das Embedding-Modell findet die passenden Abschnitte, das LLM formuliert die Antwort.

Ja, auf mindestens einer Ebene sicher. Jedes Sprachmodell auf Transformer-Basis wandelt Token intern zuerst in Vektoren um, wie es das Transformer-Paper von 2017 beschreibt. Das sind die Embeddings im Inneren des Modells. Dazu kommen Embedding-Modelle als eigener Baustein. Werkzeuge, die Dateien oder eine Wissensbasis durchsuchen, vergleichen üblicherweise Vektoren, die ein solches Modell berechnet hat. Wie ChatGPT im Detail aufgebaut ist, veröffentlicht OpenAI nicht.

Eine allgemeingültige Antwort gibt es nicht, weil es auf deine Sprache, deine Texte und dein Budget ankommt. Achte auf diese Kriterien. Unterstützt das Modell Deutsch und deinen Fachjargon? Wie lang darf ein Text sein? Wie viele Dimensionen hat der Vektor, und was kostet der Speicher dafür? Wie hoch sind die Kosten pro Million Token, und kannst du das Modell selbst betreiben, wenn die Daten dein Haus nicht verlassen dürfen? Als Orientierung dient das öffentliche MTEB-Leaderboard auf Hugging Face. Der zugrunde liegende Benchmark umfasst laut seinem Paper 8 Aufgabenarten, 58 Datensätze und 112 Sprachen. Entscheidend bleibt ein Test mit 20 bis 50 echten Fragen aus deinem Bestand.

Man nutzt sie, wenn nach Ähnlichkeit statt nach exakten Treffern gesucht wird, etwa für semantische Suche in Dokumenten, als Wissensspeicher für RAG, für Produktempfehlungen, zum Finden von Dubletten und zum Gruppieren von Texten. Ob du dafür eine eigene Datenbank brauchst, hängt von der Menge ab. Bei kleinen Beständen reicht oft eine Erweiterung deiner bestehenden Datenbank.

Nein. SQL ist eine Abfragesprache und keine Datenbank. Relationale Datenbanken wie PostgreSQL arbeiten mit SQL und können durch Erweiterungen wie pgvector Vektoren speichern und ähnliche Einträge finden. Eine Datenbank mit SQL-Anbindung kann also zur Vektordatenbank werden, SQL allein macht sie aber nicht dazu.
Quellen und Referenzen
FH

Finn Hillebrandt

KI-Experte & Blogger

Finn Hillebrandt ist der Gründer von Gradually AI, SEO- und KI-Experte. Er hilft Online-Unternehmern, ihre Prozesse und ihr Marketing mit KI zu vereinfachen und zu automatisieren. Finn teilt sein Wissen hier auf dem Blog in 50+ Fachartikeln sowie über den KI Business Club.

Erfahre mehr über Finn und das Team, folge Finn bei LinkedIn, tritt seiner Facebook-Gruppe zu ChatGPT, OpenAI & KI-Tools bei oder mache es wie 17.500+ andere und abonniere seinen KI-Newsletter mit Tipps, News und Angeboten rund um KI-Tools und Online-Business. Besuche auch seinen anderen Blog, Blogmojo, auf dem es um WordPress, Bloggen und SEO geht.