Retrieval Augmented Generation (RAG)
RAG ruft relevante Textpassagen aus einer externen Wissensdatenbank ab und fügt sie dem Prompt eines LLM hinzu. So stützen sich Antworten auf aktuelle, private und zitierfähige Quellen.
Retrieval-Augmented Generation (RAG) ist ein Verfahren, bei dem ein großes Sprachmodell (LLM) eine Frage mithilfe von Passagen beantwortet, die zum Zeitpunkt der Anfrage aus einer externen Wissensquelle abgerufen und neben der Frage in die Eingabeaufforderung eingefügt werden. Die Trainingsdaten eines LLM enden an einem Stichtag und umfassen nie die internen Dokumente eines Unternehmens. Ohne Abruf fehlen dem Modell daher entweder die Fakten oder es erfindet plausible Angaben – ein Fehler, der als Halluzination bekannt ist. Der Begriff stammt aus der Arbeit von 2020 Retrieval-Augmented Generation für wissensintensive NLP-Aufgaben von Patrick Lewis und Kollegen bei Facebook AI Research. Darin wurde ein vortrainiertes BART-Generierungsmodell mit einem neuronalen Retriever über einem dichten Vektorindex von Wikipedia kombiniert und bei drei Aufgaben zur offenen Fragebeantwortung ein neuer Stand der Technik erreicht. Heute bezeichnet der Begriff jedes System, das zuerst Inhalte abruft und anschließend Text generiert.
Funktionsweise einer RAG-Pipeline#
RAG läuft in zwei Phasen ab. Die Indizierung findet im Voraus statt: Dokumente werden in Passagen aufgeteilt, zum Beispiel durch semantische Segmentierung. Jede Passage wird in ein Embedding umgewandelt und die Vektoren werden in einer Vektordatenbank gespeichert. Zum Zeitpunkt der Anfrage wird die Frage mit demselben Modell eingebettet, die Vektorsuche liefert die nächstgelegenen Passagen zurück und das System erstellt aus Anweisungen, diesen Passagen und der Frage eine Eingabeaufforderung. Das LLM formuliert dann eine Antwort, die im bereitgestellten Text verankert ist, und kann zu jeder Behauptung die entsprechende Passage zitieren.
Produktivsysteme ergänzen diesen Kern um weitere Schritte. Die hybride Suche kombiniert Vektorähnlichkeit mit dem Abgleich von Schlüsselwörtern, damit genaue Begriffe wie Teilenummern nicht übersehen werden. Ein Reranker ordnet die besten Kandidaten mithilfe eines präziseren Modells neu. Bei der kontextuellen Suche fügt ein LLM jedem Abschnitt vor der Indizierung eine kurze Notiz hinzu, die ihn in seinem Dokument verortet. Frameworks wie LangChain und LlamaIndex bündeln diese Komponenten.
Die Abruf- und Erweiterungsschritte lassen sich mit der Bibliothek Sentence Transformers in wenigen Zeilen Python umsetzen:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# Knowledge base: passages the LLM never saw during training
passages = [
"Badge access to Building C requires a safety briefing completed within the last 12 months.",
"The cafeteria in Building A serves breakfast from 7:00 to 9:30 on weekdays.",
"Forklift operators must renew their certification every three years.",
]
passage_embeddings = model.encode(passages)
# Retrieve: embed the question and keep the most similar passage
question = "How often do I need to redo forklift training?"
scores = model.similarity(model.encode(question), passage_embeddings)[0]
context = passages[int(scores.argmax())]
# Augment: put the retrieved passage in the prompt the LLM will answer from
prompt = f"Answer using only this context.\nContext: {context}\nQuestion: {question}"
print(prompt)Die Ausgabe ist eine Eingabeaufforderung mit der Passage zur Staplerzertifizierung, die inhaltlich zur Frage passt: Sie fragt nach einer Wiederholung der Schulung und die Passage handelt von der Erneuerung der Zertifizierung. Jedes LLM kann anhand dieser Eingabeaufforderung antworten, und die Passagen können täglich geändert werden, ohne das Modell neu zu trainieren.
RAG im Vergleich zu Feinabstimmung und langem Kontext#
- Feinabstimmung: Aktualisiert die Modellgewichte anhand neuer Beispiele. Sie eignet sich gut, um Verhalten, Stil und Ausgabeformat zu ändern. Häufig wechselnde Fakten auf diese Weise hinzuzufügen, ist jedoch langsam. Außerdem bleibt keine Quelle zum Zitieren. Deshalb stimmen viele Systeme das Format per Feinabstimmung ab und nutzen RAG für das Wissen.
- Lange Kontextfenster: Modelle, die eine Million Tokens verarbeiten können, lesen umfangreiche Dokumentensammlungen direkt ein. Doch jede Abfrage kostet für jedes Token, und mit längeren Eingaben sinkt die Genauigkeit – ein Effekt, der als Kontextverfall bekannt ist. RAG übermittelt nur die relevanten Textpassagen.
Mehrere Varianten erweitern das Grundmuster: GraphRAG ruft Inhalte aus einem Wissensgraphen ab, agentisches RAG lässt einen Agenten entscheiden, wann und wo er sucht, und multimodales RAG ruft neben Text auch Bilder, Videos und Audio ab.
Anwendungsbereiche von RAG#
- Unternehmens-Chatbots: Interne Assistenten beantworten Fragen anhand von Richtlinien, Wikis und früheren Support-Tickets und verlinken den Absatz, auf dem die jeweilige Antwort beruht.
- Kundensupport: Assistenten rufen vor der Antwort das Handbuch zum genauen Produktmodell des Kunden und dessen Bestellhistorie ab.
- Gesundheitswesen: Klinische Assistenten rufen aktuelle Leitlinien und Arzneimittelreferenzen ab. So verweisen die Antworten auf eine überprüfbare Quelle statt auf das Modellgedächtnis.
RAG beantwortet auch Fragen zu Videos. Ein LLM kann nicht für jede Frage stundenlanges Filmmaterial ansehen. Durch die Kombination von RAG und Computer Vision wird das Filmmaterial daher zunächst in durchsuchbare Datensätze umgewandelt. Ultralytics YOLO26 meldet im Tracking-Modus in jedem Frame die Klasse, Bounding Box und dauerhafte Tracking-ID jedes Objekts. Eine Pipeline speichert diese Angaben als Zeilen, sodass eine Frage wie „Wie viele Lastwagen sind heute Morgen in Dock 3 eingefahren?“ die entsprechenden Zeilen abruft statt das Video.
Warum RAG-Antworten fehlschlagen#
RAG kann an zwei Stellen scheitern. Bei einem Abruffehler gelangt die Passage mit der Antwort nicht in die Eingabeaufforderung, weil sie durch die Aufteilung zerschnitten wurde, das Embedding-Modell ein Synonym übersehen hat oder sie knapp unter die Top-k-Grenze gerutscht ist. Gemessen wird dies als Recall bei k anhand einer Reihe von Testfragen. Bei einem Generierungsfehler ist die richtige Passage zwar vorhanden, doch das Modell ignoriert, missversteht oder widerspricht ihr. Evaluierungsbibliotheken wie Ragas bewerten beide Seiten: den Kontext-Recall für den Retriever und die Faktentreue für das generative Modell. Letztere gibt an, welcher Anteil der Aussagen in der Antwort durch den abgerufenen Kontext gestützt wird.










