Ein Feldverzeichnis von RAG: Von den Grundprinzipien bis zu Produktionsfehlern
Zwei Pipelines, drei Schritte und eine Liste der benannten Fehler: Wie Retrieval-augmented Generation funktioniert, wo sie versagt, und welche Lösungen jedes Problem beheben.
Quellen: The Complete RAG Roadmap: From “What Is It?” to Production
Retrieval-augmented Generation ist einfach zu demonstrieren, aber schwierig richtig umzusetzen. Ein funktionsfähiges Prototyp kann in vierzig Zeilen und an einem Nachmittag entstehen. Danach folgt die lange Phase, herauszufinden, warum das System dreimal von zehn Mal falsch antwortet oder warum ein Chatbot selbstbewusst eine Vertragsklausel zitiert, die nie geschrieben wurde. Dieser Leitfaden behandelt beide Aspekte: Er beginnt ohne jeglichen Fachjargon und endet bei den Techniken, die eine Wochenend-Demo von einem System unterscheiden, dem die Menschen Geld anvertrauen.
Die Idee in einfachen Worten
Stellen Sie sich ein Sprachmodell als gut gebildeten Absolventen vor, der Ihre Dateien noch nie gesehen hat. Es hat einen Großteil des öffentlichen Internets aufgenommen, aber nichts von Ihren Mietverträgen, HR-Richtlinien, Produktkatalogen oder dem Präsentationsmaterial des letzten Quartals.
RAG verwandelt eine Prüfung ohne Hilsmittel in eine Prüfung mit Hilsmitteln. Anstatt davon auszugehen, dass das Modell Ihre Daten auswendig gelernt hat, sucht das System zunächst die relevanten Seiten heraus, übergibt sie dem Modell und weist es an, ausschließlich auf dieser Grundlage zu antworten. Der Name beschreibt drei Schritte:
- Auswählen: Die Dokumente durchsuchen und die wichtigsten Abschnitte herausziehen.
- Erweitern: Diese Abschnitte neben die Frage im Prompt einfügen.
- Erstellen: Das Modell dazu bringen, eine Antwort zu verfassen, die auf den bereitgestellten Informationen beruht.
Das ist die ganze Idee. Jede weitere Verbesserung, sei es durch Neurankierungsverfahren oder Graphen, dient nur dazu, einen dieser drei Schritte zu verbessern.
Für nicht-technische Leser besteht der Vorteil darin, erklären zu können, was ein Ingenieursteam entwickelt, warum es auf die jeweilige Weise versagt und welche Fragen bei einer Demo eines Anbieters gestellt werden sollten. Für Ingenieure sind es die Mechanismen, Kompromisse und Versagensmuster – was bedeutet, dass man fragen muss, warum die Kosinusähnlichkeit eine seltsame Alternative zur Relevanz darstellt, warum 512-Token-Blöcke Tabellen zerstören und warum ein Bewertungssatz wichtiger ist als die Wahl des Modells. Niemand erhält mit „Verwende einfach eine Vektordatenbank“ eine vollständige Antwort.
Zwei Pipelines, nicht einer
Ein struktureller Punkt bereitet fast allen Probleme: Ein RAG-System ist keine einzige Pipeline – es handelt sich um zwei Pipelines, die niemals gleichzeitig laufen.
Spur A führt die Indizierung durch. Dies geschieht im Voraus, in der Regel als Batch-Aufgabe. Dokumente werden in Teile aufgeteilt, jeder Teil wird in eine Liste von Zahlen umgewandelt, die seine Bedeutung erfassen, und diese Zahlen kommen in einen suchbaren Index. Es handelt sich dabei um den langweiligen Prozess, doch genau hier wird etwa 80 Prozent der Qualität der endgültigen Antwort bestimmt.
Spur B führt Abfragen durch. Sie wird jederzeit aktiviert, sobald ein Benutzer eine Frage stellt. Die Frage wird auf exakt dieselbe Weise in Zahlen umgewandelt, die am nächsten liegenden gespeicherten Teile werden gefunden, in einen Prompt eingefügt und anschließend kommt eine Antwort zurück.
Falls sich die beiden Ansätze in der Kodierung nicht einigen, funktioniert nichts – ähnlich wie wenn man Dokumente alphabetisch sortiert und anschließend nach Farbe sucht. Die Leute konzentrieren sich meist auf Lane B, also auf die Anfrage, das Modell und die Temperatur, obwohl die meisten Probleme in Lane A liegen. Das Indexieren wird nur einmal durchgeführt, die Abfragen jedes Mal, und die meisten Fehler verstecken sich in der Lücke dazwischen.
Die Phasen, von den Grundlagen bis zur Produktion
Grundlagen
Das erste Thema betrifft die Ursachen von Halluzinationen – es liegt nicht daran, dass das Modell dumm ist. Zu den damit verbundenen Konzepten gehören, was ein Kontextfenster ist, warum man eine ganze Datenbank nicht einfach hineinkopieren kann und was ein Wissensstopp bedeutet. Dann gibt es die Frage, die oft falsch verstanden wird: RAG, Feinabstimmung und ein größeres Kontextfenster sind drei separate Werkzeuge für drei verschiedene Probleme, werden aber ständig füreinander empfohlen.
Ein Versicherer, dessen Vertragsformulierungen jedes Quartal geändert werden, zeigt den Unterschied. Eine Feinabstimmung würde bedeuten, jedes Quartal neu zu trainieren. RAG bedeutet hingegen lediglich das Aktualisieren einer Dateiordner.
Einlesen und Aufteilen in Blöcke
Das Einbringen von Dokumenten stellt bereits eine eigene Herausforderung dar: PDFs, die eigentlich gescannte Bilder sind, Tabellen, Überschriften, Fußnoten sowie ein 40-seitiger Anhang, den niemand benötigt. Danach kommt das Aufteilen in Blöcke – die Entscheidung, wie ein Dokument in Teile zerlegt wird. Das klingt trivial, ist es aber nicht. Wird der Block zu klein, lautet der Inhalt beispielsweise „Die Kaution ist erstattungsfähig“, ohne Angabe der Bedingungen. Wird der Block zu groß, ertrinkt das Modell im Rauschen. Die wichtigsten Methoden sind das Aufteilen in feste Größen, das berücksichtigungssensitive Vorgehen sowie das rekursive Aufteilen, ergänzt durch ein Überlappungsverfahren, das verhindert, dass Sätze abgeschnitten werden.
Nehmen wir einen 60-seitigen Mietvertrag, dessen Strafklausel von einer Definition abhängt, die 40 Seiten zuvor gegeben wurde. Die Grenzen der Blöcke entscheiden darüber, ob diese Verbindung erhalten bleibt.
Embeddings und Vektorabfrage
Diese Phase wirkt wie Magie, ist es aber nicht. Der Text wird in eine Liste von Zahlen umgewandelt, die so angeordnet sind, dass ein Satz über die Stornierung einer Bestellung in der Nähe eines Satzes über die Rückgabe eines Kaufs liegt und weit entfernt von einem Satz über den Bestellvorgang von weiterem Lagerbestand. Zu den damit verbundenen Konzepten gehören Dimensionen, Kosinusähnlichkeit sowie die Tatsache, dass Nähe im Vektorraum keine Garantie für eine Antwort bietet.
Danach kommt die Speicherung: Was eine Vektordatenbank tatsächlich tut, warum die brute-force-Abfrage bei großen Mengen versagt und was bei einer annähernden Nachbarnsuche zum Zweck der Geschwindigkeit geopfert wird.
Der Abrufzyklus
Hier werden die Teile zusammengesetzt. Die Auswahl von „top-k“, also der Anzahl der zu abrufenden Abschnitte, ist dabei ein Bestandteil – mehr ist nicht besser. Das Filtern von Metadaten ermöglicht es, eine Suche auf nur 2024 Dokumente oder nur auf die Region Mumbai zu beschränken. Auch die Zusammenstellung der Anfragen ist wichtig, denn die Art und Reihenfolge, wie der abgerufte Kontext angeordnet wird, beeinflusst die Antwort.
Daraufhin folgen Grundlagenangaben und Zitate. Das Modell sollte auf etwas wie Abschnitt 4.2 verweisen und nicht einfach nur selbstsicher klingen. Ebenso wichtig ist es, dass es angibt, dass die Antwort nicht in den Dokumenten zu finden ist – vermutlich die am meisten unterschätzte Funktion jedes RAG-Systems.
Bewertung
Fast jeder überspringt diese Phase, was erklärt, warum fast jeder fehlerhafte RAG-Systeme bereitstellt. Ein Problem, das nicht gemessen wird, kann nicht behoben werden. Die Qualität lässt sich in zwei Fragen einteilen: Wurde das richtige Material abgerufen, und blieb das Modell dabei treu? Jede dieser Aspekte versagt für sich allein und erfordert eine eigene Korrektur. Das Werkzeugset umfasst eine optimale Reihe von Testfragen aus echten Anwendungen, die Abfrageleistung wird anhand von Präzision und Erinnerung bewertet, die Generierungleistung anhand von Treue und Relevanz zur Frage, sowie ein LLM als Richter, der darauf achtet, wo dieser Ansatz fehlschlägt.
Ein System erzielte 90 % bei der Abfrageleistung und 55 % bei der Treue der Antworten. Die Suche funktionierte gut, doch die Antworten waren dennoch falsch.
Upgrade-Möglichkeiten – jeweils mit einem Versagen verbunden
Bessere Abfragefunktionen
Die hybride Suche kombiniert suchbasierte Abfragen mit herkömmlicher Schlüsselwortabgleich-Methodik, da Embeddings mit präzisen Identifikatoren wie Modellnummern und Rechnungsnummern nur sehr schlecht umgehen können. Die Neubewertung liefert kostengünstig 50 Kandidaten, anschließend wählt ein langsamerer, intelligenterer Algorithmus die besten 5 aus. Die Abfragedurchführung umformt eine vage Frage in eine suchbare, teilt eine zusammengesetzte Frage in Teile auf oder verwendet HyDE, welches eine falsche, ideale Antwort erzeugt und mit dieser anstelle der ursprünglichen Frage sucht.
Eine Anfrage, zwei Projekte in Bangalore nach dem Besitzdatum und dem Preis zu vergleichen, ist eine einzige Frage, die drei separate Abfragen erfordert.
Besseres Indexieren
Die ordnungsgemäße Bearbeitung von Lane A erfordert verschiedene Techniken. Suchvorgänge im Eltern-Kind-Verhältnis durchsuchen kleine, präzise Abschnitte, liefern dem Modell jedoch auch den größeren Bereich darum herum. Semantisches Chunking erfolgt an Stellen, an denen sich das Thema ändert, und nicht nach einer willkürlichen Zeichenzahl. Zusammenfassungen sowie hierarchische Indizes durchsuchen zunächst Dokumentzusammenfassungen und gehen anschließend tiefer in die Details. Graph RAG speichert Beziehungen zwischen Entitäten – nicht nur Text –, sodass es Fragen wie „Welche Lieferanten sind auch Kunden?“ beantworten kann.
Ein Compliance-Fragefall ist ein gutes Beispiel: Er erfordert eine Regel, ihre Änderung aus dem Jahr 2023 sowie eine Bemerkung zu Ausnahmen – insgesamt drei Dokumente für eine Antwort.
Agentenbasiertes Verhalten
Ab diesem Punkt ist RAG nicht mehr ein fester Ablauf und beginnt, Entscheidungen zu treffen. Die Routierung leitet eine Frage an den richtigen Index, an eine SQL-Datenbank oder gar nicht zur Abrufung weiter. Die mehrstufige Abrufmethode liest den Inhalt, erkennt eine Lücke und ruft erneut ab. Self-RAG und Corrective RAG ermöglichen es dem System, den selbst abgerufenen Kontext zu bewerten und ihn bei Unrelevanz auszuschließen, um anschließend auf eine Websuche zurückzugreifen oder ehrlich zuzugeben, dass es keine Antwort hat.
Nehmen wir eine Frage dazu, warum eine Anmeldung abgelehnt wurde. Um diese zu beantworten, werden nacheinander die Richtlinien, die Anmeldedatei und der Ablehnungscode abgerufen.
Unübersichtliche Dokumente
Reales Geschäftswissen zeigt sich selten in ordentlichen Absätzen. Es kommt in Form von Tabellenkalkulationen, Scans, Grundrissen, Screenshoten und Diagrammen. Zu den erforderlichen Fähigkeiten gehören das layoutorientierte Auswerten, die Extraktion von Tabellen auch bei zusammengeführten Zellen, das Einbetten von Bildern sowie die Suche in Dokumenten, in denen eine Grafik die Antwort enthält. Ein typisches Beispiel ist eine Preisfrage, deren Zahl nur in einer gescannten Preisliste vorhanden ist.
Produktionsbedingte Aspekte
Alles funktioniert nach der Demonstration nicht mehr richtig. Die Latenzwerte zeigen, wohin die Millisekunden verschwinden. Die Kosten pro Abfrage sind wichtig, genauso wie ein Caching-System, das tatsächlich hilft. Der Index muss stets aktuell bleiben, wenn sich die Dokumente stündlich ändern. Die Zugriffskontrolle muss sicherstellen, dass Benutzer A nicht an die Daten von Benutzer B gelangen kann – das ist ein häufiges und reales Sicherheitsproblem. Vergiftete Dokumente können manipulative Anweisungen einfügen. Überwachung und Protokollierung zeigen an, wann die Qualität stillschweigend nachlässt. Ein System, das mit 200 Dokumenten einwandfrei funktionierte, kann bei 200.000 Dokumenten zusammenbrechen.
Lernen Sie zuerst die Fehler kennen
Falls nur ein Punkt im Gedächtnis bleiben soll, dann dieser: Fortgeschrittenes RAG ist keine verbesserte Version von grundlegendem RAG. Es handelt sich um eine Reihe von Korrekturen, jede für einen bestimmten Fehler mit einem eigenen Namen. Sobald der Fehler verstanden ist, ist die Abgleichstechnik der logische nächste Schritt.
Drei Prinzipien sorgen dafür, dass dieser Ansatz zuverlässig bleibt:
- Keine Verehrung von Frameworks. Konzepte kommen vor Tools, und jeder, der das Prinzip des Aufteilen versteht, kann es überall umsetzen.
- Kein unerklärter Kopier-Einfügen-Code. Code wird nur dann gezeigt, wenn der Grund für seine Gestaltung klar ist.
- Kein Vortäuschen, es funktioniere immer. In einigen Fällen ist RAG die falsche Lösung – einfache Methoden sind dann besser.
Anfänger sollten die Themen in der Reihenfolge durchgehen, da jedes auf dem vorherigen aufbaut. Wer bereits ein System hat, das Enttäuschungen bereitet, kann direkt zur Bewertungsphase übergehen.
Verwandte Literatur
- Praktische Anleitungen: RAG in die Produktion bringen – End-to-End-Probleme aus der Praxis — Detaillierte Anleitung zu den praktischen Anleitungen „RAG in die Produktion bringen – End-to-End-Probleme aus der Praxis“, einschließlich Verträgen, Überprüfungen sowie Code-Blöcken für Teams, die dieses Muster einsetzen.
- Hybride Suche in Postgres für einen Gesundheitsassistenten: Schema, Chunking, RRF und Bewertung — Aufbau der Suchschicht für einen Gesundheitsassistenten in Postgres: strukturbezogenes Chunking, hybride Suche mit pgvector und RRF, binäre Quantisierung, Schwellenwerte sowie Bewertungsmethoden.