„Wo stand das noch mal?“ Wer als Mitarbeitender nach internen Dokumenten sucht, stellt sich diese Frage häufiger. Jeden Tag werden in Unternehmen große Mengen an Daten produziert, darunter Verträge, Protokolle, interne Regelungen, Vorträge, Wiki-Seiten und viele mehr. Diese werden oft an unterschiedlichen Stellen hinterlegt und sind nur mit entsprechendem Such-Aufwand wiederzufinden. Selbst wenn das gesuchte Dokument vorliegt, kann es eine Herausforderung sein, den beschriebenen Inhalt schnell zu erfassen.
Mithilfe von LLMs (Large Language Models) ist es möglich, Suchen auf ein neues Level zu heben. LLMs fallen in den Bereich der Generative Artificial Intelligence (GenAI) und konzentrieren sich dabei speziell auf die Verarbeitung von Sprache und Text. Die Sprachmodelle bieten einen innovativen Ansatz, um das interne Wissensmanagement in Unternehmen zu optimieren.
Wir wollen in diesem Artikel insbesondere auf Retrieval Augmented Generation (RAG) eingehen. RAG ist eine immer beliebter werdende Methode, bei der LLMs mit unternehmensinternem Wissen versorgt werden und zu treffsicheren Ergebnissen führen. Im Folgenden sprechen über die Vor- und Nachteile von RAG und stellen sie einer alternativen Methode, dem Finetuning, gegenüber.
Starten wir zunächst mit der bekannteren Methode: Beim Finetuning werden bestehende Modelle für spezielle Use-Cases angepasst und mit domänenspezifischem Wissen versorgt. Das Modell wird anhand von speziell präparierten Daten neu trainiert und erlernt vorhandene Muster und Informationen. Der Nutzer kann dann Anfragen an das "Finetuned-LLM" senden und Antworten erhalten, die mit Wissen aus dem domänenspezifischen Datensatz generiert wurden.
Abbildung 1: Finetuning
Finetuning war bisher die Standardmethode, ein LLM so zu trainieren, dass es z.B. auf unternehmensspezifische Fragen eingehen kann. Allerdings birgt die Methode so manche, unangenehme Tücken. Es kann nämlich in einem unangemessen hohen Kosten-, Zeit- und Ressourcenaufwand münden. Das liegt vor allem an der Datenbereitstellung für das Training, da zusätzliche Daten aggregiert, bereinigt und gelabelt werden müssen. Erst dann kann ein weiterführendes Training erfolgen, welches abermals Ressourcen verschlingt.
Beim Finetuning kann das Modell lediglich auf das Wissen zugreifen, welches zur Trainingszeit vorhanden war. Aktuellere Daten können bei diesem Ansatz ohne erneutes Training des Modells nicht berücksichtigt werden. Ein weiterer Nachteil entsteht bei einem Mangel an guten Trainingsdaten: Zwar erlernt es anhand der Daten Muster und kann daraus Informationen ziehen, jedoch wendet es diese stochastisch an – was zu unpräzisen Ergebnissen führen kann.
Eine Alternative mit einer verlässlicheren Funktionsweise wird benötigt, und das führt uns zum Ansatz von RAG.
Bei Retrieval Augmented Generation (RAG) werden LLMs mit Informationen aus externen Wissensdatenbanken versorgt. Der Unterschied zum Finetuning ist, dass das zugrunde liegende LLM nicht noch einmal neu trainiert wird. RAG greift bei der Erstellung einer Antwort auf vorhandenes Wissen in Form von Dokumenten zu und fügt dieses Wissen dem bestehenden Kontext hinzu. So können präzise, aktuelle und kontextrelevante Texte generiert werden.
Abbildung 2: Retrieval Augmented Generation (RAG)
Um besser zu verstehen, wie RAG funktioniert, schauen wir uns die Methode anhand einer typischen Frage an:
"Wie mache ich eine Reisekostenabrechnung?"
Zwei wesentliche Schritte finden bei RAG statt:
Sowohl Anfrage als auch Antwort geschehen in natürlicher Sprache.
Das grundlegende Werkzeug von RAG und insbesondere der semantischen Suche ist eine sogenannte Vektordatenbank. Eine Vektordatenbank ist darauf spezialisiert, Vektoreinbettungen von Worten, Sätzen und Dokumenten in natürlicher Sprache (auch als Embeddings bezeichnet) zu indexieren und effizient abzufragen. Embeddings sind nichts weiter als die Repräsentation natürlicher Sprache in Vektoren, welche arithmetisch miteinander verrechnet werden können. Diese Vektoren werden von vortrainierten Embedding-Modellen erstellt und können die semantische Bedeutung von Sprache in Zahlenform festhalten. Das hat den Vorteil, dass man so Texte miteinander vergleichen und herausfinden kann, welche Texte sich semantisch ähnlich sind.
Um die Funktion besser verstehen können, schauen wir uns die Frage zur Reisekostenabrechnung an. Die Voraussetzungen einer semantischen Suche sind, dass zum einen Dokumente mit dem relevanten Wissen über den Sachverhalt existieren, und zum anderen in vektorisierter Form in einer Datenbank vorliegen und abgerufen werden können. Bei der semantischen Suche wird nun die Suchanfrage von natürlicher Sprache in Vektoren umgewandelt, und die für die Anfrage relevanten Dokumente aus der Vektordatenbank herausgesucht. Dies ist z.B. der Fall, wenn sich die Inhalte zwischen der Nutzer-Anfrage und dem gesuchten Dokument ähneln - in unserem Beispiel also, wenn es in beiden inhaltlich um Reisekosten geht. Dank der Embeddings lässt sich diese Ähnlichkeit mathematisch berechnen und deren Abfrage automatisieren.
Nachdem mithilfe der semantischen Suche ein oder mehrere relevante Dokumente zur Nutzer-Anfrage gefunden wurden, werden diese als Kontext an die Anfrage angehängt. Nun kann das LLM aus der Nutzer-Anfrage und dem Kontext eine Antwort generieren, welche auf dem Wissen des firmeninternen Wikis basiert. Das LLM hat also zur Frage „Wie mache ich eigentlich eine Reisekostenabrechnung?“ alle relevanten Informationen zur Reisekostenabrechnung zur Verfügung, und kann diese ggf. paraphrasieren und auf die entsprechenden Dokumente verweisen.
Der Vorteil von RAG liegt v.a. in der Leichtgewichtigkeit gegenüber dem Finetuning.
Ein wesentlicher Nachteil des RAG gegenüber finegetunten LLMs ist allerdings die Größe des Kontexts, welche an das LLM übergeben wird. Bei jeder Anfrage muss das relevante Wissen aus der Vektordatenbank angehängt werden. Je nach Dokumentengröße kann der Kontext so auf beträchtliche Größe wachsen. Dies ist insbesondere dann von Bedeutung, wenn man ein LLM über die API eines Drittanbieters anspricht. Die Verrechnung erfolgt in der Regel nach dem „Pay-Per-Use“-Prinzip, und ist proportional zur Tokenlänge, also der Anzahl übermittelter Textfragmente.
RAG bietet im Vergleich zum Model-Finetuning eine leichtgewichtige Lösung, mit der effizient und kostengünstig ein LLM mit aktuellem, domänenspezifischem Wissen erweitert werden kann. RAG kann ohne ein erneutes Training des LLM mit neuen Informationen aktualisiert werden und ist daher ressourcenschonender. Im Vergleich zum Model-Finetuning ist allerdings zu beachten, dass bedingt durch die Funktionsweise von RAG die Anzahl der Tokens pro Anfrage vergleichsweise hoch ist. Schließlich muss das relevante Wissen immer an die Nutzer-Anfrage zusätzlich angehängt wird. Dies kann bei häufiger und langfristiger Nutzung mit großen Kontexten zu beträchtlichen Mehrkosten je Anfrage führen.
Dr. Masud Afschar ist Senior AI & Data Engineer bei iteratec in Frankfurt. Zu seinen Spezialgebieten gehört die Entwicklung von Big Data-Architekturen und innovativen KI-Lösungen. Er berät Kunden in Workshops zu ganzheitlichen Lösungen für AI & Data Analytics, auch in Bezug zu GenAI. |
Frederik Kliemt war von 2020 bis 2024 Werkstudent bei iteratec in Frankfurt. Neben Full-Stack-Webentwicklung und Mobile App-Entwicklung, hat Frederik auch Lösungen auf den Gebieten NLP und GenAI für iteratec und unsere Kunden mitentwickelt.
|