Erläuterung zur Retrieval-Augmented Generation: Behebung von Wissenslücken bei großen Sprachmodellen
Warum KI-Modelle Halluzinationen erzeugen und veralten, und wie retrieval-augmented generation das Schritt für Schritt behebt: Chunking, Embeddings, Informationsabruf sowie Erweiterung des Prompts.
Quellen: What LLMs Often Get Wrong At, And How RAG Cures That
Wo KI-Modelle oft ins Stolpern geraten
Denken Sie an die Abschlussmündlichen Prüfungen. Man lernt in der Nacht vorher alles auswendig, tritt ein, spricht selbstbewusst mit dem Prüfer und hofft, dass alles gut geht. Dann fragt der Prüfer: „Warum haben Sie für Ihr Projekt genau diesen Ansatz gewählt?“ Plötzlich wird es still im Raum.
KI-Modelle stoßen auf dieselbe Hürde.
Sie sind darauf ausgelegt, Antworten zu liefern, die überzeugend klingen. Das bedeutet jedoch oft, dass sie nicht wissen, wie man zugeben soll: „Ich weiß es nicht.“
Ein weiteres Problem sind veraltete Kenntnisse.
Stellen Sie sich vor, derselbe Prüfer fragt:
„Warum haben Sie diese Methode gewählt, obwohl es jetzt eine bessere gibt?“
Dann wüssten Sie nicht weiter.
KI-Modelle stoßen auf genau dieses Problem, sobald die Fakten, mit denen sie trainiert wurden, nicht mehr der Realität entsprechen.
Daher stellt sich die eigentliche Frage: Wie liefern Sie einem KI-Modell die richtigen Fakten – genau dann, wenn es sie braucht?
Einführung in die Retrieval-Augmented Generation
Lassen Sie sich vom Namen nicht abschrecken. Es handelt sich dabei tatsächlich nur um einen einfachen Arbeitsablauf: Die relevanten Informationen werden gefunden, an das Modell übergeben und dieses wandelt sie in eine Antwort um.
Das ist die ganze Idee.
Lassen Sie uns aufschlüsseln, was hinter dieser Beschreibung tatsächlich geschieht.
Formulierung des Problems
Nehmen wir an, Sie entwickeln einen internen KI-Assistenten für ein Unternehmen.
Dieses Unternehmen verfügt über eine Menge Dokumente: ein Mitarbeiterhandbuch, interne FAQs, Sicherheitsrichtlinien und so weiter.
Sobald der Assistent verfügbar ist, werden die Leute ihn natürlich ausprobieren. Jemand gibt ein ein:
"Wie viele Tage Elternurlaub habe ich Anspruch?"
Das Problem ist, dass das Modell keine eingebaute Kenntnis der spezifischen Richtlinien Ihres Unternehmens besitzt. Außerdem können Sie nicht einfach Hunderte langer Dokumente in die Anfrage einfügen und eine klare Antwort erwarten – dadurch besteht das Risiko, das Kontextfenster zu überlasten, das Modell zu verwirren und weitere Probleme zu verursachen.
Wie RAG tatsächlich funktioniert
Anstatt auf das interne Wissen des LLM zur Beantwortung zu vertrauen, holen wir zunächst relevante Materialien aus unserer eigenen Wissensdatenbank. Dieses Material wird anschließend an das LLM weitergeleitet.
Das LLM verwendet diese bereitgestellten Informationen, um seine Antwort zu formulieren.
Anders ausgedrückt muss das Modell nicht alles auswendig lernen – es benötigt lediglich die richtigen Informationen zum richtigen Zeitpunkt.
Das wirft die nächste Frage auf: Wie entscheiden Sie zunächst, was als relevant gilt?
Auswertung
Es wäre verschwenderisch und langsam, jedes Dokument für jede einzelne Frage an das LLM zu senden. Deshalb benötigt man stattdessen eine Methode, um zunächst die relevanten Abschnitte herauszufiltern, da das Jedes Mal Alles durchscannen kostspielig und ineffizient ist.
Dazu werden Dokumente in kleinere Teile aufgeteilt, die als Blöcke bezeichnet werden. Ein Block könnte die Regeln zur Elternzeit behandeln, ein anderer die Sicherheitsverfahren beschreiben und noch einer, wie Ausgaben erstattet werden.
Der richtige Block finden
Ein Benutzer könnte seine Frage so formulieren: "Wie viel Zeit kann ich nach der Geburt eines Kindes nehmen?"
Gleichzeitig könnte das Dokument selbst besagen: "Mitarbeiter haben Anspruch auf 26 Wochen Elternzeit."
Die Formulierung unterscheidet sich, doch die Bedeutung ist identisch. Um diese Lücke zu überbrücken, verlassen sich RAG-Systeme auf Embeddings.
Was Embeddings leisten
Ein Embedding wandelt einen Textabschnitt in eine Reihe von Zahlen um, die seine Bedeutung kodieren. Texte mit ähnlicher Bedeutung liegen in diesem numerischen Raum nah beieinander – gemessen anhand der sogenannten Vektorentfernung, die im Grunde eine Methode ist, um zu quantifizieren, wie weit zwei Vektoren voneinander entfernt sind.
Diese Embeddings befinden sich in einer Vektordatenbank. Wenn eine neue Frage eintrifft, wird auch sie in ein Embedding umgewandelt, und das System sucht nach den am nächsten passenden Abschnitten.
Das Ergebnis ist eine Reihe relevanter Abschnitte, die anschließend als unterstützender Kontext an das LLM weitergeleitet werden.
Augmentation
Sobald die relevanten Abschnitte identifiziert wurden, besteht der nächste Schritt darin, sie miteinander zu kombinieren.
Sie werden zusammen mit der ursprünglichen Frage in das Context-Fenster des LLM eingefügt:
Context:
Employees are entitled to 26 weeks of parental leave.
Question:
How long can I stay away from work after having a baby?
Zu diesem Zeitpunkt hat das LLM alles, was es benötigt, um präzise zu antworten.
Erstellung
Nun kommt der Teil, in dem das LLM hervorragt: die tatsächliche Antwort zu erzeugen.
Es liest sowohl die Frage des Benutzers als auch den abgerufenen Kontext und erstellt anschließend eine Antwort:
"Sie haben Anspruch auf 26 Wochen Elternurlaub."
Dadurch ist der Kreislauf abgeschlossen: Abrufen → Erweitern → Erstellen.
Das Problem
Das LLM kann nur mit jenem Kontext arbeiten, der abgerufen wird. Wenn der falsche Teil des Kontexts herangezogen wird, kann die endgültige Antwort trotz eines korrekten Ablaufs falsch sein.
Betrachten Sie folgendes Szenario:
Frage: „Wie lange dauert der Elternurlaub?“
Ausgegebener Teiltext: „Informieren Sie Ihren Vorgesetzten 30 Tage vor Beginn des Elternurlaubs.“
Ergebnisantwort: Der Assistent teilt dem Mitarbeiter mit, dass er seinen Vorgesetzten einen vollen Monat im Voraus über den Beginn des Elternurlaubs informieren muss – was zwar thematisch relevant ist, aber nicht wirklich beantwortet, wie lange der Urlaub dauert.
Verbesserung der Suchqualität
Wie stellt man sicher, dass im Suchschritt das richtige Material angezeigt wird?
Mehrere Faktoren spielen hier eine Rolle:
Strategie der Teilung in Blöcke: Die Art und Weise, wie Dokumente aufgeteilt werden, bestimmt, ob relevanter Kontext in einem einzigen Block erhalten bleibt.
Qualität der Embeddings: Stärkere Embeddings erleichtern es, die Frage eines Benutzers mit dem Inhalt abzugleichen, der sie tatsächlich beantwortet.
Suchtechnik: Die Kombination einer Suche nach semantischer Ähnlichkeit mit einer herkömmlichen Schlüsselwortsuche hilft dabei, sowohl die Bedeutung als auch die genaue Formulierung zu erfassen.
Neubewertung: Zunächst werden eine Anzahl von Kandidatenblöcken ausgewählt, anschließend erfolgt eine zweite Bewertungsschleife, um die nützlichsten Ergebnisse hervorzuheben.
Das zugrundeliegende Ziel bleibt einfach: den richtigen Kontext dem LLM zur Verfügung zu stellen.
Zusammenfassung
RAG ist kein magischer Trick.
Man findet die richtigen Informationen, gibt sie dem LLM und lässt das Modell die Antwort erzeugen.
Das ist der gesamte Mechanismus.
Das LLM musste nie im Voraus alles wissen.
Es benötigt lediglich den richtigen Kontext zur richtigen Zeit.
Und das ist das grundlegende Prinzip hinter RAG: Schlechte Eingaben führen zu schlechten Ergebnissen, während hochwertige Eingaben zu hochwertigen Ergebnissen führen.
Nun werden Sie jedes Mal, wenn jemand „RAG das, RAG jenes“ erwähnt, genau wissen, wovon er spricht.