Nachricht für neue Nutzer.
Nachricht für engagierte Nutzer.

Benutzer:Erichrueger

Aus ZUM-Unterrichten

lokale LLMs als vollwertiger Ersatz zu Online-Anbietern

Wie komme ich zu meinen Sonntagsbrötchen?

Die Familie ist hungrig, der Bäcker einen Kilometer weit entfernt. Ich bestelle mir also ein Taxi mit viel Platz, am besten eine vollklimatisierte Großraumlimousine, und lasse mich zum Bäcker und auch wieder nach Hause kutschieren. Samuel, der Fahrer, kennt mich schon (er fährt mich auch zum Sport und zum Büro) und ich erzähle ihm auf der Fahrt alle Neuigkeiten von meiner Familie und meiner Arbeit. Er hört immer gerne zu und fragt ab und an ein paar Details nach. Nur von sich selbst mag er nicht erzählen. Eigentlich weiß ich, dass es gesünder wäre mit dem Fahrrad zu fahren, billiger sowieso. Auch für die Umwelt wäre es besser, denn die Limousine verbraucht sicher einiges an Sprit. Aber dafür sind geräumigen Taxen sehr bequem, sauber und werden immer wieder gegen neuere Modelle getauscht. Für nächsten Monat ist wieder ein Wechsel angekündigt. Der Kofferraum soll nochmal größer werden. Das muss ich unbedingt ausprobieren. Das Fahrrad müsste ich erst aus der Garage holen und ab und zu den Reifendruck kontrollieren. Viel zu viel Aufwand.

Nachteile großer KI-Onlineanbieter

Was in der obenstehenden Geschichte merkwürdig und übertrieben klingen mag, spiegelt das Verhalten eines Großteils der Nutzer großer Sprachmodelle (LLMs) wider. Egal für welche Aufgabe, zum Einsatz kommen meist Modelle der Firma OpenAI, deutlich weniger benutzen auch Produkte von Google oder Anthropic. Für diese Produkte gibt es viele gute Argumente: Sie sind bequem zu nutzen und machen einem den Einstieg leicht. Sie werden überall unterstützt und kontinuierlich weiterentwickelt. Jeder kennt sie und die laute Werbung lässt es so wirken, als gäbe es keine Alternativen.

Über Ihre Nachteile wird weniger gesprochen:

  • Training und Betrieb verschlingen unglaubliche Mengen Energie und Wasser.
  • Ein guter Teil der Trainingsdaten wurden vermutlich rechtswidrig und ohne Zustimmung der Besitzer verwendet.
  • Auch die zu Grunde liegende Technik ist Verschlusssache und kann nicht von Außen auf Fehler hin untersucht werden.
  • Eingaben der Benutzer werden Teil des Wissensschatzes der Betreiberfirmen, ohne die Möglichkeit die gespeicherten Daten einzusehen und ggf. entfernen zu lassen. Kostet die Ware nichts bist Du die Ware. Benutzer bezahlen mit ihren Daten, oder, bei intensiverer Nutzung, auch zusätzlich mit ihrem Geld.

Besonderheiten lokaler KI (LLMs)

Es wäre falsch zu behaupten, dass frei verfügbare KI-Modelle keine der oben angesprochenen Nachteile hätten. Auch sie müssen trainiert werden, was viel Energie und Wasser kostet, auch sie sind nicht immer in allen Aspekten transparent über die Herkunft ihrer Trainingsdaten. Aber sie haben den Vorteil, dass Benutzer sie unabhängig einer dauerhaft bestehenden Internetverbindung auf eigener Hardware ausführen können und somit niemand ihre Eingaben einsehen, speichern und weiterverwenden kann. Im Umfeld einer Schule sollte dies eine Grundvoraussetzung sein. Lokale Modelle sind darauf ausgelegt nach ihrem Training auch mit geringeren Anforderungen an die Hardware zu funktionieren. Dazu haben sie eine deutlich reduzierte Anzahl an Parametern (in den Größenordnungen von 3 - 70 Milliarden, im Gegensatz zu den Modellen der großen KI-Anbieter, die oft über 100 bis 500 Milliarden Parameter besitzen (die genauen Werte verraten die Firmen nicht)). Außerdem arbeiten sie mit weiteren Optimierungstricks, wie sorgfältig kuratierten Trainingsdaten, Quantisierung oder Pruning, um ihren Hardwarehunger zu begrenzen. Ein positiver Nebeneffekt ist, dass dadurch auch der Energieverbrauch deutlich reduziert wird. Bereits Modelle der Größen 3-10 Milliarden Parametern können Erstaunliches leisten und sind für viele Anwendungsbereiche völlig ausreichend. Viele unerfahrene Benutzer bemerken den Unterschied oft gar nicht. Um die geringere Anzahl an Parametern zu kompensieren, gibt es vor allem bei den kleineren lokalen Modellen einen Trend zur Spezialisierung, während die Modelle der großen KI-Anbieter starke Generalisten sind. Die Spezialisierung führt dazu, dass kleine lokale Modelle, die viel größeren kommerziellen Modelle bei deutlich reduziertem Energieverbrauch bei bestimmten Aufgaben übertreffen können. Beim Einsatz lokaler Modelle lohnt es sich daher Zugriff auf mehrere Modelle zu haben, um diese gezielt nach dem benötigten Einsatzzweck auszuwählen.

Bedeutung von Komfort für den Erfolg lokaler KI (LLMs)

Die Notwendigkeit sich Gedanken darüber zu machen, welches das optimale Modell für einen Anwendungsfall ist, kann als Nachteil empfunden werden, denn Nutzer wünschen sich Komfort. Dieser Wunsch ist nachvollziehbar und muss daher besondere Beachtung finden. Durch die kommerziellen Anbieter wurde ein gewisser Standard gesetzt, der von potenziellen Neunutzern lokaler KI erwartet wird. Diese Erwartung erstreckt sich sowohl auf die Bedienung als auch auf den Funktionsumfang und natürlich ganz besonders auf die Qualität der Ergebnisse. Werden die Erwartungen enttäuscht, ist davon auszugehen, dass die Nutzung nach einer Testphase weitergeht.

Im Folgenden sollen zwei Ansätze beschrieben werden leistungsfähige LLMs mit Komfort unabhängig lokal zu betreiben.

Ein Ansatz bezieht sich auf eine möglichst einfach einzurichtende Lösung für Anwender, die KI, genauer gesagt LLMs auf ihrem eigenen Rechner betreiben wollen. Der zweite Ansatz befasst sich mit einer Möglichkeit LLMs für größere Gruppen -mit einer gefälligen und an die kommerziellen Anbieter angelehnten Oberfläche- zentral in einem Netzwerk oder über das Internet für ausgewählte Personen bereitzustellen. Beide Ansätze basieren ausschließlich auf freier Software. Durch eine sorgfältige Auswahl der Modelle können auch Bedenken in Bezug auf die Erzeugung nicht erwünschter Inhalte auf ein zu den großen Anbietern vergleichbares Maß reduziert werden.

Baustein 1: Ollama - der Inferenzserver

KI-Modelle werden mit Hilfe neuronaler Netzwerke trainiert. Diese bestehen aus digitalen Neuronen, die in Schichten organisiert und miteinander verbunden sind. Erhält ein Neuron ein Signal, muss es entscheiden, an welches andere Neuron es diese Information weiterreichen möchte. Während der Trainingsphase bilden sich beim Erreichen „Vorlieben" aus, , die in der Fachsprache als "Gewichte" bezeichnet werden. Ein Modell beschreibt immer eine Momentaufnahme aller Gewichte des neuronalen Netzes. Für unseren Anwendungsfall interessiert uns die Trainingsphase allerdings nicht, denn über Plattformen wie z.B. Huggingface, werden bereits zahlreiche fertige Modelle angeboten. Für die Anwendung ist vielmehr die Nutzung fertiger Modelle interessant. Neue Daten werden in das neuronale Netzwerk gegeben und durch dieses auf Basis der bestehenden Gewichtungen verarbeitet. Diesen Vorgang nennt man Inferenz. Wir möchten zum Beispiel einen Text, wie z.B. eine Frage, in das Netzwerk "einspeisen" und erwarten, dass als Ergebnis ein Text mit der zughörigen Antwort entsteht. Um Modelle aus dem Internet herunterzuladen, ihnen Einstellungen zuzuweisen, sie zu aktualisieren, ggf. zu löschen, und vor allem um sie auf der verfügbaren Hardware auszuführen und uns im Netzwerk zur Verfügung zu stellen, benötigen wir einen Inferenzserver. Eine sehr beliebte, kostenlose, leistungsfähige und einfach zu bedienende Software ist das Produkt Ollama (ollama.com), welches für alle größerem Plattformen (Linux, MacOS und Windows) verfügbar ist und sich auch in virtualisierten Umgebungen wie Docker oder Kubernetes betreiben lässt.

Ollama lässt sich vollständig über die Kommandozeile bedienen. Das Kommando ollama pull "Modellname" lädt ein Modell aus dem Internet herunter und macht es zur Nutzung verfügbar. ollama ls listet alle verfügbaren Modelle auf ollama ps zeigt alle sich aktuell im Speicher befindlich Modelle an. ollama rm "Modellname" entfernt Modelle wieder. ollama run "Modellname" führt ein Modell innerhalb der Kommandozeile aus. In der Regel ist Ollama aber einfach nur im System "verfügbar". Anwender müssen sich nicht mit den Kommandozeilenbefehlen auseinandersetzen, denn Ollama stellt all seine Funktionen auch im Netzwerk zur Verfügung und lässt sich vollständig über eine API-Schnittstelle durch externe Programme bedienen. Egal welches Betriebssystem zum Einsatz kommt, es reicht erst einmal völlig aus Ollama zu installieren. Nach der Installation kann darauf aufbauende Software über den Port 11434 auf Ollama zugreifen. Die Standard-Adresse im System lautet http://localhost:11434

Baustein 2 - PageAssist - die kleine Browserlösung

PageAssist ist eine Browsererweiterung für Chrome, Firefox und zahlreiche andere Webbrowser (außer Safari) (die vollständige Liste ist hier einsehbar https://github.com/n4ze3m/page-assist) und kann direkt über die Erweiterungsverwaltung der Browser mit wenigen Klicks installiert werden. PageAssist stellt innerhalb des Webbrowsers eine Bedienoberfläche zur Nutzung von LLMs zur Verfügung und ist hauptsächlich auf das Zusammenspiel mit Ollama vorbereitet (kann aber auch andere Inferenzserver nutzen).

Nach der Installation wechselt man erst einmal in die Einstellungen (Zahnradsymbol rechts oben) und stellt in den "General Settings" die Sprache der Oberfläche und die Sprache für Spracherkennung auf Deutsch. Anschließend muss die Verbindung zu OIlama hergestellt werden, indem man innerhalb der Einstellungen unter "Ollama Einstellungen" die URL zu Ollama einträgt. Bei einer Installation von Ollama auf dem eigenen Rechner ist dies in der Regel die Adresse http://localhost:11434. PageAssist ist jetzt darauf vorbereitet die Steuerung von Ollama zu übernehmen. Erste Aufgabe ist es ein Modell herunterzuladen. Dazu wechselt man in Einstellungen – „Modelle verwalten“ und wählt dort den Schalter "Neues Modell hinzufügen" aus. Um nun ein Modell herunterzuladen, muss man nur einen Modellnamen in das Eingabefeld schreiben (z.B. llama3.2-vision) und dann auf "Modell herunterladen" klicken. Aber welche Modelle gibt es überhaupt? Speziell für die Nutzung mit Ollama vorbereitete Modelle findet man unter der URL https://ollama.com/search Für jedes Modell gibt es dort eine genaue Beschreibung. Innerhalb dieser Modellbeschreibung (auf ollama.com) gibt es ein umrandetes Feld, welches mit den Worten "ollama run "Modellname" (also z.B. "ollama run marco-o1") gefüllt ist. Der Text hinter "ollama run" ist der Modellname, den wir in PageAssist für den Download brauchen.

Modelle über PageAssist zu Ollama herunterladen

Um alle Funktionen von PageAssist nutzen zu können, sollte man mindestens zwei Modelle herunterladen. Ein "klassisches" Large Language Model (LLM) und ein "Embedding" Modell (dazu später mehr). Je nach vorhandener Hardware hat man hier eine mehr oder weniger große Auswahl. Ist der Computer schon etwas älter und bietet keine Grafikbeschleunigung über eine dedizierte GPU, muss man sich mit kleineren Modellen zufrieden geben. Kleiner bedeutet hier Modelle von 2-5 Milliarden Parametern. Bei dieser Größe bieten sich hierfür die Modelle "gemma2:2b" von Google mit 2 Milliarden Parametern, "qwen2.5:3b" von Alibaba mit 3 Milliarden Parametern, "llama3.2", von Meta mit 3 Milliarden Parametern, "phi3.5" von Microsoft mit 3,8 Milliarden Parametern an.

Auf aktuellerer Hardware, optimalerweise unterstützt durch eine GPU der Firma Nvidia oder einem Apple-Mac mit einem Prozessor der M-Reihe, dürfen die Modelle auch deutlich größer sein, sofern die GPU ausreichend VRAM mitbringt oder der Mac ausreichend "Shared Memory" hat. Neben größeren Varianten der bereits oben genannten Modelle von Google, Meta und Alibaba ist das Modell "llama3.2-vision" (ebenfalls von Meta) mit 11 Milliarden Parametern interessant. Dieses Modell kann nämlich neben Text auch Bilddateien verarbeiten (Bilder erkennen, nicht erzeugen!). Der Benutzer erhält dadurch die Möglichkeit dem LLM eine Bilddatei weiterzureichen und sich mit dem LLM über diese Bilddatei zu unterhalten. Es ist "multimodal". Läuft dieses Modell schnell genug, ist es ein gutes Modell zum Einstieg, wenn man nicht gleich mehrere Modelle installieren möchte.

Embedding Modelle für Retrieval Augmented Generation (RAG)

Wie oben bereits erwähnt, gibt es noch eine andere Klasse von Modellen, die sogenannten Embedding Modelle. Embedding Modelle werden benötigt um Text aus größeren Dokumenten (z.B. docx, odt, pdf, csv, aber auch ganzen Webseiten ...) zu analysieren und Teile des Inhalts bei Bedarf dem Prompt eines LLMs hinzuzufügen.

Wozu braucht man das?

Wir stellen uns vor, dass es z.B. in einer Schule umfangreiche Dokumente gibt, welche die internen Abläufe beschreiben. Mit Hilfe von Embedding Modellen können wir diese Dokumente inhaltlich erfassen und uns dann mit Hilfe eines "klassisches" LLMs mit den Dokumenten "unterhalten". Wir können Fragen formulieren, welche vom LLM auf Basis genau dieser Dokumente beantwortet werden. (Zum Beispiel: Wie ist das Sommerfest organisiert?)

Analog zu Dokumenten lassen sich auch Webseiten in eine Frage integrieren, zum Beispiel um tagesaktuelle Informationen durch ein LLM verarbeiten zu lassen.

Diese Möglichkeit einem LLM weitere Informationen in der Inferenzphase zuzuführen, hat den Namen Retrieval Augmented Generation, kurz RAG.

Wie funktioniert das? (stark vereinfacht)

Informationen sind in KI-Modellen in Vektoren gespeichert. Ein Embedding Modell analysiert einen Text in kleinen "Häppchen" und generiert zu jedem Stück die passenden Vektoren. Über die Vektoren wird die Bedeutung des Textes erfasst. Zwei Vektoren, die sich sehr ähnlich sind, haben auch eine ähnliche Bedeutung. Die Vektoren werden gemeinsam mit dem analysierten Quelltext in einer Vektordatenbank gespeichert. Gibt der Benutzer einen Prompt in ein LLM ein, zum Beispiel eine Frage, wird auch aus diesem Prompt ein Vektor errechnet. Dieser Vektor wird mit allen gespeicherten Vektoren in der Vektordatenbank verglichen. Wird dort ein ähnlicher Vektor entdeckt, liefert die Vektordatenbank den Quelltext an das LLM und dieses verarbeitet ihn gemeinsam mit der Frage des Benutzers, um eine Antwort zu formulieren.

Wie kann ich RAG mit Ollama und PageAssist nutzen?

PageAssist unterstützt RAG, setzt dazu aber voraus, dass über Ollama ein Embedding Modell verfügbar ist. Wie bei den LLMs gibt es eine große Auswahl an kostenlos nutzbaren Embedding Modellen, die wir in Ollama integrieren können. Die meisten dieser Modelle (wie auch das von PageAssist empfohlene Modell "nomic-embed-text") sind allerdings auf Englisch spezialisiert. Um auch deutsche Texte verarbeiten zu können, benötigen wir ein multilinguales Embedding Modell. Hierfür eignen sich sehr gut die Modelle "bge-m3" oder "snowflake-arctic-embed2", die wir wie ein LLM direkt über PageAssist herunterladen können. Sobald die Modelle zu Ollama heruntergeladen sind, muss in den Einstellungen von PageAssist unter „RAG-Einstellungen“ das gewünschte Embedding Modell eingetragen werden. Die anderen Einstellungen in dieser Maske lassen wir auf den Voreinstellungen. In den Einstellungen können wir jetzt unter "Wissen verwalten" Dokumente in einen Wissensspeicher legen. Wir geben dem Wissenspeicher dazu einen Namen und ziehen anschließen Dokumente auf das Feld unterhalb von "Datei hochladen". Sobald man auf "Absenden" klickt, beginnt Ollama die Dokumente zu verarbeiten. Sind alle Dokumente erfasst, kann man sie über den Namen des Wissensspeichers im Chatfenster von PageAssist über das aus vier Quadraten bestehende Icon (mit dem Bubble-Help-Text "Wissen") auswählen.

Prompt-Vorlagen anlegen.

In den Einstellungen von PageAssist, kann man unter "Prompts verwalten" erprobte Prompts für einen Schnellzugriff ablegen. Für jeden Prompt muss eine kurze Beschreibung erstellt werden, über welche man ihn im Chatfenster von PageAssist später aufrufen kann. Für den Prompt selbst kann man wählen, ob man ihn als "normalen" Benutzer-Prompt abspeichern möchte oder als System-Prompt. Benutzer-Prompts sind Eingaben wie man sie auch in einem Chat mit einem LLM verwenden würde. Durch den Einsatz von geschweiften Klammern, lässt sich ein Platzhalter erstellen, z.B. {Text}, um an seiner Stelle beim Aufruf des Prompts später weiteren Text einfügen zu können.

System-Prompts unterscheiden sich dahingehend von Benutzer-Prompts, dass sie nicht nur eine einmalige Anweisung an das LLM senden, sondern dass sie das grundlegende Verhalten eines LLMs anpassen, bevor dieses einen Benutzerprompt bearbeitet. Im Systemprompt kann man zum Beispiel festlegen, dass das Modell immer auf deutsch antworten soll, dass mathematische Ausdrücke in LaTeX dargestellt werden sollen oder dass das Modell immer antworten soll, als wäre es ein alter "Pirat" Aye, aye Kapitän. Aufgerufen werden die Vorlagen im Chatfenster von PageAssist über das kleine Eingabefeld neben der Ausklappliste mit den Modellen.

Websuche aktivieren

Innerhalb des Chatfensters findet sich links unterhalb der Texteingabe das Symbol einer kleinen Kugel und daneben ein Schalter, der in der Voreinstellung auf "Aus" steht. An dieser Stelle lässt sich eine Websuche aktivieren. Wird die Websuche durch Betätigen des Schalters eingeschaltet, wird nach der Eingabe des Prompts zuerst eine Websuche mit dem Inhalt des Prompts gestartet. Anschließend werden die Suchergebnisse im Hintergrund geladen, durch das Embedding-Modell erfasst (vektorisiert) und für den Prompt relevante Teile des Textes der Webseiten werden in den Kontext des LLMs eingebettet. Das LLM erzeugt im Anschluss seine Antwort auf Basis dieser Informationen. Welche Suchmaschine verwendet werden soll, lässt sich in den Einstellungen unter "Allgemeine Einstellungen" auswählen. Wer selbst einen solchen Dienst betreiben kann, dem sei hier ans Herz gelegt als Suchmaschine "searxng" auf einem separaten Server zu installieren und mit PageAssist zu verwenden, um die Anonymität bei der Websuche ein wenig zu erhöhen.

Bilder verarbeiten

Steht PageAssist ein grafikfähiges multimodales Modell zur Verfügung und ist dieses ausgewählt, so erscheint im Chatfenster rechts unterhalb der Texteingabefeldes ein kleines Bild-Icon. Klickt man dieses Icon an, kann man ein Bild auswählen und zur Verarbeitung an das LLM weiterreichen. Ähnlich wie bei RAG kann man nun Fragen oder Aufgaben zu diesem Bild stellen. Zum Beispiel kann man sich den Bildaufbau erklären lassen oder fragen, was an einer hochgeladenen Karikatur witzig ist.

Spracheingabe

Über das Mikrofonsymbol im Chat lässt sich die Spracheingabe aktivieren. Leider wird diese aber erst unterbrochen, wenn man sie aktiv durch erneutes Betätigen des Schalters deaktiviert oder indem man den erkannten Text an das LLM sendet. Eine vollständige Interaktion mit dem LLM über Sprache ist leider nicht möglich, aber man kann. sich die Ausgaben des LLMs in PageAssist über synthetisierte Sprache anhören.

Baustein 3 - OpenWebUI - die zentrale Gruppenlösung

Auch wenn es unterschiedliche Wege gibt, LLMs auf dem eigenen Computer zu installieren, PageAssist sei ein Beispiel dafür, erfordern diese immer noch ein aktives Handeln des Benutzers, um sie zum Laufen zu bringen und nicht unerhebliche Minimalanforderungen an die Hardware. Aus Sicht eines reinen Anwenders fehlt hier der Komfort, den die großen kommerziellen Anbieter bieten. Erwartet wird ein einfaches Interface, webbasiert oder als App, bei dem man sich nur anmelden muss, um sofort loszulegen. Profis hingegen erwarten eine API-Schnittstelle, um ggf. externe Anwendungen mit einem KI-Modell versorgen zu können. OpenWebUI erfüllt diese Erwartungen und ermöglicht das zentralisierte Bereitstellen von lokal in Ollama installierten LLMs für große Gruppen über ein Netzwerk. Im Aufbau dieses webbasierten Programms finden die Benutzer all die Funktionen, die sie von den großen Online-Anbietern kennen und dahr erwarten. Umgekehrt finden Systemadministratoren in OpenWebUI auch die Funktionen, die sie brauchen, um das Programm über bestehende Identitätsmanagement-Systeme sicher in Netzwerkinfrastrukturen einzubinden. Die Liste der Funktionen (https://docs.openwebui.com/features/) ist lang und wird fast wöchentlich länger, da sich eine sehr aktive Entwicklergemeinde um die Weiterentwicklung sorgt. Folgende Funktionen werden aktuell bereits angeboten (Liste auf die wichtigsten Funktionen gekürzt)

Funktionen

  • responsive, mehrsprachige, webbasierte Oberfläche, mit der Möglichkeit zur Installation als WebApp (auf Computern und Tablets/Smartphones)
  • mehrbenutzerfähig mit der Möglichkeit Rechte zu verwalten
  • Single Sign On mit LDAP und oauth2
  • Unterstützung multimodaler Modelle
  • Rendering von Code, Mathematik (z.B. LaTeX), Mermaid-Diagrammen, Markup und zahlreichen Zeichensätzen
  • sortierbare und stapelbare Chathistorie
  • Prompt-Vorlagen (auch pro Modell individuell konfigurierbar)
  • Wissensspeicher (zentrales Hinterlegen von Dokumenten)
  • Retrieval Augmented Generation (unterstützt durch Tika und mit integrierter Vektor-Datenbank)
  • Websuche über verschiedene Anbieter, auch über selbst gehostetes searxng
  • Bildgenerierung durch Integration von ComfyUI
  • Erweiterungen durch Tools und Funktionen (zu finden unter https://openwebui.com) und Pipelines (z.B. zum Filtern von Prompts auf unerlaubte Ausdrücke)
  • vollständige Modellverwaltung (inklusive aller Optionen und des Systemprompts)
  • OpenAI kompatible API-Schnittstelle
  • Sprachein- und -ausgabe (vollständige Interaktion über Sprache möglich)
  • Artifacts (Ausführen von generiertem Code in einem Fenster)
  • paralleles Ausführen verschiedener Modelle über einen gemeinsamen Prompt
  • und vieles mehr....

Voraussetzungen

Hardware

Da sich OpenWebUI an größere Nutzergruppen richtet, muss zumindest der Server (oder besser die Server) auf dem der Inferenzserver Ollama läuft, hardwaretechnisch großzügig ausgestattet sein. Großzügig bezieht sich hier auf die verfügbaren GPUs, möglichst mehrere, bei denen aktuell kaum ein Weg am Anbieter Nvidia vorbeiführt. Jede GPU sollte mit möglichst großem und schnell arbeitendem VRAM ausgestattet sein. In diesem Fall gilt "viel hilft viel". Ebenso sollte der Server großzügig mit schnellem Hauptspeicher ab 64 GB aufwärts, einem schnellen Systembus, einem schnellen Prozessor und mindestens 2 TB Speicherplatz auf schnellen NVMEs, besser deutlich mehr, ausgestattet sein.

Software

Ollama und OpenWebUI lassen sich auf jedem der großen Betriebssysteme installieren. Um aber beide Programme und auch die optionalen zuarbeitenden Erweiterungsprogramme komfortabel in Betrieb zu halten und regelmäßig zu aktualisieren, bietet sich eine containerbasierte Virtualisierungslösung wie Docker oder Kubernetes an. (Anmerkung: unter MacOS darf Ollama nicht in einer Virtualisierungslösung laufen, da ansonsten kein Zugriff auf die Hardwarebeschleunigung durch die GPU möglich ist). Für Docker existieren bereits fertige Stacks, über die sich alle Programmkomponenten komfortabel installieren und untereinander vernetzen lassen.

Netzwerk

OpenWebUI bietet seine Dienste hauptsächlich über ein Webinterface und über eine API-Schnittstelle an. Die Kommunikation erfolgt intern unverschlüsselt. Zur Anbindung nach außen und/oder über das Internet sollte zwingend ein SSL-Proxy (HAProxy, traefik, NGINXProxyManager...) vorgeschaltet werden. Um den Zugriff für die Benutzer zu erleichtern, sollte außerdem eine Domain oder Subdomain angelegt werden und per DNS-Eintrag an die OpenWebUI Installation weiterleiten.

geschätzter Aufwand

Eine Anleitung zur Installation von OpenWebUI und aller optionaler Komponenten zu schreiben, würde den Rahmen dieses kurzen Überblicks zu den Möglichkeiten lokal bereitgestellter LLMs sprengen. Die Installation ist aber dank des Rückgriffs auf Docker mit verhältnismäßig wenig Vorwissen reproduzierbar und leistbar. Der Aufbau eines Basissystems sollte keinen Vormittag dauern, vor allem, wenn die Hardwareinstallation bereits erfolgt ist, ein Gastbetriebssystem läuft und die Möglichkeit besteht die notwendigen DNS-Einträge beim Hoster der Domain zu setzen. Lediglich für den Download der großen Modelldateien muss man etwas Zeit einplanen. Bis OpenWebUI komplett an die eigenen Vorstellungen angepasst ist dauert es ja nach Anforderungen natürlich etwas länger. Läuft das System erst einmal innerhalb einer Docker-Umgebung, ist der Wartungsaufwand immerhin sehr gering, sofern man sich traut die automatische Aktualisierung der Container mit Watchtower zu erlauben.

Abschlussworte

Lokal betriebene LLMs können es in Leistung und Komfort mit den großen Anbietern durchaus aufnehmen. Sie sind eine datenschutzkonforme und umweltschonende Alternative. Was bisher fehlt ist die Bereitschaft sich aus der Komfortzone des Bekannten und damit auch aus der Abhängigkeit einer weniger großer Anbieter zu lösen. Für den Bereich der Schule sind sie alternativlos, allerdings bisher noch zu unbekannt. Aus diesem Grund ist es wichtig das Wissen darüber zu streuen und durch Musterinstallationen oder besser durch eine zentralisierte Lösung für alle Schulen, den Weg für den Einsatz zu bahnen.