Heikle Daten im Browser verarbeiten

Wie man mit Browser-Sprachmodellen Datenschutz für KI-Anwendungen ermöglicht

Ein Sprachmodell läuft im Browser für Datenschutz

In der digitalen Landschaft ist Datenschutz nicht nur ein Schlagwort, sondern eine zentrale Säule der Technologieentwicklung. Stellen wir uns vor, unser Team steht vor der Herausforderung, eine innovative Applikation zu entwickeln, die Nutzerdaten – von Texteingaben bis hin zu sensiblen Dokumenten – intelligent verarbeitet. Intelligent heisst hier, dass die Applikation Dokumente lesen, verstehen, klassifizieren und plausibilisieren kann. Der Benutzer bekommt dabei fundierte und gut formulierte Rückmeldungen wie von einem Experten, und kann so seine Dokumente besser zusammenstellen. Solche Applikationen können wir heute dank den modernen Sprachmodellen (LLMs, Large Language Models) einfach realisieren.

Doch hier stossen wir auf ein Dilemma, das so alt ist wie die IT-Branche selbst: Wie schützen wir die Privatsphäre unserer Nutzerinnen, ohne Kompromisse bei der Funktionalität einzugehen? Die Daten sind eventuell so heikel, dass wir sie am liebsten gar nicht in unserem Unternehmen speichern wollen, und sie schon gar nicht an einen Drittanbieter weiterreichen können. Die grossen Sprachmodelle die wir üblicherweise benutzen, leben in der Cloud. Wenn wir damit intelligente Applikationen bauen, verzichten wir und unsere Benutzerinnen auf die volle Kontrolle über unsere Daten. Wir müssten also wählen zwischen Intelligenz in der Applikation und Datenschutz. Muss das so sein? Können wir nicht beides haben?

Im Sommer 2023 diskutierten wir ein solches Problem bei einem Mittagessen. Es stand die Idee im Raum, die Verarbeitung nicht auf unseren Servern oder in der Cloud durchzuführen, sondern direkt im Browser des Nutzers. Dies würde bedeuten, dass die Daten das Gerät des Nutzers nicht verlassen, was einen enormen Gewinn bezüglich Datenschutz darstellt.

Ich sagte damals: "Im Moment geht das noch nicht. Die Sprachmodelle heissen nicht umsonst "Large Language Models", deshalb ist es ist nicht möglich, so ein Modell kurz mal mit ein bisschen Webseiten-Javascript laufen zu lassen. Ich habe aber so ein Gefühl, dass es nicht mehr lange dauern wird, bis es möglich sein wird." Und tatsächlich - in den letzten Monaten hat sich sehr viel getan. Heute kann ich euch zeigen, wie kleine, aber leistungsstarke Sprachmodelle in Kombination mit neuester Browsertechnologie dabei helfen können, die Privatsphäre unserer Nutzer zu schützen.

OpenSource Sprachmodelle: Datenschutz ist gewährleistet, aber...

Als ersten Schritt zu intelligenten Applikationen, die den Datenschutz respektieren, kann man auf Sprachmodelle setzen, die man lokal auf dem eigenen Rechner laufen lässt. Diese Modelle lädt man einmal herunter, und danach passieren die Interaktionen mit dem Modell lokal. Es müssen keine Daten in die Cloud geschickt werden. Woher bekommt man aber solche Modelle? OpenAI rückt seine Modellfiles nicht heraus, die Modelle sind nur via Cloud verfügbar, und man bezahlt für jede Anfrage. Aber schon kurz nach dem Start von ChatGPT kamen viele neue Sprachmodelle heraus, die ChatGPT nacheifern. Die Modelle werden von Hochschulen, Konkurrenten, Startups und staatlich geförderten Organisationen als OpenSource verfügbar gemacht, und jeder kann diese im Prinzip herunterladen und lokal auf dem eigenen Rechner laufen lassen. Ich nenne diese Modelle in diesem Artikel "erste Generation von OpenSource Sprachmodellen". Ein paar Beispiele dafür sind:

  • Llama von Meta
  • Vicuna LLM
  • Falcon (in Varianten von 7b = 7 Milliarden Parameter bis 180b = 180 Milliarden Parameter)
  • Mistral 7b (nur Englisch, Mistral AI)
  • Mixtral 8x7B (mehrsprachig, Mistral AI)

Es gibt noch einen ganzen Zoo von weiteren LLms, ich beschränke mich hier auf die Bekanntesten.

GPT-3, das Modell hinter dem ersten ChatGPT, hat 175 Milliarden Parameter, es ist also sehr gross. Bezüglich der neueren Modellen wie GPT-3.5 Turbo und GPT-4 hält sich OpenAI bedeckt und nicht open - es ist nicht bekannt, wieviele Parameter diese wirklich haben.

Probleme der ersten Generation OpenSource Modelle

Problem 1: Umständliche Installation

Die Modelle sind alle recht gross, und es brauchte zunächst sehr leistungsfähige Rechner und spezialisierte Machine-Learning Software, um überhaupt irgendeine Antwort von diesen Modellen zu bekommen. Später haben es OpenSource Enthusiasten möglich gemacht, diese Modelle auch zuhause oder im Büro auf einem eigenen handelsüblichen PC laufen zu lassen. Mit solchen lokalen Modellen kann man Chatbots und intelligente Applikationen bauen, die kein Bit an schützenswerter Info in die Cloud schicken. Die verbreitetste Library dafür, llama-cpp, ist ein hochoptimiertes Wunderwerk der Technik. Aber um diese Software zu installieren braucht es einerseits einigen technischen Aufwand, und man muss sich auskennen. Die grösseren Modelle brauchen darüber hinaus noch teure Graphikkarten um vernünftig schnell zu laufen, und es kommen oft noch Treiber und sonstige Software dazu. Das ist eher etwas für Techies und Geeks. Und "aus der Ferne" ist es praktisch unmöglich, diese ganze Laufzeitumgebung von einem Unternehmen oder einer Verwaltung aus auf den Rechner des Benutzers zu installieren. Man müsste sich zurückbewegen in der Zeit und die User motivieren, das richtige Softwarepaket für das eigene Betriebssystem und das Rechner- und Graphikkartenmodell herunterzuladen und zu installieren. Naja, für die Steuererklärung und für Computergames machen wir das schon, aber schön ist es nicht. Wir brauchen eine Lösung für das Installationsproblem.

Problem 2: Schrumfpdummheit

Neben der umständlichen Installation ist gibt es noch ein weiteres Problem mit der ersten Generation. Die empfohlenen Modelle sind so gross, dass es nicht machbar scheint, sie im Browser laufen zu lassen. Die Modelle sind oft in verschiedenen Grössen zu haben, und deshalb könnte man auf die Idee kommen, einfach nur die kleinen Versionen der Modelle zu benutzen - die kleinsten Versionen würden vielleicht knapp in den Browser passen. Versucht man das mit den Modellen aus der Gruppe von LLama und seinen ersten Abkömmlingen dann sieht man sehr schnell, dass sie mit abnehmender Anzahl Parametern stark an Leistung einbüssen. Bei den kleinsten Versionen (also z.B. den 7b Varianten) verliert man meist die Mehrsprachigkeit, und die Modelle produzieren immer mehr künstliche Dummheit - so werden die Modelle praktisch nutzlos.

Und deshalb wurde zunächst nichts aus der Idee einer lokalen Applikation beim User - mit einem Spatzenhirn ist nicht viel anzufangen. Es braucht eine Lösung für das Problem der Schrumpfdummheit.

Lösung für die Schrumpfdummheit: Optimieren, optimieren, optimieren

An den Sprachmodellen wird mit Hochdruck weiterentwickelt. Einerseits arbeiten viele Firmen und Forscher daran, endlich GPT-4 als bestes Sprachmodell der Welt zu überholen oder wenigstens einzuholen. Das ist ein wichtiges Ziel, und der Gewinner wird vorerst wohl ein riesengrosses Modell in der Cloud sein. Um die Schrumpfdummheit zu besiegen, muss man an einer anderen Frage arbeiten: Wie kann man kleinere Modelle trainieren, die mit weniger Parametern gleich gute Leistung erbringen wie deutlich grössere? Diese Herausforderung sieht ähnlich aus wie die vielen Optimierungsprobleme in der Ingenieurskunst: Reduktion des Treibstoffverbrauchs bei Autos, Schrumpfen von Computerchips, Performanceverbesserung von Software, besserer Wirkungsgrad einer Dampfturbine, usw. Weil die Optimierung auch bei Sprachmodellen viel bringt (weniger Stromverbrauch, schnellere Antworten, neue Anwendungen auf kleineren Geräten) haben sich viele Ingenieure auf dieses Problem gestürzt. Und es gibt Erfolge zu vermelden.

Microsoft und StabilityAI im Rennen um das kleinste Modell

Als erstes Beispiel für den Trend zu kleineren Modellen hat Microsoft die phi-Reihe herausgebracht. Die Modelle Phi-1, Phi-1.5, und schliesslich Phi-2 mit 2.7 Milliarden Parametern im Dezember 2023 sollen leistungsmässig an viel grössere Modelle heranreichen. Phi-2 ist in der Tat klein und leistungsfähig, es ist aber nur in Englisch trainiert worden, und ist für unsere Zwecke deshalb nicht anwendbar - als Schweizer Firma wollen wir für die Benutzer Deutsch, Französisch und Italienisch anbieten.

Aber auch andere Unternehmen machen beim Optimierungsrennen mit: StabilityAI, sonst bekannt für Stable Diffusion (ein Modell für das Generieren von KI-Bildern), hat auch in Sprachmodelle investiert. Die Entwickler in London haben sich zum Ziel gesetzt, mit weniger Parametern auszukommen, damit man die Modelle auf dem Rechner des Benutzers oder sogar im Mobiltelefon laufen lassen kann. Im Dezember 2023 kam "Stable LM Zephyr 3b" heraus. Das Modell zeigt hohe Leistung, obwohl es nur 3 Milliarden Parameter hat. Aber auch bei diesem Modell ist nur Englisch unterstützt. Es ging aber Schlag auf Schlag weiter, und so gab es bereits einen Monat später, am 19. Januar 2024, ein Update. Stability AI präsentierte ein weiteres Modell, "Stable LM 2 1.6B". Das Modell begnügt sich mit 1.6 Milliarden Parametern, und kann trotzdem in Englisch, Deutsch, Spanisch, Französisch, Italienisch, Niederländisch und Portugiesisch brauchbare Resultate liefern.

Ich habe die publizierten Tests von stability.ai studiert und mir selbst ein Bild von der Leistung von "Stable LM 2 1.6B" gemacht, und ich finde dass das Modell in Deutsch tatsächlich gut funktioniert. Und damit ist der beste Kandidat für intelligente Applikationen die datengeschützt im Browser laufen gefunden: Mit nur 1.6 Milliarden Parametern ist "Stable LM 2 1.6B" sparsam genug dafür.

Alle 18 Monate doppelt so gut?

Was wir hier beobachten: Es gibt rasante Leistungs- und Effizienzsteigerungen bei den Sprachmodellen. Wir sind erst etwas mehr als ein Jahr vom Start von ChatGPT entfernt, und schon haben wir Modelle, die hundertmal kleiner sind und trotzdem gute Leistung bringen. Ist dies ein Hinweis auf ein "AI-Moore's-Law"? Das würde bedeuten dass es wie in den besten Zeiten der Halbleiterindustrie alle 18 Monate doppelt soviel Leistung gibt. Wir werden die Entwicklung weiter verfolgen, ich bin gespannt, wie sich der Trend fortsetzt. Aber zurück zu unserem Problem: Wir haben jetzt die Schrumpfdummheit unter Kontrolle, aber das Installationsproblem ist noch nicht gelöst.

Lösung für das Installationsproblem: Der Browser als sichere Laufzeitumgebung

Auf der zweiten Baustelle sieht es so aus: Es ist ja schön, wenn man ein so kleines Modell wie das "Stable LM 2 1.6B" herunterladen kann, aber wenn man das Ganze nur zum laufen bringt, indem man auf komplizierteste Weise und mit Kommandozeilen-Tools mehrere Software-Pakete installiert, viele Anleitungen googelt und die Hilfe von ChatGPT in Anspruch nimmt, dann ist das für die meisten Benutzer keine Option. Aber auch hier gibt es nun Lösungen: Findige Entwickler*innen und Firmen haben einen Standard entwickelt, der es möglich macht, eine viel grössere Bandbreite von Software direkt im Browser laufen zu lassen. Der Kern davon ist "WebAssembly" (Wasm). Mit dieser Technologie kann man fast beliebige Software, die in einer Programmiersprache wie C++ oder Rust geschrieben ist, direkt im Browser laufen lassen. Es gibt unzählige nützliche Softwarepakete, die normalerweise am besten auf Linux und ähnlichen Systemen laufen, die wegen der Installationshürden aber nicht für jeden gut zugänglich sind. Der Browser hingegen ist auf fast allen Geräten vorhanden und ist unterdessen ziemlich unabhängig davon, ob er auf Windows, iOS, MacOS, Linux, Android oder sonst einem Betriebssystem läuft. All das bedeutetet, dass Software sehr schnell für viele Benutzer verfügbar gemacht werden kann - einen Browser hat ja wirklich jeder.

Und genau mit dieser Technologie haben findige Entwickler das bereits erwähnte llama-cpp Projekt in den Browser portiert. Um diese C++-Software herum, die grosse Sprachmodelle (LLMs) wie z.B. LLama und alle Abkömmlinge davon lokal laufen lassen kann, hat jemand ein "Gstältli" gebaut, sodass man die Sprachmodelle jetzt auch in den Browser hängen kann. Das Projekt heisst "llama-cpp-wasm", und ist als open-source verfügbar. Falls ihr das selbst ausprobieren wollt, muss ich eine kleine Warnung abgeben: llama-cpp-wasm ist das Gegenteil von plug-and-play, und es hat auch keine Batterien dabei. Man braucht einiges an Entwicklerwissen über moderne Webtechnologien und LLMs, sowie ein bisschen C++ know-how, um es erfolgreich für eigene Anwendungen zum Laufen zu bringen.

Kleines OpenSource Modell + WebAssembly + LlamaCPP = Intelligenz ohne Cloud und ohne Installation

Mit diesen technischen Bausteinen (Kleines Sprachmodell, Web Assembly, LlamaCPP) kann man nun eine Applikation bauen, die für die Endbenutzerin ganz einfach aussieht: Wenn sie auf die Webseite surft, die ein solches Modell anbietet, dann lädt der Browser zuerst das ganze Modell herunter. Ab diesem Zeitpunkt braucht es dann keine Netzwerkverbindung mehr, die Benutzerin könnte das WLAN sogar ausschalten und die Netzwerkkabel ausstecken, die Applikation liefe trotzdem weiter.

Die Applikation benutzt im Hintergrund das in den Browser geladene Modell für intelligente und erstaunliche Features. Die Daten bleiben dabei auf dem lokalen Rechner. Die KI kann nun zum Beispiel die Dokumente für ein Gesuch lesen, prüfen und Rückmeldungen darüber geben, ob alles den Anforderungen für das Gesuch entspricht. Wenn der KI-Prozess fertig ist, können die weiteren Prozesse auf klassische Art und mit klassischen Sicherheitsmassnahmen ablaufen. Für all dies genügt ein Klick auf einen Link, eine Softwareinstallation bei der Benutzerin ist nicht nötig.

Dezentralisierte Browser-Sprachmodelle für Datenschutz und Skalierbarkeit

Damit eröffnen sich völlig neue Möglichkeiten: Als Firma oder Verwaltung kann man nun Applikationen bauen und auf der eigenen Website anbieten, die intelligent mit Sprache umgehen ohne dass Datenverkehr aus dem Computer der Nutzer in die Cloud geschickt wird. Das ist ein enormer Vorteil für den Datenschutz. Als Anbieter der Applikation hat man darüber hinaus noch weitere Vorteile: Man muss sich weder auf einen Cloud-Anbieter verlassen, noch muss man im eigenen Haus eine grosse Infrastruktur für die LLMs bereitstellen. Falls plötzlich tausende von Benutzern gleichzeitig auf die Applikation zugreifen wollen ist das kein Problem, denn jeder Benutzer bringt seine eigene Rechenleistung mit und stellt sie für seine lokale Kopie des Sprachmodells zur Verfügung. Skalierungsprobleme sind damit elegant gelöst.

Seid Ihr erstaunt, fasziniert, neugierig oder skeptisch? Wenn ihr diese Technologie selbst live sehen wollt, Euch aber nicht durch den Open-Source-Dschungel wühlen mögt, kontaktiert uns. Wir zeigen Euch gerne, wie das alles funktioniert und welchen Nutzen diese Technologie für Euch haben kann.

Markus Emmenegger
Markus Emmenegger

Lust auf mehr Blogs?

RAG alleine macht noch keinen guten Suchbot

Nathalie Portmanns Erkenntnis: Je besser die Dokumente im Suchkorpus geschnetzelt sind, desto besser die Suchergebnisse.

Wie man schlanke Chatbots baut

Markus Emmenegger erklärt, wie moderne Chatbots auch in kleinen Servern laufen können.

RAG alleine macht noch keinen guten Suchbot

Nathalie Portmanns Erkenntnis: Je besser die Dokumente im Suchkorpus geschnetzelt sind, desto besser die Suchergebnisse.

Wie man schlanke Chatbots baut

Markus Emmenegger erklärt, wie moderne Chatbots auch in kleinen Servern laufen können.

Kontaktieren Sie uns!

poemAI GmbH
Rämsiweg 8
6048 Horw
;