Seit November 2021 ist das Thema ChatGPT und die dahinterliegende Technologie der Large Language Models (LLMs) allübergreifend. Aus einer rein technischen Perspektive basiert die Funktionsweise von LLMs auf Next-Word-Prediction. Das bedeutet, dass die Vorhersage eines Wortes auf der Grundlage vorangegangener Wörter erfolgt. Aufgrund der enormen Größe an Trainingsdaten und Modellparameter – GPT 3.5 beispielsweise besteht aus 175 Milliarden Parameter – können die LLMs verschiedene Sachverhalte „verstehen“ und komplexere linguistische sowie semantische Muster erkennen/reproduzieren.
Limitationen
Aber hinter dem ganzen Hype rund um LLMs gibt es auch gerechtfertigte Kritik und Performance-Probleme:
LLMs werden auf einer enorm großen Datenmenge trainiert. Hierzu werden zum Beispiel Texte aus Wikipedia, Nachrichten oder dem sogenannten CommonCrawl verwendet. Die Inhalte dieser Datensätze sind in den meisten Fällen sehr allgemein und wenig spezifisch. Nischen-Themen und Informationen, die beispielsweise aus weniger bekannten oder linzenztechnisch geschützten Büchern stammen, sind hier nicht zu finden.
Spätestens, wenn man einem Chatbot wie ChatGPT Anfragen zu Themen der eigenen Expertise – auch Prompts genannt – stellt, sieht man, dass diese Systeme schnell an Ihre Grenzen stoßen. Da die zugrundeliegenden KI-Modelle nicht ausreichend mit Informationen zu etwaigen Themen trainiert wurden, erfinden diese Modelle Antworten, die auf den ersten Blick sehr plausibel erscheinen. Im Bereich der KI bezeichnet man dieses Phänomen als eine „Halluzination“. Anders ausgedrückt könnte man auch sagen, dass das Modell überzeugend Fakten erfindet und damit Falschinformationen erzeugt.
Problematisch ist außerdem, dass LLMs nur mit Daten trainiert werden, die bis zu einem bestimmten Stichtag reichen. Bei GPT3.5 beispielsweise liegt dieser im Juni 2021. Alle Informationen und Texte, die nach diesem Datum veröffentlicht wurden, stehen dem KI-Modell ensprechend nicht zur Verfügung. Ein regelmäßiges Nachtrainieren der Modelle mit weiteren Daten kann dabei helfen, die Datenlücke zu schließen, ist jedoch sehr kosten- und zeitintensiv.
Die Limitationen und Probleme von LLMs schränken die Nutzbarkeit für viele User stark ein, insbesondere in hochspezialisierten Domänen.
Wie kann man als Unternehmen aus etwaigen Domänen trotzdem die Stärken von LLMs nutzen und das Wissen dieser um unternehmensinterne Informationen erweitern? Eine Möglichkeit fehlendes Wissen schnell und kostengünstig in das eigene System/Modell zu integrieren ist RAG.
Was ist RAG und wie funktioniert es?
RAG steht für Retrieval Augmented Generation. Auf Deutsch könne man es übersetzen als „um Abfragen erweiterte Generierung“. RAG ist ein Prozess zur Optimierung und Spezialisierung von LLM-Ausgaben. Im Wesentlichen geht es dabei darum, dass wir das implizit gelernte Wissen eines LLMs um anwendungsspezifische Informationen erweitern. Das LLM ist anschließen in der Lage, anwendungsspezifische Anfragen eines Users auf Grundlage seiner Wissenserweiteurng korrekt zu beantworten.
In der einfachsten Form baut der RAG-Prozess auf drei Komponenten auf:
- Einer Vektodatenbank, in der anwendungsspezifische Informationsblöcke gespeichert werden.
- Einem Retrieval-System, welches die Vektordatenbank nach anfragerelevanten Informationen durchsucht.
- Dem LLM, das userfreundliche Antworten aus den gefundenen Informationen generiert.
Das Rückgrat eines RAG-Systems bildet die Vektordatenbank, in welcher die Informationen, die zur Beantwortung von anwendungsspezifischen Anfragen benötigt werden, gespeichert sind. Um diese aufzubauen, werden im wesentlichen folgende sechs Schritte durchgeführt:
- Sammlung von Dokumenten (z.B. PDF-Dokumente) mit anwendungsspezifischen Informationen und Daten.
- Aufbereitung der Dokumente, also beispielsweise Konvertierung von PDF-Dokumenten in maschinenlesbaren Text.
- Festlegung einer sogenannten Chunking Strategie, mithilfe derer die Dokumente in Informationsblöcke zerlegt werden.
- Generierung der Informationsblöcke („Chunks“) auf Grundlage der zuvor festgelegten Strategie.
- Überführung der Chunks in Zahlenreihen (Vektoren). Dieser Schritt wird auch als Embedding bezeichnet.
- Speichern der überführten Chunks in der Vektordatenbank.
Wie funktioniert das Retrieval System?
Wörter werden in numerische Vektoren konvertiert. Ein einzelnes Wort wird entsprechend als Zahlenreihe dargestellt. Das spannende an Vektoren ist, dass sich mithilfe dieser semantische Ähnlichkeiten und Zusammenhänge zwischen Wörtern berechnen lassen. Da Vektoren sehr schnell verglichen werden können, lassen sich mit einem Retrieval System inhaltlich ähnliche Dokumente auffinden.
RAG-Prozess
Der User schickt eine Anfrage an das System. Diese Anfrage wird mit demselben Verfahren aus Schritt 5 in einen Vektor umgewandelt.
Basierend auf dem Vektor der Anfrage wird in der Vektordatenbank nach relevanten Informationen gesucht.
Diese Daten werden dann abgerufen (retrieved) und nach unterschiedlichen Faktoren bewertet, geranked und die Top-Ergebnisse anschließend konsolidiert. Diese Daten und Dokumente stellen den Kontext dar, mit welchem die Anfrage des Users angereichert wird.
Die Anfrage sowie der zuvor ermittelte Kontext werden anschließend an das LLM übergeben. Dieses generiert mithilfe der zusätzlichen Informationen eine passende Antwort und spielt sie dem User abschließend zurück.
Übersicht der RAG Architektur und Prozess
RAG vs. Finetuning
Ein anderer Weg, um ein LLM mit anwendungsspezifischen Informationen zu erweitern, ist die des sogenannten Finetunings. Hierfür nimmt man ein bereits vortrainiertes LLM und trainiert dieses auf der Grundlage anwendungsspezifischer Informationen nach. Im Rahmen dieses Nachtrainierens werden die bestehenden Modellparameter optimiert. Durch das Finetuning der Modellparameter ist das nachtrainierte Modell im Gegensatz zum Ursprungsmodell in der Lage, auch anwendungsspezifische Aufgaben lösen. Das Finetuning bestehender LLMs ist in der Regel deutlich kosten- und zeitintensiver als der RAG-Ansatz.
Vorteile beim Finetuning Ansatz
- Das finetuned Modell kann für alle LLM Tasks (z.B. Sentiment Analysen, Entity Recognition) und nicht nur ausschließlich für Frage-Antwort Systeme, also Q&A Tasks, eingesetzt werden
- Einmalige Kosten (sofern nicht regelmäßig neue Informationen angelernt werden müssen)
- Kein dauerhaft zusätzlicher Infrastrukturaufwand
Challenges beim Ansatz des Finetunings
- Prinzipiell nicht möglich bei closed-sourced 3rd Party Modell Anbietern wie OpenAI
- Trainingsprozess tendenziell kosten & zeitintensiv
- nicht funktional, wenn Real-Time oder dynamische Daten berücksichtigt werden muss
- Halluzinationen sind weiterhin ein Problem
- Quelle der Antworten nicht rückverfolgbar/nicht nachvollziehbar
Vorteile des RAG Prozesses
- Schnelle Möglichkeit LLMs um internes und domänenspezifisches Wissen zu erweitern
- Günstiges initiatives Setup
- Unterstützt die dynamische Einbindung von Real-Time-Data
- Ermöglicht die Angabe und Nachvollziehbarkeit der Quellen
- Benötigt keine gelabelten Daten
- Zugriffsverwaltung von Quellen
Challenges des RAG Prozesses
- „Search and Retrieval“-Prozess hat einen großen Einfluss auf die Outputqualität
- RAG hauptsächlich relevant für Frage-Antwort Systeme
- Aufbau und dauerhafter Betrieb der Vektordatenbank verursacht laufende Kosten
- Anzahl an Input Tokens, die dem LLM übergeben werden, vergrößert sich durch den Kontext
Use Cases
RAG ist vor allem bei Q&A Tasks & Informationsextraktion enorm performant, also Aufgaben in denen wir von dem KI-System eine klare Antwort auf eine Frage erwarten. Die Antwort kann zudem mit den Quellen belegt werden, welches das LLM zur Beantwortung einer Anfrage genutzt hat. Das ermöglicht dem User eine mögliche Nachverfolgung oder Einholung weiterer Informationen.
Konkrete Szenarien im Business Kontext sind die Erweiterung eines Company Intranets oder einer Knowledge Database um einen Chatbot, mit dem Mitarbeiter*innen einfach interagieren und diesem Fragen stellen können. Der RAG-Chatbot ermöglicht den Mitarbeitenden, schnell auf unternehmensinternes Wissen zuzugreifen. Zusätzlich bereitet der Chatbot das gefundene Wissen auf und stellt es zusammengefasst dar. Dies ermöglicht eine effiziente Nutzung von Unternehmenswissen, steigert die Arbeitsqualität der Mitarbeitenden und kann dazu beitragen, langfristig einen Wettbewerbsvorteil zu sichern.
Beispielhafte Use-Cases und Produktanwendungen für einen RAG-Chatbot sind:
- Onboarding neuer Mitarbeiter*innen
- Tägliche Nutzung und Gewinnung von Unternehmensinsights
- Chatbot als weiterer Zugang zu digitalen Lerninhalten
… oder ihr baut euch euer digtales Alter-Ego à la Tom Riddle mit euren Tagebucheinträgen .