Embeddings
Bedeutung als Richtung im Raum: wie aus Wörtern, Sätzen und Bildern Vektoren werden, wofür man sie benutzt und wo die Ähnlichkeit trügt.
Die Idee
Jedes Wort, jeder Satz, jedes Bild bekommt einen Punkt in einem Raum mit hunderten Dimensionen. Dinge, die einander ähneln, liegen nahe beieinander. Damit wird die Frage „was ist ähnlich?" zu einer Abstandsmessung.
Wozu es gut ist
- Suche ohne exakte Stichwörter.
- Doppelte Einträge finden.
- Texte gruppieren und sortieren.
- Grundlage jeder RAG-Anwendung.
Die Arten
| Art | Was eingebettet wird | Beispielverwendung |
|---|---|---|
| Wortembedding | Ein Wort, unabhängig vom Satz | Klassische Textanalyse |
| Kontextembedding | Ein Token im Satzzusammenhang | Innerhalb eines Sprachmodells |
| Satz- oder Absatzembedding | Ein ganzer Textabschnitt | Suche, RAG, Gruppierung |
| Bildembedding | Ein Bild | Bildsuche, Duplikaterkennung |
| Gemeinsames Bild-Text-Embedding | Beides im selben Raum | Suche über Modalitäten hinweg |
import numpy as np
def normieren(v):
# Nach dem Normieren ist das Skalarprodukt gleich der Kosinusaehnlichkeit.
return v / np.linalg.norm(v, axis=-1, keepdims=True)
E = normieren(np.random.default_rng(0).normal(size=(5, 384)))
frage = normieren(np.random.default_rng(1).normal(size=(384,)))
scores = E @ frage
print(np.argsort(scores)[::-1][:3], np.sort(scores)[::-1][:3].round(3))- Immer normieren, bevor gespeichert oder verglichen wird.
- Denselben Präfix verwenden, den das Modell im Training benutzt hat; viele Modelle unterscheiden zwischen Frage- und Dokumentembeddings.
- Die Modellversion mitspeichern. Ein Modellwechsel macht den gesamten Index ungültig.
Wie sie trainiert werden
Die Qualität hängt stark davon ab, wie schwer die Gegenbeispiele sind. Zufällige Gegenbeispiele sind zu leicht: Ein Modell lernt daraus nur, Themen grob zu trennen. Der eigentliche Hebel sind harte Gegenbeispiele: Dokumente, die ähnlich aussehen und trotzdem falsch sind.
Die Dimension als Kompromiss
| Dimension | Speicher je 1 Mio. (float32) | Typische Güte |
|---|---|---|
| 384 | 1,5 GB | Für die meisten Anwendungen ausreichend |
| 768 | 3,1 GB | Etwas besser, üblicher Standard |
| 1.536 | 6,1 GB | Selten messbar besser |
| 3.072 | 12,3 GB | Nur bei sehr großen, heterogenen Beständen |
Verfahren mit gestaffelter Darstellung erlauben, einen langen Vektor an einer beliebigen Stelle abzuschneiden und dabei den größten Teil der Güte zu behalten. Damit lässt sich zweistufig suchen: grob mit 128 Dimensionen über den ganzen Bestand, fein mit 768 über die besten Tausend.
Der datenschutzrechtliche Punkt
Ein Embedding ist keine Anonymisierung. Zwei Angriffe sind praktisch durchführbar:
- Inversion. Aus einem Satzembedding lässt sich der Ausgangstext näherungsweise rekonstruieren, bei kurzen Texten oft nahezu wörtlich.
- Zugehörigkeit. Aus der Nähe zu einem bekannten Vektor lässt sich ableiten, ob ein bestimmtes Dokument im Bestand ist.
Für die Praxis folgt daraus: Der Vektorindex unterliegt denselben Schutzpflichten wie der Ausgangsbestand, einschließlich Löschung und Auskunft. Siehe Vektordatenbanken.
Passende Kurse und Quellen
Efficient Estimation of Word Representations
Die Arbeit, die Wörter erstmals als Vektoren mit rechenbarer Bedeutung etablierte. Der Ursprung aller Einbettungen.
Der Ursprung aller Einbettungen; kurz und bis heute erhellend.
Essence of Linear Algebra
Fünfzehn kurze Filme, die zeigen, was eine Matrix mit dem Raum macht. Wer Vektoren bisher nur als Zahlenlisten kannte, sieht danach etwas anderes.
Für alle, die Vektoren bisher nur als Zahlenlisten kannten und eine Anschauung brauchen.
Learning Transferable Visual Models
Bilder und Texte in einem gemeinsamen Raum. Die Grundlage der Suche nach Bildern per Beschreibung und der Bildgenerierung.
Für das Verständnis von Bildsuche über Beschreibungen und von Bildgenerierung.
Retrieval-Augmented Generation
Die Arbeit, die Abruf und Erzeugung verbunden hat. Der Ursprung des Musters, mit dem eigene Dokumente belegbar nutzbar werden.
Für alle, die eigene Dokumente nutzbar machen wollen; der Ursprung des Musters.