Konzept-Guide

Retrieval-Augmented Generation (RAG)

Fragst du eine KI nach den Regeln deiner Firma oder nach den Nachrichten der letzten Woche, bekommst du manchmal eine Antwort, die richtig klingt, aber falsch ist. RAG löst das, ohne das Modell neu zu trainieren: Bei jeder Frage sucht es die nötigen Dokumente heraus und schickt sie mit. In KI-Zertifizierungsprüfungen kommt das Thema häufig vor.

01

Wenn du eine KI etwas fragst, das sie nicht weiß

Eine Firma baut einen internen Chatbot, der die Fragen der Mitarbeitenden beantwortet. Jemand fragt:

Wie viel darf das Hotel pro Nacht auf einer Dienstreise nach München kosten?

In der Reiserichtlinie der Firma steht: „Übernachtung: bis 120 € pro Nacht, außer München und Frankfurt: 150 €.“ Der Chatbot antwortet aber: „Bis 100 € pro Nacht.“ Wie kommt das?

Im Chatbot steckt ein großes Sprachmodell (LLM). Ein LLM hat aus riesigen Mengen öffentlicher Texte gelernt, etwa aus Webseiten und Büchern. Zwei Dinge kann es trotzdem nicht wissen. Erstens alles, was nach dem Ende seines Trainings passiert ist – es kennt nur Texte bis zu diesem Zeitpunkt. Zweitens alles, was nie öffentlich war, zum Beispiel die Reiserichtlinie dieser Firma.

Schön wäre es, wenn es einfach „Weiß ich nicht“ sagen würde. Ein LLM baut seine Antwort aber so, dass es auf den bisherigen Text schaut und mit dem weitermacht, was am wahrscheinlichsten als Nächstes kommt. Selbst wenn es etwas nicht weiß, entsteht also ein Satz, der plausibel klingt. Eine Antwort, die etwas Falsches wie eine Tatsache darstellt, nennt man Halluzination.

Die Lösung ist einfacher, als du vielleicht denkst: Schick den passenden Abschnitt der Richtlinie zusammen mit der Frage mit. Das ist wie eine Klausur, bei der Unterlagen erlaubt sind. Das Modell muss die Richtlinie nicht auswendig kennen. Es liest einfach, was vor ihm liegt, und antwortet.

Die Szene unten zeigt das. Links liegen die Richtlinien der Firma, der Rahmen in der Mitte ist der Text, der an das Modell geht, und rechts siehst du das KI-Modell und seine Antwort. Zuerst wird nur die Frage geschickt. Schalte das Mitschicken des Paragrafen ein: Der Paragraf wandert in den gesendeten Text, und von der Antwort führt eine Quellenlinie zurück zu diesem Paragrafen.

Gesendete Chunks
Keine (nur die Frage)
Antwort
Bis 100 € pro Nacht. · Erfunden · keine Quelle

Frage an den Firmenassistenten: „Wie viel darf das Hotel pro Nacht auf einer Dienstreise nach München kosten?“

Der Assistent ist nicht mit den Richtlinien verbunden, deshalb kommt beim Modell nur die Frage an. Es hat die Richtlinie dieser Firma nie gesehen, muss aber trotzdem antworten – und erfindet einen plausiblen Betrag.

Dieses Vorgehen – das passende Material abrufen (Retrieval), damit den gesendeten Text anreichern (Augmented) und daraus eine Antwort erzeugen (Generation) – heißt Retrieval-Augmented Generation, kurz RAG. Der Name stammt aus einem Forschungsartikel von 2020.

Bei RAG ändert sich nur der Text, der an das Modell geht. Die Gewichte des Modells – die Zahlen, in denen das Gelernte steckt – bleiben gleich. Ändert sich die Richtlinie, aktualisierst du also einfach die Dokumente; neu trainieren musst du das Modell nicht. Genau daran unterscheiden Prüfungen RAG vom Fine-Tuning, bei dem das Modell mit gelabelten Daten weitertrainiert wird.

„Den passenden Abschnitt finden und anhängen“ besteht in Wirklichkeit aus mehreren Schritten. Grob gesagt gibt es Arbeit, die du im Voraus erledigst, bevor überhaupt eine Frage kommt, und Arbeit, die anfällt, wenn eine Frage eintrifft.

Im Voraus erledigt

Indexierungsphase

  1. Dokumente in kleine Chunks teilenKap. 2
  2. Die Bedeutung jedes Chunks in Zahlen umwandeln und speichernKap. 3

Erledigt, wenn eine Frage kommt

Abruf- und Generierungsphase

  1. Auch die Frage in Zahlen umwandeln und die nächsten Chunks findenKap. 4
  2. Diese Chunks mit der Frage an das Modell schicken und die Antwort erhaltenKap. 5

Warum ist der erste Schritt das Teilen? Könnte man nicht einfach das ganze Richtlinienhandbuch anhängen? Nicht, wenn es Hunderte Seiten lang ist.

02

Dokumente in Stücke teilen (Chunking)

Wie viel Text ein Modell auf einmal lesen kann, ist begrenzt. Diese Grenze heißt Kontextfenster. Heutige Modelle haben recht großzügige Kontextfenster, aber je länger der gesendete Text, desto langsamer die Antwort und desto höher die Kosten. Abgerechnet wird nämlich meist nach der Textmenge (Tokens), die hinein- und herausgeht.

Mehr zu schicken heißt auch nicht, dass das Modell alles gut liest. In einer Studie von Liu und anderen aus dem Jahr 2023 nutzten Modelle Informationen am Anfang und am Ende eines langen Textes gut, übersahen aber oft, was in der Mitte vergraben war. Eine Zeile in Hunderten Seiten zu suchen, ist genau diese Situation.

Deshalb teilst du die Dokumente im Voraus in kleine Stücke und schickst bei einer Frage nur die wenigen, die wichtig sind. Jedes Stück heißt Chunk, und das Aufteilen der Dokumente nennt man Chunking.

Knifflig ist die Größe. Ändere in der Szene unten die Chunk-Größe. Für jede Größe siehst du, was passiert, wenn der eine Chunk angehängt wird, der der Frage am nächsten ist.

Gesendete Chunks
Übernachtung: bis 120 €
Antwort
Bis 120 € pro Nacht. · Ausnahme übersehen

Chunk-Größe: Ein Satz (klein) – angehängt wird der Chunk, der der Frage am nächsten ist

Die Regel („bis 120 €“) und die Ausnahme („außer München und Frankfurt: 150 €“) sind in verschiedenen Chunks gelandet. Die Suche hat nur den ersten geholt, in dem „Übernachtung“ vorkommt – also antwortet das Modell 120 €.

Teilst du nach einzelnen Sätzen, landen „Übernachtung: bis 120 € pro Nacht“ und „Außer München und Frankfurt: 150 €“ in verschiedenen Chunks. Die Suche holt nur den ersten, in dem es um die Übernachtung geht, und das Modell sagt 120 €. Gehst du ins andere Extrem und machst das ganze Kapitel zu einem Chunk, ist der gesuchte Teil zwar dabei – aber auch die Abschnitte zu Verpflegung und Fahrtkosten. Der Text wird lang und teuer, und andere Beträge rutschen leicht in die Antwort.

In diesem Beispiel hat ein Paragraf pro Chunk am besten funktioniert, weil Regel und Ausnahme im selben Paragrafen stehen. Die richtige Größe hängt vom Dokument ab, aber die Faustregel bleibt gleich: Chunks sollten groß genug sein, um alles zu enthalten, was für die Antwort auf eine Frage nötig ist, und klein genug, um Unwichtiges draußen zu lassen.

Arten zu teilen

  • Feste Größe: alle so und so viele Zeichen oder Tokens (die Einheiten, in denen ein Modell Text liest) schneiden. Das ist am einfachsten, kann aber einen Satz mittendrin zerteilen.
  • Nach der Dokumentstruktur: an Grenzen schneiden, die das Dokument schon hat, etwa Überschriften, Paragrafen und Absätze. Passt gut zu klar gegliederten Dokumenten wie Richtlinien und Handbüchern.
  • Wo sich die Bedeutung ändert: die Stellen finden, an denen sich die Bedeutung von einem Satz zum nächsten stark ändert, und dort schneiden. Das heißt semantisches Chunking.

Egal, wie du teilst: Du kannst die letzten Sätze eines Chunks am Anfang des nächsten wiederholen, damit nichts verloren geht, was genau auf einer Grenze liegt. Das nennt man Überlappung (Overlap).

Steht in der Frage … → wähle das

  • “Teilt Dokumente in kleinere Einheiten”Chunking
  • “Chunks sind so klein, dass Regel und Ausnahme getrennt werden”Chunk-Größe erhöhen
  • “Irrelevante Inhalte mischen sich ein, und die Kosten sind hoch”Chunk-Größe verringern
  • “Sätze werden an Chunk-Grenzen abgeschnitten”Chunk-Überlappung

Die Chunks sind fertig. Jetzt musst du bei einer Frage auswählen, welche von Tausenden Chunks du anhängst. Gefragt wurde aber nach dem „Hotel“, und in der Richtlinie steht „Übernachtung“. Eine Suche nach denselben Wörtern findet diesen Paragrafen nicht.

Anzeige

03

Bedeutung in Koordinaten verwandeln (Embeddings)

Denk an eine Landkarte. Wandelst du eine Adresse in zwei Zahlen um, Breiten- und Längengrad, kannst du messen, wie nah zwei Orte beieinanderliegen. Mit Text geht das genauso: Du verwandelst seine Bedeutung in eine Reihe von Zahlen und nutzt sie wie Koordinaten.

Text so in eine Liste von Zahlen umzuwandeln, nennt man Embedding, und die entstehende Zahlenliste heißt Vektor. Das übernimmt ein Embedding-Modell. Es ist so trainiert, dass Texte mit ähnlicher Bedeutung ähnliche Zahlen bekommen. Auch wenn „Hotel“ und „Übernachtung“ verschiedene Wörter sind, liegen ihre Bedeutungen nah beieinander – und damit auch ihre Koordinaten.

Die Szene unten zeigt die Chunks der Richtlinien als Embeddings im Raum. Die Farbe steht für das Thema. Reise-Chunks sammeln sich bei Reise-Chunks, Urlaubs-Chunks bei Urlaubs-Chunks. Niemand hat dem Modell die Themen verraten; sie haben sich von selbst gruppiert, weil ihre Bedeutungen ähnlich sind. Der limettengrüne Punkt ist die Frage. Probier aus, sie zu wechseln.

Frage

Frage: „Wie viel darf das Hotel pro Nacht auf einer Dienstreise nach München kosten?“

In der Richtlinie steht nirgends „Hotel“, sondern „Übernachtung“. Trotzdem landet die Frage mitten im Cluster „Dienstreisen“, direkt neben dem Übernachtungs-Chunk. Wo ein Punkt landet, hängt von der Bedeutung ab, nicht vom genauen Wortlaut.

Echte Embeddings bestehen nicht aus zwei oder drei Zahlen, sondern aus Hunderten bis Tausenden. So einen Raum kann niemand zeichnen, deshalb drückt die Szene ihn auf drei Dimensionen zusammen. Je mehr Zahlen es gibt, desto feinere Bedeutungsunterschiede lassen sich erfassen.

Die Embeddings der Chunks werden alle berechnet und gespeichert, bevor eine Frage kommt. Ein Speicher, der Vektoren aufbewahrt und schnell durchsuchbar macht, heißt Vektordatenbank (oder Vector Store). Kommt eine Frage, wird nur die Frage sofort in ein Embedding umgewandelt.

Frage und Dokumente müssen mit demselben Embedding-Modell umgewandelt werden. Jedes Embedding-Modell vergibt Koordinaten auf seine eigene Art, deshalb sind Abstände zwischen Koordinaten aus verschiedenen Modellen bedeutungslos. Das wäre, als würdest du Koordinaten von zwei verschiedenen Karten vergleichen. Aus demselben Grund musst du alle gespeicherten Dokumente neu einbetten, wenn du das Embedding-Modell wechselst.

Noch eine typische Falle in Prüfungen: Ein Embedding-Modell erzeugt keinen Text. Es wandelt Text nur in Zahlen um, damit sich Texte vergleichen lassen. Die Antwort schreibt im nächsten Schritt das LLM.

Steht in der Frage … → wähle das

  • “Wandelt Text in numerische Vektoren um”Embeddings
  • “Findet Texte mit ähnlicher Bedeutung, auch wenn die Wörter verschieden sind”Semantische Suche mit Embeddings
  • “Fragen und Dokumente mit verschiedenen Embedding-Modellen umwandeln”Falsches Design – dasselbe Modell verwenden
  • “Das Embedding-Modell schreibt die Antwort”Falsche Option – die Antwort schreibt das LLM

Jetzt sind alle Chunks und die Frage Punkte im selben Raum. Bleibt nur noch, die Chunk-Punkte zu finden, die dem Frage-Punkt am nächsten liegen.

Nur mit Pro

Bis hierhin ist der Guide kostenlos

Die übrigen 5 Kapitel sind für Pro-Abonnenten freigeschaltet. Jedes bringt weitere 3D-Grafiken und „Steht in der Frage …“-Hinweise, und im letzten Kapitel prüfst du dein Wissen selbst.

  1. 04Vektorsuche
  2. 05Grounding
  3. 06Wissensdatenbank
  4. 07Evaluierung
  5. 08RAG oder Fine-Tuning

PasslyExam

Du kennst jetzt das Konzept. Teste es an Prüfungsfragen

PasslyExam bietet eigene Übungsfragen, Erklärungen und vollständige Probeprüfungen, die sich am offiziellen Prüfungsleitfaden jeder Zertifizierung orientieren. Die Erklärungen zeigen, warum die richtige Antwort stimmt und warum ähnlich klingende Optionen falsch sind. Registriere dich und übe jeden Tag kostenlos.