· Bedeutung als Vektor

Embeddings: Wie KI Bedeutung in Zahlen speichert

Embeddings sind die stille Technologie hinter Semantic Search, RAG und Empfehlungssystemen. Sie wandeln Text in Vektoren um – so dass ähnliche Bedeutungen nah beieinanderliegen, egal welche Wörter verwendet werden.

Zuletzt aktualisiert:

VektorenSemantic Searchnomic-embedSentence TransformersCosine Similarity

Was sind Embeddings – und warum sind sie wichtig?

Ein Embedding ist eine Zahl-Darstellung von Text (oder Bild, Audio, ...) in einem hochdimensionalen Raum. Ein modernes Embedding-Modell wandelt „Katze auf der Matte" in einen Vektor aus z.B. 768 Zahlen um – so dass dieser Vektor nah am Vektor für „Tier liegt auf dem Boden" liegt, obwohl die Wörter völlig verschieden sind.

Das ist die Grundlage für:

  • Semantic Search: Suche nach Bedeutung statt nach exakten Wörtern
  • RAG-Systeme: Dokumente finden die zu einer Frage passen
  • Clustering: Ähnliche Texte automatisch gruppieren
  • Duplikaterkennung: Semantisch gleiche Inhalte finden trotz anderer Formulierung

Die Ähnlichkeit zweier Vektoren wird meist mit Cosine Similarity gemessen: 1.0 = identisch, 0.0 = völlig verschieden, –1.0 = gegenteilig.

Embedding-Modelle: Welches für welchen Einsatz?

Für lokale Setups gibt es hervorragende kostenlose Modelle. Meine Empfehlungen:

  • nomic-embed-text (via Ollama): Einfachster Start – ein Befehl, läuft lokal, 768 Dimensionen, sehr gute deutschsprachige Performance. Standard für lokale RAG-Setups.
  • all-MiniLM-L6-v2 (sentence-transformers): Klein (23 MB), schnell, gut für englische Texte. Via Python ohne Ollama nutzbar.
  • multilingual-e5-large: Wenn mehrsprachige Dokumente verarbeitet werden sollen – unterstützt 100+ Sprachen.
  • text-embedding-3-small (OpenAI): Cloud-Option mit ausgezeichneter Qualität, aber Datenweitergabe und Kosten per Token.
# Embeddings mit Ollama import ollama, numpy as np def embed(text): return ollama.embeddings(model="nomic-embed-text", prompt=text)["embedding"] def cosine(a, b): return np.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b)) v1 = embed("Katze schläft") v2 = embed("Tier ruht sich aus") v3 = embed("Docker Container starten") # Ergebnis: v1/v2 ~0.85, v1/v3 ~0.12

Embeddings in eigenen Projekten einsetzen

Der häufigste Einsatz ist als Teil eines RAG-Systems. Aber Embeddings haben weitere praktische Anwendungen:

  • Intelligente Suche: Statt Volltextsuche in einer Datenbank – semantische Suche über PostgreSQL mit pgvector-Extension
  • Duplikatfilter: Bevor ein Dokument indexiert wird, prüfen ob ein sehr ähnliches schon existiert (Cosine Similarity > 0.95)
  • Clustering in Automatisierungen: Eingehende Nachrichten nach Bedeutung gruppieren – auch wenn die Wording-Variationen groß sind
  • Empfehlungen: „Ähnliche Artikel" oder „verwandte Notizen" auf Basis von Vektorähnlichkeit

In n8n gibt es Embedding-Nodes die direkt mit Ollama oder OpenAI kommunizieren und das Ergebnis in Vektordatenbanken wie Qdrant oder Pinecone schreiben.

Häufige Fragen zu Embeddings

Ein Embedding-Modell wandelt Text in einen Vektor um – keine Generierung, nur Repräsentation. Ein LLM generiert neuen Text. Für RAG braucht man beides: Embedding-Modell für Indexierung und Suche, LLM für die Antwortgenerierung.

Für die meisten Anwendungen reichen 384–768 Dimensionen. Mehr Dimensionen bedeuten mehr Ausdruckskraft aber auch mehr Speicherbedarf. nomic-embed-text mit 768 Dimensionen ist ein sehr guter Kompromiss für lokale Setups.

nomic-embed-text und multilingual-e5 funktionieren sehr gut auf Deutsch. all-MiniLM ist primär auf Englisch optimiert. Für gemischtsprachige Dokumente: multilingual-e5-large oder nomic-embed-text verwenden.

Ja – Embeddings verschiedener Modelle sind nicht kompatibel, auch wenn beide „768 Dimensionen" haben. Bei einem Modellwechsel müssen alle Dokumente neu indexiert werden. Deshalb Modellwahl früh festlegen und in der Konfiguration dokumentieren.

Fragen per WhatsApp