HerrKI mit seinem RoboterHerrKI KI verstehen · nachbauen · anwenden ⭐ 0 XP

Embeddings in der Praxis: Semantische Suche & RAG

Warum die KI „Fahrzeug“ findet, wenn du „Auto“ tippst: Durchsuche ein Firmen-Handbuch einmal mit Stichwörtern und einmal mit Bedeutungs-Vektoren — und sieh, wie RAG daraus Antworten baut.

👋 HerrKI hier — heute wird der Latent Space zum nützlichsten Werkzeug im Büro

In „Latent Space“ hast du gesehen: ähnliche Bedeutung = nahe Punkte. Heute baust du damit das, was 2026 in fast jeder Firma läuft: semantische Suche — und darauf RAG, den Trick, mit dem Chatbots plötzlich DEINE Dokumente kennen.

Das Problem mit der Stichwortsuche

Klassische Suche vergleicht Buchstaben: Steht „Auto“ nicht im Text, findet sie nichts — auch wenn dort „Fahrzeug“, „Dienstwagen“ oder „PKW“ steht. Menschen meinen Bedeutungen, Computer vergleichen Zeichenketten. Die Lösung kennst du schon: Mach aus Sätzen Punkte im Latent Space — dann ist „ähnliche Bedeutung“ einfach „kleiner Abstand“.

🔍 Durchsuche das Handbuch der (fiktiven) Nordwind GmbH — 25 Sätze, zwei Suchverfahren

🧭 Semantische Suche (Bedeutungs-Vektoren)

🔤 Stichwortsuche (Wort-Treffer)

Und daraus wird RAG

Retrieval-Augmented Generation heißt nur: erst suchen, dann antworten lassen.

1Frage → Vektor — deine Frage wird zum Punkt im Latent Space

2Nächste Nachbarn holen — die 3–5 ähnlichsten Absätze aus der Wissensdatenbank

3In den Prompt packen — „Beantworte die Frage NUR mit diesen Absätzen: …“

4Antwort mit Quelle — das Modell formuliert, die Fakten kommen aus DEINEN Dokumenten

📦 Der häufigste RAG-Anfängerfehler: zu große Textblöcke

Die Wissensdatenbank wird in „Absätze“ (Chunks) geschnitten. Stell ein, wie viele Sätze in einen Block wandern — und beobachte, was mit dem besten Treffer für „Mein Auto springt nicht an“ passiert:

1

🔬 Runter zum Tensor

Die ganze Magie ist ein Skalarprodukt (Kapitel 060) — und das rechnen wir jetzt mit deiner Auto-Frage von oben einmal von Hand nach. Die Sätze dieses Moduls haben acht Bedeutungs-Achsen; wir nehmen die drei, auf die es hier ankommt:

// Zum Mitrechnen auf 3 Achsen verkleinert — echte Embeddings haben 384 bis 1536. Fahrzeug Notfall Urlaub Frage „Auto springt nicht an" 1.0 0.6 0.0 Satz 6 „Panne mit dem Dienstwagen" 1.0 0.7 0.0 Satz 1 „Urlaubsanträge stellen Sie" 0.0 0.0 0.9

Erst Achse für Achse multiplizieren und aufaddieren, dann durch die Vektor-Längen teilen — damit lange und kurze Sätze fair verglichen werden. Das ist die Kosinus-Ähnlichkeit:

Frage · Dienstwagen-Panne = 1.0×1.0 + 0.6×0.7 + 0.0×0.0 = 1.42 Längen: √(1.0²+0.6²) = 1.166 √(1.0²+0.7²) = 1.221 1.42 / (1.166 × 1.221) = 0.997 → 100 % ✅ Volltreffer Frage · Urlaubsantrag = 1.0×0.0 + 0.6×0.0 + 0.0×0.9 = 0.00 0.00 / irgendwas = 0.00 → 0 % ❌ nichts gemeinsam

Kein einziges Wort ist gleich — „Auto“ steht in keinem der 25 Sätze. Trotzdem 100 %: Verglichen wurden Richtungen im Raum, nicht Buchstaben. Und so heißt dasselbe im Code, wo jeder Satz [384] lang ist und die ganze Wissensdatenbank eine Matrix [25, 384] bildet:

// Jeder Satz wurde EINMAL vorab in einen Vektor verwandelt (Embedding-Modell). const frageVektor = embed("Mein Auto springt nicht an"); const aehnlichkeit = frageVektor.dot(satzVektor) // oben: 1.42 .div( normFrage.mul(normSatz) ); // oben: 1.166 × 1.221 → 0.997

Kein Verstehen, kein Nachdenken — Vektoren vergleichen. Deshalb ist die Suche auch in Millionen Dokumenten in Millisekunden fertig.

Zurück zur Anwendung — und die ehrlichen Grenzen

⚠️ RAG dämpft Halluzinationen, es heilt sie nicht (Kapitel „Halluzinationen“): Findet die Suche die falschen Absätze, formuliert das Modell aus falschem Material trotzdem eine schöne Antwort. Und wie du oben gesehen hast, hängt die Trefferqualität fast immer an der Aufbereitung der Dokumente (Blockgröße, saubere Texte) — nicht am Sprachmodell. Wer RAG verbessern will, arbeitet zu 80 % an den Daten.

🧠 Kurzer Check — hast du es?

1. Warum findet die semantische Suche „Dienstwagen-Panne“, wenn du „Auto springt nicht an“ fragst?
2. Was macht RAG mit den gefundenen Absätzen?
3. Was passiert bei zu großen Text-Blöcken (Chunks)?