Zum Inhalt
Fakultät für Informatik
Projektgruppe

TU Llama


Motivation

In vielen Bereichen des alltäglichen Lebens unterstützen uns KI Modelle mittlerweile regelmäßig. Im letzten Jahr jedoch gab es eine Art Quantensprung durch die Veröffentlichung von allgemein zugänglichen, leicht zu bedienenden Chatbots basierend auf LLMs - Large Language Models, allen voran ChatGPT. Diese Modelle sind teilweise multi-modal, verstehen also z.B. Bild-und-Text gleichzeitig, können Gedichte schreiben, Code erstellen, Matheaufgaben lösen, Kochrezepte schreiben, Texte zusammenfassen, E-Mails für eine bestimmte Empfängerin schreiben, Quantenmechanik erklären und ganz profan Witze erzählen. Ganz vordergründig können sie als Suchmaschinen verwendet werden und somit einen großen Korpus von beispielsweise textuellen Informationen leicht durchsuchbar machen. Leider sind diese Modelle sehr groß und enthalten milliarden von zu lernenden Parametern, was hunderten GB an GPU Speicher entspricht, und müssen mithilfe proprietärer gigantischer Datensätze trainiert werden. Diese Einschränkungen machten es zu Beginn quasi unmöglich für kleine Arbeitsgruppen oder Privatpersonen einen Nutzen aus dieser Technologie zu ziehen. Die Entwicklung in der Open-Source Community ist jedoch enorm schnell und hat sowohl offene Datensätze als auch offene Modelle, wie z.B. Llama-2 [6], hervorgebracht. Zusammen mit neuen Veröffentlichung im Bereich des parametereffizienten und datensparsamen Nachtrainings (fine-tuning) von LLMs eröffnen sich somit viele neue Möglichkeiten, selbst auf  Consumer Hardware.

Anspielung an ein mögliches Fabelwesen, das TU-Llama, welches einem den Weg zum richtigen Studiengang durch den Dschungel der Modulhandbücher weist (nach dem Modell Llama-2).

Aufgabenstellung

Ziel der Projektgruppe ist es, eine Anwendung zu entwickeln, die durch ein Chat Interface viele Fragen bezüglich des Studienganges Informatik an der TU Dortmund, leicht zugänglich und verständlich aufbereitet, beantworten kann. Dabei könnten z.B. Fragen nach der richtigen Kombination von Fächern für einen Schwerpunkt im Master, der richtigen Ansprechperson für den Laufzettel der Bachelorarbeit, den Inhalten eines bestimmten Moduls laut Modulhandbuch oder dem Termin einer Klausur, beantwortet werden. Welche Fragen von der Anwendung beantwortet werden können sollen, wird dabei von den Teilnehmenden der Projektgruppe entwickelt und auch getestet. Die Nachprüfbarkeit der Ergebnisse ist ein essenzieller Bestandteil der Aufgabenstellung. So könnte das System z.B. bei jeder Antwort die entsprechende Quelle (Dokument, Link u.A.) zurückgeben. Außerdem könnte ein Testdatensatz von Fragen erstellt und die Antworten des Systems in Case-Studies auf ihre Korrektheit geprüft werden. Zu Beginn
soll dem System das Verständnis für den Inhalt der Website und der unterschiedlichsten enthaltenen Dokumente vermittelt werden und somit eine intelligente Suche für unterschiedlichste Dateiformate und Informationsquellen bereitgestellt werden. Darauf aufbauend soll dann das System eine natürlichsprachliche Antwort für die oben genannten Fragestellungen zurückgeben können. Eine mögliche Erweiterung besteht in der Einbeziehung aller Studiengänge der TU Dortmund oder komplexerer Fragestellungen, wie z.B. einer Studiengangsberatung. Dadurch entsteht eine "Experten-App", welche die aufwendige Suche nach Details zum Studiengang unterstützen und übernehmen kann. Um eine möglichst intuitive Bedienung zu gewährleisten, soll die Anwendung als Android-App oder Web-App entwickelt werden. Abhängig von den benötigten Ressourcen kann die Antwort der Modelle auf einem bereitgestellten GPU-Server berechnet werden.

Question Answering auf unstrukturierten Dokumentensammlungen

Die Basis für ein solches System bildet eine Sammlung von Dokumenten, welche alle nötigen Informationen enthalten. Diese unterschiedlichen Dokumente wie z.B. Studienverlaufspläne oder Veranstaltungswebsites, müssen in einem ersten Schritt abgerufen und in Abschnitte ähnlicher Größe unterteilt werden. Anschließend wird für jeden Abschnitt ein semantisches Embedding gelernt und zusammen mit dem Dokumentenabschnitt in einer Datenbank gespeichert. Bei semantischen Embeddings handelt es sich um eine Vektorrepräsentation, welche den Inhalt des entsprechenden Abschnitts kodiert. Üblicherweise werden zur Berechnung tiefe neuronale Netze (z.B. BERT [2]) verwendet. Dokumentenabschnitte mit relevanten Informationen bezüglich einer Anfrage können dann basierend auf Vektordistanzen aus der Datenbank abgerufen werden. In einem letzten Schritt kann ein LLM verwendet werden, um basierend auf den zurückgegebenen Informationen eine Antwort auf die Anfrage in natürlicher Sprache zu generieren.

Large Language Models

Das Ziel bei der Erstellung von Sprachmodellen besteht darin, natürliche Sprache zu modellieren und generieren. Dazu werden Folgen vom Buchstaben, Wörter oder Folgen von Wörtern als sogenannte Token repräsentiert. Das Sprachmodell wird trainiert, um die Wahrscheinlichkeit eines Tokens in oder nach einer Sequenz von Tokens zu prädizieren. Da die Modellierung natürlicher Sprache sehr komplex ist, helfen größere Modelle mit mehr trainierbaren Parametern und größere Datensätze dabei die Problemstellung besser zu lösen. Den aktuellen Gipfel erreicht dabei das Modell PaLM mit etwa 540 Milliarden Parametern [1].

Parameter-Efficient Fine-Tuning

LLMs werden zunächst nur für die Vervollständigung bzw. Generierung von Text trainiert, da hierzu vergleichsweise einfach, riesige Datensätze automatisiert erstellt werden können [7]. Oft sollen LLMs anschließend für speziellere Aufgaben, wie beispielsweise auf Anweisungen und Fragen zu antworten (z.B. ChatGPT), oder auf bestimmten Daten, wie Code oder medizinische Dokumenten, angewendet werden. Die auf den extrem großen, aber sehr allgemeinen Datensätzen vortrainierten LLMs sind dazu oft nur bedingt geeignet. Daher ist eine Anpassung (Fine-Tuning) der Gewichte für die neue Problemstellung erforderlich. Aufgrund der enormen Anzahl von Parametern der LLMs werden auch für die Anpassung der Parameter für die spezielle Aufgabe sehr viele Ressourcen benötigt (z.B. 1,2 TB VRAM zum Training von GPT-3 [3]). Eine effiziente Anpassungsmöglichkeit besteht darin, die Eingabe des Modells so anzupassen, dass das Modell auch für die neue Problemstellung zufriedenstellende Ausgaben liefert. Alternativ kann diese Anpassung auch durch ein per Backpropagation trainiertes Prefix in der Repräsentation der Eingabe erfolgen. Sollen statt der Eingabe die Parameter des Modells angepasst werden, so kann dies über die sogenannte Low-Rank Adaptation [3] geschehen. Bei dieser werden die Gewichtsmatrizen (Modellparameter) mit niedrigem Rang faktorisiert, sodass die daraus resultierenden Matrizen deutlich weniger Gewichte enthalten, was ein effizienteres Fine-Tuning ermöglicht.

Reinforcement Learning from Human Feedback

Das unüberwachte Training eines LLM erzeugt eine chaotische Repräsentation ohne Vorfilterung. Somit kann z.B. eine mathematische Frage von dem Modell im Zweifel von einer Hochschuldozentin oder einem Foodblogger beantwortet werden, ohne das dies durch den Menschen kontrolliert werden kann. Reinforcement Learning from Human Feedback erzeugt nun die Möglichkeit einer Schnittstelle zu diesem gesammelten Wissen, welche kontrolliert was von den gelernten Informationen und auf welche Art und Weise, diese zurückgegeben werden. Dazu werden überlicherweise 3 Schritte durchgeführt. Zuerst wird das LLM für eine bestimmte Domäne von menschlichen Interaktionen vortrainiert, wie z.B. die Bewertung von Kochrezepten. Danach wird ein Belohnungsmodell trainiert, indem unterschiedliche Eingaben (Prompts) an das LLM übergeben werden und die entsprechenden Ausgaben in ihrer Passung auf die Anfrage, vom Menschen bewertet und untereinander sortiert werden. Dies kann als Eingabe
für das Training verwendet werden. Zuletzt werden Belohnungsmodell und LLM genutzt, um mithilfe von Methoden aus dem verstärkenden Lernen, wie DPO [4] oder PPO [5] als Teil aktueller open-source Bibliotheken, das LLM auf die Zielaufgabe der entsprechenden menschlichen Interaktion anzupassen und nachvollziehbare Rückgaben zu erzeugen.


Literatur

[1] A. Chowdhery, S. Narang, J. Devlin, et al. PaLM: Scaling Language Modeling with Pathways. arXiv preprint arXiv:2204.02311, 2022.

[2] J. Devlin, M. Chang, K. Lee, et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv preprint arXiv:1810.04805v2, 2018.

[3] E. J. Hu, Y. Shen, P. Wallis, et al. LoRA: Low-Rank Adaptation of Large Language Models. arXiv preprint arXiv:2106.09685, 2021.

[4] R. Rafailov, A. Sharma, E. Mitchell, et al. Direct preference optimization: Your language model is secretly a reward model. arXiv preprint arXiv:2305.18290, 2023.

[5] J. Schulman, F. Wolski, P. Dhariwal, et al. Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347, 2017.

[6] H. Touvron, L. Martin, K. Stone, et al. Llama 2: Open foundation and fine-tuned chat models. July 2023.

[7] G. Wenzek, M.-A. Lachaux, A. Conneau, et al. CCNet: Extracting high quality monolingual datasets from web crawl data. In Proceedings of the Twelfth Language Resources and Evaluation Conference, 2020.


Kontakte