
Letzt wurde ich gefragt wie man RAG (Retrieval Agumented Generation) einfach erklären kann. RAG ist eine Technologie bei der die Fähigkeiten einer KI (wie ChatGPT) genutzt werden, um Aufgaben oder Fragen auf Basis von vorhandenem Wissen (Dateien, Websites, Datenbanken usw.) zu lösen oder zu beantworten.
Ich versuche es mal mit einer kleinen Geschichte:
Wir haben mehrere Protagonisten:
- Raggy ein LLM – Large Laguage Modell und noch etwas mehr)
- Archivar Archibald
- Frau Holmes unsere bewährte Suchagentin
- Paul unser Anwender
Erst die einfache Variante:
Raggy und Frau Holmes bekommen von Archibald einen Stapel Bücher. Frau Holmes indiziert diese wie gewohnt, so dass sie ein Verzeichnis hat, wo, was in den Büchern zu finden ist.
Paul wendet sich an Raggy und stellt die Frage: „Warum ist der Himmel blau?“. Raggy versteht das als Aufforderung eine Antwort auf eine Frage zu finden und nimmt sich die Stichworte für die Suche aus der Aufgabe.
Da Raggy selbst keine Antwort darauf kennt, fragt er Frau Holmes und gibt ihr die erkannten Stichworte mit. Frau Holmes schaut im Index nach und zeigt Raggy die entsprechenden Textpassagen in den Büchern.
Die nimmt Raggy und in Verbindung mit der ursprünglichen Frage und schreibt eine Antwort für Paul. Denn Texten kann Raggy richtig gut und in diesem Fall schreibt Raggy auch nur über das, was in den Büchern an den Stellen steht, die Frau Holmes ihm gezeigt hat.
Jetzt als „klassisches“ RAG:
Raggy kann das aber auch noch besser, ohne der Hilfe von Frau Holmes, mit etwas mehr Vorbereitung:
Raggy bekommt von Archibald wieder einen Stapel Bücher. Raggy nimmt sich eine Schere und schneidet jede Seite heraus und zerschneidet (Chunk) die Seiten so, dass da auf jedem Streifen z.B. ca. 3.000 Zeichen sind, die dann in Tokens „übersetzt“ werden (Embedding). Diese wiederum legt Raggy in ein Regal (Vector Datenbank) ab. Diese Tokens haben den Vorteil, dass Raggy diese direkt „versteht“, da sein Gedächtnis und Fähigkeit ähnlich aufgebaut sind.
Jetzt stellt Paul wieder seine Frage: „Warum ist der Himmel blau?“. Raggy nimmt den Fragetext und „übersetzt“ daraus auch ein „Embedding“ und nimmt das, um in seinem Regal nach einer Antwort zu suchen. Raggy ist dabei nicht auf Stichworte allein angewiesen, da er in seiner „Gedankenwelt“ auch Verbindungen herstellen kann die über die Stichworte hinausgehen (z.B. Symantisch).
Diese Streifen des gefundenen „Embedded“ Wissens, dass zu der Fragestellung passt, nimmt Raggy mit der Fragestellung selbst und schreibt einen Antworttext für Paul.
Wie grenzt sich RAG vom gelernten Wissen ab?
Hierfür brauchen wir zwei weitere Protagonisten:
- Fina die ein LLM ist und willig hinzuzulernen (fine tuning)
- Tutor Theobald
Archibald hat das Lernmaterial und die Bücher zusammengetragen. Damit Fina aber das Wissen zu ihrem vorhandenen hinzufügen kann, muss es als Lernmaterial aufbereitet werden. Das ist die Aufgabe von Theobald, die er auch mit Hilfe von Raggy lösen kann. Letztlich müssen viele Lektionen aufbereitet werden, die Fina dann „büffeln“ kann. Dann muss Theobald Fina prüfen und mit ihr nachlernen bis das Wissen sitzt.
Anschließend kann Fina anders als Raggy direkt auf Fragen oder Anweisungen reagieren und braucht nicht weitere Quellen hinzuzuziehen. Sie hat auch ihre Fähigkeiten mit dem Erlernten erweitern können.
Bewertung
Es ist naheliegend und für uns auch leicht nachvollziehbar, dass es leichter ist Wissen nachzuschlagen, als alles zu lernen. So ist es hier auch. Zum Lernen und Feintuning werden sehr viel mehr Rechenkapazitäten benötigt als für ein RAG und es ist viel aufwendiger in der Vorbereitung. Zusätzliche besteht noch die größere Gefahr der Halluzination – „ich sag mal was ich denke was das Passendste ist aus meinem erlernten Wissen.“. Raggy würde dagegen einfach zugeben, dass er nicht Antworten kann, wenn in dem bereitgestellten Wissen keine Lösungen oder Antworten zu finden sind.
Ich hoffe ich konnte das Thema so auf eine andere Art verständlicher darstellen. Die modellhafte Betrachtung ist natürlich stark vereinfacht. Wer mehr technische Einblicke sucht findet die in meinem letzten Blog oder natürlich bei Google, medium.com, Youtube und an vielen Stellen. Das nächste mal werde ich wieder technischer ;-).