Was ist RAG?
RAG steht für Retrieval-Augmented Generation — eine Technik, mit der LLMs auf Wissen zugreifen können, das nicht in ihrem Training steckt. Statt die Frage einfach an das Modell zu schicken, sucht man zuerst passende Textstücke in einer eigenen Wissensbasis und legt sie als Kontext bei.
Die Kurzfassung: „Antworte mir, aber benutze dafür diese Dokumente hier.“
Warum nicht einfach finetunen?
- Aktualität — neue Dokumente landen in der Datenbank, nicht im teuren Trainingslauf.
- Quellen-Nachweis — das Modell kann sagen, woher es eine Information hat.
- Halluzinationen senken — wenn das relevante Dokument dabeiliegt, ist Erfinden weniger attraktiv.
- Rechte & Privatsphäre — Firmendokumente bleiben im eigenen System, nicht im Modellgewicht.
Die Pipeline grob
1
Frage entgegennehmen
Nutzer-Input wird zum Suchstart.
2
Retrieve
Wissensbasis nach den k ähnlichsten Textstücken durchsuchen (meist via Embeddings).
3
Augment
Gefundene Stücke werden in den Prompt eingebaut als Kontext.
4
Generate
LLM antwortet — idealerweise basierend auf dem Kontext.
Warum eigentlich? — Warum gerade Embeddings?
Embeddings übersetzen Text in Zahlenvektoren, bei denen die Bedeutung in der Geometrie steckt: ähnliche Texte liegen nah beieinander, auch wenn sie völlig unterschiedliche Wörter benutzen. „Auto“ und „Fahrzeug“ sind in klassischer Volltextsuche zwei verschiedene Tokens — im Embedding-Raum liegen sie fast aufeinander.
Häufiger Denkfehler — Häufiger Denkfehler
RAG ist kein Garant gegen Halluzinationen. Wenn die Wissensbasis schlecht ist (veraltet, widersprüchlich, unvollständig) oder das Retrieval die falschen Stücke holt, halluziniert das Modell trotzdem — nur jetzt mit scheinbarer Quellenangabe. Garbage in, confident garbage out.
Tiefer rein — Wo RAG schwierig wird
- Mehrhopfen-Fragen — „Welche Mitarbeiter haben sowohl Projekt X als auch Y bearbeitet?“ lässt sich nicht aus einer Ähnlichkeitssuche extrahieren.
- Tabellen & strukturierte Daten — Embeddings sind für Fließtext optimiert, nicht für SQL-artige Joins.
- Zeitliche Reasoning — „Was war der letzte Stand vor dem 1. März?“ braucht Metadaten-Filter, nicht Vektor-Ähnlichkeit.