Wie Sprachmodelle externe Dokumentenbäsen durchsuchen, um präzisere und aktuellere Antworten zu generieren
RAG erweitert das Wissen von LLMs über ihr Training hinaus. Statt alle Fakten in den Modellgewichten zu speichern, werden relevante Dokumente zur Laufzeit abgerufen und dem Kontext hinzugefügt. Das reduziert Halluzinationen und ermöglicht aktuelle Informationen.
RAG ist die praktische Anwendung der Kontext-Mechanismen: Lange Kontextfenster ermöglichen mehr abgerufene Dokumente, und effiziente KV-Caches machen das wirtschaftlich.
ChatGPT mit Browsing, Claude mit Document-Upload, und jede Enterprise-LLM-Anwendung nutzt RAG. Es ist die Brücke zwischen statischem Modellwissen und dynamischen Datenquellen.
Große Sprachmodelle werden auf Daten bis zu einem bestimmten Datum trainiert. Diese Modelle haben nicht automatisch Zugang zu neuesten Informationen, firmeneigenen Dokumenten oder spezialisierten Datenbanken.
Wenn sie Fragen zu Informationen außerhalb ihres Trainingsdatensatzes beantworten müssen, neigen sie zu Halluzinationen – plausibel klingende, aber falsche Antworten.
Lösung: Retrieval-Augmented Generation (RAG) kombiniert die Kraft von Sprachmodellen mit externen Wissensbäsen. Das Modell kann relevante Dokumente abrufen und seine Antwort darauf basieren.
Der Prozess beginnt mit einer Benutzer-Frage. Diese Frage wird in die gleiche Vektordarstellung transformiert wie die Dokumente in der Datenbank.
Hinweis: Die Frage ist zu diesem Zeitpunkt noch nur Text – kein numerischer Vektor.
Ein Embedding-Modell konvertiert die Frage in einen hochdimensionalen Vektor. Dieser Vektor kappt die semantische Bedeutung der Frage in einem Vektor-Raum.
• Sentence-BERT (384-768 dims)
• Multilingual E5 (1024 dims)
• nomic-embed-text (768 dims)
Query und Dokumente müssen mit dem gleichen Modell eingebettet werden, um vergleichbar zu sein.
Die Vektor-Datenbank berechnet die Ähnlichkeit zwischen dem Query-Vektor und allen gespeicherten Dokument-Vektoren. Dies geschieht durch Distanzmetriken wie Cosine Similarity.
Komplexität: O(n) mit Linearsuche oder O(log n) mit indexierten Strukturen (z.B. FAISS, Annoy).
Nach dem Retrieval werden die Top-k Dokumente (meist k=3-5) nach Ähnlichkeit sortiert. Optional folgt ein zweites Ranking mit einem Cross-Encoder für genauere Ordnung.
Semantische Ähnlichkeit. Erfasst Synonyme, aber verpasst exakte Matches ("Error TS-999").
Keyword-basiert. Erfasst exakte Matches, aber verpasst Synonyme.
Der ursprüngliche Prompt wird mit den abgerufenen Dokumenten erweitert. Das Modell erhält jetzt Kontext, um eine informierte Antwort zu geben.
Token-Overhead: 3-5 Dokumente à 256-512 Tokens = 800-2560 zusätzliche Tokens pro Query.
Das Sprachmodell generiert eine Antwort basierend auf dem augmentierten Prompt. Die Antwort sollte präziser und aktueller sein, da sie auf externen Quellen basiert.
✓ Aktuelle Infos
✓ Quellenangaben
✓ Weniger Halluzinationen
✗ Latenz (Retrieval)
✗ Fehlerhafte Chunks
✗ Lost-in-the-Middle
Moderne RAG-Systeme kombinieren mehrere Techniken für bessere Ergebnisse:
| Technik | Ansatz | Vorteile | Nachteile |
|---|---|---|---|
| Dense | Semantische Vektoren | Synonyme erfasst | Exakte Matches verpasst |
| Sparse (BM25) | Keyword-Matching | Exakte Matches | Synonyme verpasst |
| Hybrid | Dense + Sparse kombiniert (RRF) | Beide Vorteile | Komplexere Implementierung |
| Reranker | Cross-Encoder auf Top-k | Präziseres Ranking | Zusätzliche Latenz |
Faszinierend: Sprachmodelle attendieren oft nicht zur Mitte der Kontexte. Relevante Informationen in der Mitte können ignoriert werden.
Lösung: Kritische Dokumente am Anfang oder Ende platzieren. Alternativ: "Found-in-the-Middle" Techniken wie Dokument-Reorderung.
Hier ist ein vereinfachtes Beispiel einer RAG-Implementierung:
RAG ist ideal für:
RAG ist nicht ideal für: