Moodle Chatbot – KI als persönlicher Uni-Dozent
Zusammen mit der RWTH Aachen haben wir einen Chatbot entwickelt, der einen nahtlosen Zugang zu Vorlesungsinhalten für Studierende und Mitarbeitende direkt in der Lernplattform Moodle ermöglicht. Somit können themenspezifische Fragen mit Inhalten aus einer Vorlesung beantwortet werden. Eine zusätzliche Quellenangabe erlaubt außerdem das schnelle Finden der relevanten Vorlesungsinhalte in den Unterlagen.
Zurück zum Anfang
Sprachmodelle (engl. Large Language Models, LLMs) wie ChatGPT und Llama 2 sind in vielen Bereichen auf dem Vormarsch. Trainiert auf enormen Datensätzen aus dem Internet sind diese in der Lage, für alle erdenklichen Anliegen Rede und Antwort zu stehen. Doch eine große Wissenslücke besitzen alle LLMs: Informationen, die nicht im Trainingsdatensatz vorlagen, sind vollkommen unbekannt. Damit können Fragen zu bspw. vertraulichen, unternehmensinternen Dokumenten oder der neuesten Veröffentlichung einer Autorin nicht beantwortet werden.
Es gibt zwei Möglichkeiten, das Sprachmodell um initial unbekannte Informationen zu erweitern:
Weiterführendes Training
Durchführen weiterer Trainings-Iterationen mit neuen Informationen. Der benötigte Rechenaufwand ist jedoch immens – auch wenn neue Trainings-Frameworks (wie z. B. DeepSpeed) eine Verbesserung versprechen. Für die meisten Unternehmen wird diese Option ausscheiden.
Retrieval Augmented Generation
Durch sogenanntes Retrieval Augmented Generation wird die Anfrage des Nutzers an das LLM durch hilfreiche Inhalte erweitert, damit aus diesen die richtige Antwort generiert werden kann
Retrieval Augmented Generation ermöglicht somit die Verwendung existierender LLMs ohne ein zusätzliches Fine-Tuning durchführen zu müssen. Doch damit geht eine andere technische Herausforderung einher: Wie stellt man dem LLM im Hintergrund die passenden Informationen zu einer Frage eines Users zur Verfügung, damit diese korrekt beantwortet werden kann?
Technische Implementierung
Um das LLM mit passenden Informationen zu versorgen, müssen drei Schritte durchgeführt werden:
01
Aufbau einer Wissensdatenbank
Informationen, welche dem LLM dynamisch zugeführt werden sollen, müssen zunächst in geeigneter Form abgespeichert werden. Dokumente werden dazu in einzelne Abschnitte unterteilt und deren Embedding in einer sogenannten Vektordatenbank vorgehalten.
02
Suche nach relevanten Abschnitten
Wird nun eine Anfrage an das LLM gestellt, so werden in der Vektordatenbank die ähnlichsten Embeddings und damit einhergehend die für die Anfrage relevantesten Textabschnitte, gesucht.
03
Erstellung eines Kontexts
Die relevantesten Textabschnitte werden dann als Kontext dem LLM zur Verfügung gestellt, auf dessen Basis dann die Anfrage des Users beantwortet werden kann.
Suche nach den passenden Informationen
Im ersten Schritt werden vorliegende Dokumente in semantisch sinnvolle Abschnitte unterteilt, damit jeder Abschnitt ungefähr einem Thema entspricht. Mit sogenannten Embedding-Modellen können diese Textabschnitte als numerische Vektoren repräsentiert werden. Semantisch ähnliche Textabschnitte resultieren dabei in ähnlichen Vektoren, welche in einer Vektordatenbank gespeichert werden.
Der Trick: Die Frage des Users an das LLM kann mit dem gleichen Embedding-Modell eingebettet werden. Für den daraus ergebenden Vektor können dann die ähnlichsten Vektoren aus der Vektordatenbank bestimmt werden. Die Vektoren stellen die Textabschnitte dar, welche semantisch die höchsten Ähnlichkeiten zur Frage aufweisen, d. h. eine Antwort liefern können.
Alles eine Frage des Kontexts
Sind die relevanten Textabschnitte identifiziert können diese als Kontext der ursprünglichen Anfrage an das LLM angehängt werden. Wurden weiterhin Quellenangaben als Metadaten in der Vektordatenbank gespeichert, so können diese im Kontext ergänzt werden, damit diese in der Antwort des LLMs verwendet werden können. Zusätzlich kann die Chat-Historie eingefügt werden, um einen Fragen-übergreifenden Kontext herzustellen.
Die Relevanz der Chat-Historie für die Kontextsuche wird durch eine separate Anfrage an das LLM bestimmt. Inwiefern das LLM bei der Beantwortung von Fragen neben den Informationen im Kontext auf das eigene antrainierte Wissen zugreifen darf, kann über die Anweisung gesteuert werden.
Metadaten
Als Metadaten werden die Informationen bezeichnet, die als Zusatz zu einem Textabschnitt in der Vektordatenbank abgespeichert werden. Zum Beispiel kann dies die Seitennummer, die Kapitelzahl und der Link des zugehörigen Dokuments des Textabschnitts sein, damit diese für Quellenangaben verwendet werden können. Die meisten Vektordatenbanken unterstützen dabei das Filtern auf Metadaten, womit die Suche nach relevanten Textabschnitten eingeschränkt werden kann.
Werden zusätzlich Filter durch LLMs dynamisch aus der User-Anfrage extrahiert, so spricht man von Self-Query Retrievern.
Welche Metadaten für eine Anwendung implementiert werden, sollte abhängig vom Use Case entschieden werden.
Verwendete Technologien
Der Moodle Chatbot lässt sich in vier Module aufteilen, für welche nachfolgend die verwendeten Technologien und mögliche Alternativen aufgelistet sind:
Vektordatenbank
Datenbank für Chat-Historie
LLM Framework
Python API
Das Moodle Plugin sendet User-Anfragen an die API und erhält von dieser eine Antwort, welche im Chat-Fenster dargestellt wird. Durch die Bereitstellung als API können auch andere Anwendungen oder Plattformen mit der API interagieren. Gehostet wird die gesamte Anwendung auf Microsoft Azure, wobei mit Azure OpenAI Services auf die Sprachmodelle zugegriffen wird.
Performance
Der Moodle Chatbot wurde systematisch mit verfügbaren Klausur- und Übungsfragen der jeweiligen Vorlesung getestet. Einen Großteil der Fragen konnte der Chatbot zufriedenstellend beantworten.
Fragen, die sich auf Abbildungen oder Diagramme beziehen, können meist nicht überzeugend beantwortet werden. Zwar können beim Aufbau der Wissensdatenbank Texte aus Bildern extrahiert oder Bildbeschreibungen erzeugt werden, aber häufig sind die Bilder für den akademischen Gebrauch und damit zu spezifisch gestaltet. Weiterhin kann der Chatbot nur mit Text antworten, womit Aufgaben bspw. zur Erstellung von Diagrammen nur umschrieben, aber nicht ausgeführt werden können.
Des Weiteren schwankt die Qualität der Antworten mit der Qualität der Vorlesungsunterlagen. Präsentationen mit Inhalten, welche entweder viel Kontext oder Vorwissen voraussetzen, können Probleme verursachen, wenn die User-Anfragen nur mit der Wissensdatenbank beantwortet werden sollen. Gelöst wird dieses Problem mit der zusätzlichen Benutzung des Weltwissens des Chatbots, womit Antworten unterfüttert werden können.
Use Cases für die RWTH Aachen
Bisher wurde das klassische Question Answering für eigene Dokumente beschrieben, bei dem Fragen über für das LLM eigentlich unbekannte Dokumente gestellt werden können. Für die RWTH Aachen wurden außerdem zwei weitere Use Cases entwickelt, um die Studierenden zu unterstützen:
Generierung von Probeklausuren
Hierbei werden zufällige Textabschnitte aus der Vektordatenbank abgefragt, aus welchen dann Fragen in Form einer Probeklausur generiert werden.
Erstellung von Zusammenfassungen
Hierbei werden alle Textabschnitte einer Vorlesung oder eines Kapitels abgefragt und vom LLM zusammengefasst.
Welcher der Use-Cases abhängig von der Anfrage genutzt werden soll, wird dabei ebenfalls von einem Sprachmodell entschieden. Ergänzt werden alle Use Cases durch erweiterte Monitoring-Möglichkeiten, um einen kontinuierlichen Verbesserungsprozess zu ermöglichen.
Ausblick
Mit der Integration von GPT in die Lernplattform Moodle hat die RWTH Aachen somit einen weiteren großen Schritt zur digitalen Lehre der Zukunft gemacht.
Eine Zusammenfassung der Eindrücke, Herausforderung und der nächsten Schritte beschreibt Prof. Krieg als Prorektor für Lehre an der RWTH Aachen in einem ausführlichen Artikel.
Zum Einen wird die Nutzung im Regelbetrieb an der RWTH Aachen vorbereitet. Zum anderen ist auch die Weitergabe der Erfahrungen ggf. sogar als Open-Source-Softwarelösung an andere Hochschul-Einrichtungen geplant.
Wir freuen uns, die nächsten Schritte auf dem Weg der digitalen Lehre der Zukunft mit dem Einsatz von Künstlicher Intelligenz mit gestalten zu dürfen.
Autor
Jan Höllmer, Data Scientist bei scieneers GmbH
jan.hoellmer@scieneers.de