NextGeneration:AI – Innovation trifft Datenschutz
In Zusammenarbeit mit der Carl Remigius Fresenius Education Group (CRFE) implementierten wir in den letzten Wochen eine modular erweiterbare und datenschutzkonforme Plattform mit dem Namen „NextGeneration:AI“, die in ihrer Funktionalität Ähnlichkeit zum OpenAI ChatGPT-Interface aufweist. Bei der CRFE handelt es sich um eines der größten privaten und unabhängigen Bildungsunternehmen in Deutschland, mit über 2.500 Mitarbeiter:innen und über 35.000 Studierenden und Schüler:innen in 18 Bildungseinrichtungen, wie z.B. der Hochschule Fresenius. Alle Mitarbeitende, Studierende und Schüler:innen erhalten durch die von uns implementierte Chat-Anwendung die Möglichkeit, mittels Einsatz von generativer Künstlicher Intelligenz (KI) diverse Lern- und Arbeitsprozesse zu optimieren.
Unser gemeinsames Projekt wurde inzwischen auch in der Presse diskutiert. So findet sich z.B. ein Interview mit dem Projektleiter Uwe Stoklossa in der Frankfurter Rundschau oder auf dem Bildungsblog Unidigital.news.
Was bietet NextGeneration:AI?
Die zentrale Anforderung bei der Implementierung von NextGeneration:AI war die Gewährleistung von Datenschutzkonformität. Datenschutzkonformität bezieht sich hier vor allem auf die Einhaltung der Datenschutz-Grundverordnung (DSGVO), wodurch garantiert werden soll, dass aufkommende Daten während des Chat-Prozesses nicht für das Training des eingesetzten Modells genutzt werden. Um die Vertraulichkeit der Daten bei der Chat-Anwendung zu gewährleisten, haben wir uns dafür entschieden diese mit Sprachmodellen basierend auf Azure OpenAI zu implementieren. Genauere Informationen dazu, wie genau Datenschutz bei Azure OpenAI definiert wird, gibt es in diesem früheren Blogpost.
Neben der Datenschutzkonformität waren der CRFE folgende Komponenten wichtig:
Authentifizierung über LTI-Absprungpunkt
Die CRFE nutzt Ilias-Instanzen als Lernplattformen, auf denen sich Studierende und Mitarbeitende einloggen können und Zugang zu Lerninhalten bzw. Kursen bekommen. Um einen hohen Aufwand durch die Pflege eines gedoppelten Nutzer:innen-Managements zu verhindern, wurde demnach festgelegt, dass Nutzer:innen über einen Login in Ilias auch Zugang zu der Chat-Applikation erhalten. Implementiert wurde das Ganze mittels eines LTI-Absprungpunkts. LTI beschreibt eine Spezifikation, die es Learning Management Systemen (LMS) wie zB. Ilias erlaubt, externe Inhalte in die Lernplattform zu integrieren bzw. mit ihnen zu kommunizieren. In dem Fall von NextGeneration:AI führt der LTI-Absprungpunkt in den Ilias-Instanzen bei erfolgreicher Authentifizierung der Nutzer:innen automatisch zum Interface der Chat-Applikation.
Dynamische Chat-Historie
NextGeneration:AI bietet Nutzer:innen einerseits die Möglichkeit, vergangene Chats in einer eigenen Ordnerstruktur abzulegen, andererseits haben sie auch die Möglichkeit, dynamisch zu entscheiden, wie viel Kontext (genauer: wie viele Nachrichten) sie bei jeder Anfrage an das Modell mitsenden wollen. Dadurch können sie selbst einen großen Einfluss auf die entstehenden Kosten während des Chats nehmen. Ältere Chats werden außerdem automatisch abgespeichert und können zu einem späteren Zeitpunkt weitergeführt werden.
Talk to your Data
Ein Aspekt, der OpenAI Chat-Anwendungen besonders attraktiv für Nutzer:innen macht, ist die Möglichkeit, eigene Dokumente innerhalb des Chats hochzuladen und mit diesen Dokumenten zu chatten. Gerade im Kontext Bildung und Lehre erleichtert dieses Feature die Arbeit mit Texten aller Art enorm. Im Rahmen von NextGeneration:AI haben wir mittels Azure AI Search ein Retrieval Augmented Generation System (RAG) implementiert, dass es dem Sprachmodell erlaubt, auf private Dokumente als Wissensbasis zuzugreifen und seine Antworten dahingehend anzupassen.
Mehr Informationen zu dem “Talk to your Data” Ansatz gibt es in diesem Blogpost.
Szenarien
NextGeneration:AI bietet die Option, dem Modell benutzerdefinierte Anweisungen mitzugeben, die einzelne Chats dann in einen anderen Kontext setzen können. So ist es z.B. möglich, dem Modell die Dozent:innen-Rolle zuzuweisen und dadurch eine gezieltere Unterstützung bei der Prüfungsvorbereitung in einzelnen Kursen zu erhalten. Nutzer:innen können Szenarien für jede sich oft wiederholende Aufgabe oder verschiedene oft genutzte Personas anlegen und jederzeit auf diese zurückgreifen. Szenarien können genauso wie die Chat-Historie abgespeichert und in eine eigene Ordnerstruktur einsortiert werden.
Kostenkontrolle
Die Kontrolle der auflaufenden Kosten umfasst bei NextGeneration:AI zwei Aspekte: Zum einen sollen Nutzer:innen selbst eine gute Übersicht darüber haben, welche Kosten bisher durch das Chatten schon aufgelaufen sind. Zum anderen soll es Administrator:innen möglich sein, verschiedenen Nutzer:innen-Gruppen auch unterschiedliche Budgets für die Nutzung der Chat-Anwendung bereitzustellen. Dieses Feature erlaubt ein genaues Monitoring der Kosten und verhindert somit eine unkontrollierte Kostenexplosion, da Nutzer:innen nach Aufbrauchen ihres Budgets auch nicht mehr weiter chatten können.
Vereinfachte Darstellung der Architektur von NextGeneration:AI in Azure
Architektur von NextGeneration:AI
NextGeneration:AI wurde im Wesentlichen durch die Verwendung diverser modularer Azure Services entwickelt. Die zentrale Rolle spielt dabei das Quart-Backend, das alle notwendigen APIs bereitstellt und damit auch die Logik für die oben dargestellten Funktionalitäten von NextGeneration:AI implementiert.
Im Folgenden sind die einzelnen Komponenten der Architektur im Detail beschrieben:
Quart
Quart ist eine asynchrone Implementierung des weit genutzten Python FlaskAPI-Frameworks. Es wird für die Bereitstellung von APIs genutzt und bildet bei NextGeneration:AI den Kern der Anwendung. Über Quart läuft alles, von der Kostenkontrolle, bis hin zum Nutzer:innen-Management und der Verwaltung der Chats und ihrer Historie. Im Falle von NextGeneration:AI wird die Quart-Anwendung als Docker-Container innerhalb einer Azure Web App gehostet.
Azure OpenAI
Azure OpenAI bietet Zugang zu fortschrittlichen Large Language Models (LLMs). Es ermöglicht die Integration von natürlichen Sprachverarbeitungsfunktionen in Anwendungen, um Aufgaben wie Textgenerierung oder Übersetzung zu lösen. Mit Azure OpenAI können Nutzer:innen chatten. NextGeneration:AI nutzt Azure OpenAI, um die LLMs GPT-3.5 und GPT-4 in die Chat-Anwendung zu integrieren.
Azure CosmosDB
Azure Cosmos DB ist eine vollständig verwaltete NoSQL-Datenbank, die sich insbesondere für KI-Anwendungen besonders gut eignet. Sie unterstützt verschiedene Datenmodelle und bietet somit eine hohe Flexibilität für diverse Anwendungsfälle. Im Fall von NextGeneration:AI nutzen wir die Azure CosmosDB um diverse Daten, die während des Chat-Prozesses entstehen oder für den Chat-Prozess relevant sind, abzuspeichern. Dazu zählen Chatnachrichten, Nutzer:innen-Daten (z.B. wurden die Nutzungsbedingungen akzeptiert?), Daten zu den verbrauchten Kosten, etc. Dadurch ist es uns auch im Nachgang möglich, eine detaillierte Nutzer:innen-Analyse zu erstellen, die Einsichten in das Verhalten von Nutzer:innen und die Nutzung des Chat-Services liefert.
Azure Storage Account
Azure Storage Account ist ein Service, der robuste und skalierbare Speicherlösungen für Daten unterschiedlicher Art bietet. Er unterstützt verschiedene Datentypen wie Blobs, Dateien, Tabellen und vieles mehr. Bei der Implementierung von NextGeneration:AI wird der Storage Account genutzt, um die hochgeladenen Dateien der Nutzer:innen abzuspeichern.
Azure Functions
Azure Functions bieten eine einfache Möglichkeit, Code in der Cloud auszuführen, ohne dass man sich um die darunterliegende Infrastruktur Gedanken machen muss. Der Azure Functions – Service wird bei NextGeneration:AI insbesondere beim Hochladen von neuen Dokumenten genutzt. Neue Dokumente werden im Azure Storage Account abgelegt, woraufhin ein Trigger eine Azure Function auslöst, um für die neuen Dokumente Embeddings in Azure AI Search zu generieren. Darüber hinaus gibt es eine Azure Function, die für das Löschen von Dokumenten in Azure AI Search zuständig ist.
Azure AI Search
Azure AI Search ist ein Service, der es erlaubt, leistungsstarke Suchfunktionen in Anwendungen zu integrieren. Mit diversen KI-Algorithmen ermöglicht Azure AI Search die Durchführung von Volltextsuchen und semantischen Suchen in strukturierten und unstrukturierten Daten. In NextGeneration:AI wird Azure AI Search genutzt, um ein RAG-System zu implementieren, dass es Nutzer:innen erlaubt mit ihren eigenen Dokumenten zu chatten. Hierbei werden die relevantesten Dokumentenauszüge basierend auf der Nutzer:innen-Anfrage abrufen und dem OpenAI-Service im Prompt zur Verfügung gestellt. Der OpenAI-Service generiert anschließend eine Antwort basierend auf der Chathistorie, der letzten Eingabe und den zur Verfügung gestellten Dokumentenauszügen.
Azure Container Registry
Azure Container Registry ist ein Service, der für das Speichern und Verwalten von privaten Docker-Container-Images genutzt wird. In NextGeneration:AI wird die Azure Container Registry genutzt, um sowohl das Docker-Image vom Frontend als auch das Docker-Image vom Backend zu speichern und für die Anwendung nutzbar zu machen. Die notwendigen Docker-Images entstanden im Entwicklungsprozess und wurden im Zuge von implementierten CI/CD Pipelines von Azure DevOps in die Azure Container Registry übertragen.
Fazit
LLMs, zu denen die gängigsten Sprachmodelle wie GPT-3.5 und GPT-4 gehören, sind aus dem täglichen Arbeiten mit Texten nicht mehr wegzudenken. Studierende und Mitarbeitende der CRFE haben durch NextGeneration:AI nun die Möglichkeit, einerseits den Umgang mit LLMs in einem datenschutzkonformen Rahmen zu erlernen und andererseits den Mehrwert, den eine solche Chat-Applikation bietet, für ihre tägliche Arbeit oder ihr Studium zu nutzen.
Zukünftig wäre eine Einbindung weiterer generativer Modelle, z.B. zur Bildgenerierung, denkbar, so wie die Erweiterung der allgemeinen Applikation um nützliche zusätzliche Features, wie zB. das Teilen von Szenarien unter den Nutzer:innen. So könnte man gleichzeitig auch angeeignetes Wissen über richtiges Prompting in der breiten Masse streuen.
Wir danken der CRFE, insbesondere dem Team rund um Prof. Uwe Stoklossa, für das Vertrauen, dass sie unserer Arbeit entgegengebracht haben und die gute und erfolgreiche Zusammenarbeit! Wir freuen uns sehr darüber, dass wir mit unserer Arbeit dazu beitragen konnten das Thema KI für die Studierenden und Mitarbeitenden der CRFE zugänglicher zu machen und ihnen somit ihren Arbeitsalltag zu erleichtern.
Autorin
Florence Lopez, Data Scientist bei scieneers GmbH
florence.lopez@scieneers.de