Embeddings sind Vektoren, also Listen von Zahlen, die die Bedeutung eines Stücks Inhalt repräsentieren. Ein Text wird in eine Folge von oft 768 bis 3.072 Zahlen umgewandelt. Ähnliche Inhalte ergeben ähnliche Vektoren, ungleiche Inhalte sehr unterschiedliche. Damit lassen sich Bedeutungen mathematisch vergleichen, das Fundament für RAG, semantische Suche, Empfehlungen und mehr.
Wie funktionieren Embeddings?
Ein Embedding-Modell ist ein neuronales Netz, das Inhalte (typisch Text) liest und am Ende einen Vektor ausgibt. Während des Trainings hat es gelernt, dass Texte mit ähnlicher Bedeutung im Vektorraum nahe beieinander liegen sollen. "Hund" und "Welpe" werden ähnlich dargestellt, "Hund" und "Tabellenkalkulation" weit voneinander entfernt.
Die Distanz zwischen zwei Vektoren misst man oft mit der Cosinus-Ähnlichkeit (zwischen -1 und 1, höher bedeutet ähnlicher) oder dem Dot-Product. Diese Berechnung ist mathematisch simpel und sehr schnell, deshalb skalieren Embedding-basierte Systeme gut auf grosse Datenmengen.
Es gibt spezielle Embedding-Modelle (etwa text-embedding-3 von OpenAI, Cohere Embed, Voyage AI). Sie sind kleiner und günstiger als reine LLMs und genau auf das Erzeugen guter Vektoren optimiert.
Wofür werden Embeddings genutzt?
- Semantische Suche: Treffer auch ohne exakte Stichwörter
- RAG-Systeme: Relevante Kontext-Stellen für KI-Antworten finden
- Empfehlungen: Ähnliche Produkte, Songs oder Artikel
- Clustering: Inhalte automatisch in Gruppen sortieren
- Klassifikation: Texte einer Kategorie zuordnen, ohne neues Modell zu trainieren
- Duplikat-Erkennung: Sehr ähnliche Inhalte aufspüren
- Personalisierung: Nutzerprofile als Vektor und passende Inhalte matchen
Embeddings und VibeCoding
Wenn du Apps mit eigenen Daten und KI bauen willst, kommst du an Embeddings nicht vorbei. Mit Claude Code, der OpenAI-API und einer Vector Database wie Supabase pgvector hast du in wenigen Stunden ein lauffähiges System.
Wichtig: Embeddings sind nicht das Modell selbst, das auch Antworten erzeugt. Du brauchst meist beides, ein Embedding-Modell für die Suche und ein LLM für die finale Antwort. Diese Trennung sorgt für Kosten- und Geschwindigkeits-Effizienz: Embeddings sind günstig pro Aufruf, das eigentliche Antwortmodell ist teurer und wird nur einmal pro Anfrage gebraucht.
Beispiel
Du baust einen Notiz-Assistenten. Jede neue Notiz wird automatisch durch ein Embedding-Modell geschickt. Der Vektor landet zusammen mit dem Notiz-Text in deiner Supabase-Tabelle. Bei einer Suche oder einem Chat erzeugst du einen Vektor der Anfrage und findest die fünf ähnlichsten Notizen. Diese fünf Notizen schickst du als Kontext an Claude, das daraus eine Antwort baut. Diese ganze Pipeline ist eine klassische RAG-Architektur, basierend auf Embeddings.
Hinweise
Wähle ein Embedding-Modell und bleib dabei. Wechselst du es, musst du alle Daten neu embedden. Die Dimension des Vektors (zum Beispiel 1536) ist Modellspezifisch. Achte auch darauf, wie viel Text pro Embedding sinnvoll ist (oft "Chunks" von 200-500 Wörtern), zu lange Texte verlieren Bedeutung, zu kurze Texte verlieren Kontext.
Embeddings sind nicht reversibel im klassischen Sinn, aber Forschungen zeigen, dass sich aus Embeddings teilweise Originalinhalte rekonstruieren lassen. Für sensible Daten gehe damit also wie mit Klartext um.