Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Retrieval-Augmented Generation

Unter Retrieval-Augmented Generation (RAG) versteht man ein Softwaresystem, das Information Retrieval mit einem Large Language Model kombiniert.

Inhalt5 Abschnitte
  1. 1. Grundidee und Ablauf
  2. 2. Daten vorbereiten und indexieren
  3. 3. Vektoren und verknüpfte Daten
  4. 4. Suchen, filtern und Daten kombinieren
  5. 5. Antworten, Einsatz und Grenzen

Grundidee und Ablauf

Retrieval-Augmented Generation (RAG) ist ein Softwaresystem, das Information Retrieval (gezieltes Auffinden von Informationen) mit einem Large Language Model kombiniert. Anders als ein Sprachmodell, das nur seine Trainingsdaten nutzt, kann RAG bei einer Anfrage auf externe Informationsquellen, Datenbanken oder das World Wide Web zugreifen. Dadurch sollen Antworten genauer und robuster werden, weil aktuelle und spezifische Informationen einbezogen werden.

Ein RAG-System arbeitet im Wesentlichen in vier Stufen: Datenindexierung, Datenabruf, Augmentierung und Antwortgenerierung. Typische Anwendungen sind Chatbots mit Zugriff auf interne Unternehmensdaten und Systeme, die Sachinformationen ausschließlich aus verlässlichen Quellen bereitstellen sollen.

Daten vorbereiten und indexieren

Zuerst werden die zu verwendenden Daten in Worteinbettungen umgewandelt und in einer Vektordatenbank indexiert. Worteinbettungen sind Vektoren, also Zahlenfolgen, die die Bedeutung von Wörtern oder Daten für einen Vergleich abbilden. In der Datenbank bleiben diese Vektoren mit den ursprünglichen Daten verknüpft.

Die Daten können unstrukturiert sein, etwa Texte, Bilder, Videos oder Audio; semistrukturiert; oder strukturiert vorliegen, zum Beispiel aus einer relationalen Datenbank oder einem Wissensgraphen. Je nach Umsetzung kann ein RAG-System außerdem frühere Suchanfragen und die zugehörigen Antworten indexieren.

Vor der Indexierung werden Daten in kleinere Bestandteile, Chunks, aufgeteilt. Textdokumente lassen sich etwa in Absätze gliedern, Wissensgraphen in Sub-Graphen. Bilder können mithilfe eines Segmentierungsmodells nach dargestellten Objekten wie Hund, Tisch oder Gesicht getrennt werden. Bei relationalen Datenbanken kann das Datenbankschema, beispielsweise DDL, nach zusammengehörigen Tabellen aufgeteilt werden, die fusioniert, etwa per „join“, werden müssen. Jeder Chunk erhält Annotationen, damit er seiner ursprünglichen Quelle zugeordnet werden kann.

Vektoren und verknüpfte Daten

Für die Vektor-Generierung werden Chunks zunächst durch Tokenisierung in Token zerlegt. Ein Einbettungsmodell übersetzt diese Token anschließend in Worteinbettungen. Vektoren, Chunks und Annotationen werden gemeinsam in der Vektordatenbank gespeichert.

Bei Bildern erzeugt meist ein Bild-zu-Text-Modell zunächst eine Beschreibung; diese Beschreibung wird dann für die Worteinbettung verwendet. Seltener wird das Bild selbst codiert, weil dafür ein Tokenizer nötig ist, der Bilddaten verarbeiten kann. Sollen Bild- und Textdaten in derselben Datenbank liegen, wird ein multimodaler Tokenizer benötigt. Entsprechendes gilt für Audio- und Videodaten.

Komplexe Systeme können Daten auch automatisiert vernetzen. Ein Sprachmodell extrahiert dazu aus indexierten Dokumenten einen Wissensgraphen. Die in einem Dokument beschriebenen Konzepte werden mit passenden Konzepten im Wissensgraphen verbunden. So können zuvor unstrukturierte Daten formal analysiert werden.

Suchen, filtern und Daten kombinieren

Bei einer Nutzeranfrage wird die Suchanfrage ebenfalls in eine Worteinbettung übersetzt. Das System ermittelt dann, welche gespeicherten Daten semantisch, also ihrer Bedeutung nach, mit der Anfrage korrelieren. Relevante Treffer werden gewichtet (Ranking) und gefiltert. Für die Berechnung der Korrelation können beispielsweise Okapi BM25, SPLADE, Dragon oder Kombinationen mehrerer Verfahren verwendet werden.

Filter berücksichtigen unter anderem Vertraulichkeit, Jugendschutz-Einschränkungen und Urheberrechte. Einige Systeme bewerten Suchergebnisse zusätzlich mit einem Sprachmodell anhand von Relevanzkriterien. Wenn keine relevanten Daten gefunden werden, kann ein weiterer Agent die Anfrage umformulieren (Rephrasing) und erneut suchen. Die Zahl der Versuche und/oder die verfügbare Zeit wird begrenzt. Dies erhöht Arbeits- und Zeitaufwand, steigert aber die Wahrscheinlichkeit eines günstigen Suchergebnisses.

Bei relationalen Daten werden üblicherweise nicht alle Daten als Dokumente gespeichert, sondern nur das Datenbankschema. Die Suche liefert das benötigte Schema zurück; daraus erzeugt ein Sprachmodell SQL-Quelltext (Text-to-SQL), der auf der Datenbank ausgeführt wird. Der erzeugte Code muss auf syntaktische Fehler wie erfundene Tabellen oder Spalten sowie auf Schädlichkeit, etwa mögliche SQL-Injection, geprüft werden. Die Datenbankabfrage muss durch passende Rechte „Read-Only“, also schreibgeschützt, sein.

In der Augmentierung werden die gefundenen Daten zusammen mit der Nutzeranfrage und anwendungsspezifischen Daten wie Systemprompt und Metadaten des Benutzers zusammengeführt. Komplexe RAG-Systeme können Anfragen dabei in unterschiedliche Wissensgebiete aufteilen und jeweils spezifisch behandeln.

Antworten, Einsatz und Grenzen

Im letzten Schritt erhält ein Sprachmodell die augmentierte Suchanfrage und transformiert die Daten mithilfe eines statistischen Modells in eine Antwort. Die Antwort wird außerdem mit Referenzen auf die Datenquellen verknüpft, typischerweise über einen URI. Das ermöglicht Nutzern, die Antwort nachzuvollziehen und zu kontrollieren.

RAG erweitert klassische Suchmaschinen; daher überschneiden sich die Einsatzbereiche. Genannt werden Kundenbetreuung, Analyse medizinischer Informationen, juristische Recherchen, Bildung, wissenschaftliche Forschung, Finanzanalyse und die Auswertung von Logdaten sowie weitere Anwendungen, bei denen Informationen gefunden werden müssen.

Die Umsetzung ist wegen der vielen beteiligten Softwaresysteme und Akteure komplex. Indexierung, Gewichtung und Filterung müssen laufend an veränderte Gegebenheiten angepasst und erweitert werden. Daher verursacht RAG nicht nur bei der Implementierung, sondern auch im Betrieb kontinuierlichen Aufwand.

Zur Implementierung gibt es anpassbare Softwarepakete: komplexe Frameworks zur Orchestrierung von KI-Agenten und Programmierschnittstellen sowie Low-Code-Umgebungen. Beispiele für Low-Code-Plattformen sind Microsoft Copilot Studio, Azure AI Studio, Vertex AI Agent Builder und watsonx. Open-Source-Werkzeuge umfassen unter anderem PromptFlow, LangChain und LangGraph, Kernel Memory, Semantic Kernel, Haystack, RAGFlow, txtai, LlamaIndex, RAGAS und FlashRAG. Firecrawl dient als API-Service zur Webseitenindexierung. Zusätzlich existieren fertige Pakete wie Pieces for Developers für persönliches Datenmanagement. RAG wird zudem in Suchmaschinen wie Perplexity.ai, Google Gemini, Microsoft Bing und SearchGPT eingesetzt.

Lernvideos zu Retrieval-Augmented Generation

Weiterlesen

Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Information Retrieval Das Wort retrieval bedeutet auf Deutsch Abruf bzw. Wiederauffinden. Beim IR geht es also darum, bestehende Informationen wieder aufzufinden. Etwas anderes wäre … Large Language Model Ein Large Language Model (kurz LLM, englisch), übertragen großes Sprachmodell, ist die softwaretechnische Realisierung eines mathematischen Sprachmodells, … Datenbank Eine Datenbank, auch Datenbanksystem genannt, ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe einer Datenbank ist es, große … World Wide Web ... Trennung von Inhalt und Darstellung. Durch diese Trennung können die in HTML ausgezeichneten Inhalte optimal für das jeweilige Ausgabegerät aufbereitet werden. Relationale Datenbank Eine relationale Datenbank ist eine digitale Datenbank, die zur elektronischen Datenverwaltung in Computersystemen dient und auf einem tabellenbasierten … Semantik In einem engeren Sinn behandelt die Semantik die Bedeutung vor allem sprachlicher Zeichen, wie Sätzen, Satzteilen, Wörtern oder Lexemen. Sie ist dann Teil der … Korrelation Die Maßzahlen der Korrelation liegen betragsmäßig meist in einem Bereich von Null (kein Zusammenhang) bis Eins (starker Zusammenhang). · Ein Beispiel für eine … SQL-Injection SQL-Injection (dt. SQL-Einschleusung) ist das Ausnutzen einer Sicherheitslücke in Zusammenhang mit SQL-Datenbanken. Die Sicherheitslücke entsteht durch … Transformer (Maschinelles Lernen) Ein Transformer ist eine von Google weiterentwickelte Deep Learning (DL)-Architektur, die einen sogenannten „Aufmerksamkeitsmechanismus“ (englisch … Uniform Resource Identifier Ein Uniform Resource Identifier (Abk. URI; englisch für „einheitlicher Bezeichner für Ressourcen“) ist ein Identifikator und besteht aus einer Zeichenfolge, … Programmierschnittstelle Im Gegensatz zu einer Binärschnittstelle (ABI) definiert eine Programmierschnittstelle nur die Programmanbindung auf Quelltext-Ebene. Die Bereitstellung einer …