OpenWebUI und Ollama – Lokale LLMs ausführen
Large Language Models (LLMs) sind derzeit überall zu finden. Mit riesigen Datenmengen trainiert, können sie menschliche Sprache verstehen und generieren. Dabei gibt es immer mehr LLMs die größer und besser werden. Die bekanntesten sind derzeit GPT-4o, Claude 3.5 Sonnet und Gemini 1.5.
Die Stärke der LLMs liegt in ihrer Fähigkeit, Zusammenhänge zu erkennen und kontextbezogen zu antworten. Dazu nutzen sie komplexe neuronale Netzwerke und Aufmerksamkeitsmechanismen, um Intentionen zu erfassen und Antworten mit ihrem erlernten Wissen zu verarbeiten. Die großen LLMs haben aber auch Nachteile: Datenschutzbedenken, mögliche Verzerrungen in den Trainingsdaten und die Tendenz, gelegentlich falsche Informationen zu produzieren. Eine mögliche Lösung für diese Probleme sind lokale LLMs wie LLama 3.1 (Meta), Gemma2 (Google).
Bei lokalen LLMs ist meist auch eine spezielle Metrik bekannt: die Anzahl der Parameter. In einem LLM bestimmen Gewichte, wie stark Eingaben (z. B. Wörter) bestimmte Muster aktivieren. Sie regeln, wie stark ein Neuron (hier ein mathematischer Knotenpunkt) ein anderes beeinflusst. Biases verschieben die Aktivierungsschwelle eines Neurons, sodass das Modell auch ohne spezifische Eingaben aktiviert werden kann. Zusammen formen Gewichte und Biases die „Entscheidungen“ des Modells. Je mehr Parameter (Gewichte und Biases) vorhanden sind, desto feiner kann das Modell Details erkennen und komplexe Zusammenhänge verarbeiten, was seine Genauigkeit und Sprachfähigkeiten verbessert. Aber es braucht auch dementsprechend mehr Speicher. Llama 3.1 8B braucht ungefähr 16 GB VRAM. 405B braucht dabei bereits 860 GB VRAM.
Der einfachste Weg ist Ollama mit OpenWebUI. Es gibt auch andere Möglichkeiten, wie LM Studio und Jan.ai. Dennoch liefert OpenWebUI zusammen mit Ollama die besten Ergebnisse, besonders für Benutzer einer Nvidia GPU. Hier kommen wir zum größten Problem für lokale LLMs: Sie benötigen viel RAM oder VRAM. 16GB für die GPU-Version und 32 GB für die CPU-Version. Das hängt aber auch sehr von der Parametergröße des Modells ab. Meine Empfehlung: Derzeit ist es am sinnvollsten, LLMs auf der GPU auszuführen, sie laufen dort in der Regel deutlich schneller, da GPUs mehr parallele Operationen ausführen können. Apple M1-M3 können auch verwendet werden, die untenstehende Anleitung funktioniert größtenteils auch damit (Ollama muss selbst installiert werden). Wenn man hier viel RAM hat (64 GB+), läuft Llama 3.1 70B sogar schneller als auf einer RTX 4090.
Wie installiere ich jetzt OpenWebUI und Ollama (GPU-Support) unter Windows?
- Zuerst installiert ihr das WSL (Windows Subsystem für Linux) mit dem Befehl „wsl -update“ im Terminal.
- Danach installiert ihr die für euer System passende Version von Docker Desktop von https://docker.com und öffnet sie nach der Installation (ihr müsst euer System mindestens einmal neustarten).
- Im Terminal könnt ihr nun folgenden Befehl eingeben: „docker run -d -p 3000:8080 –gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data –name open-webui –restart always ghcr.io/open-webui/open-webui:ollama“. Überprüft den Befehl auch über diesen Link, um sicherzugehen.
- Nachdem der Prozess abgeschlossen ist, solltet ihr in „Docker Desktop“ einen Container namens „open-webui“ mit dem Status „Running“ haben.
- Nun geht ihr auf localhost:3000 und erstellt einen Account. Die Mailadresse ist dabei nicht wichtig und wird nur als Benutzername benötigt.
- Ihr seht jetzt ein ChatGPT ähnliches Interface, wählt von hier aus das Modell oben links, hier ist kein Tor installiert. Am besten startet ihr mit „llama3.1“ und klickt dann auf „Pull llama3.1 from ollama.com“.
- Fertig. Eine Liste von möglichen Modellen findet ihr auf ollama.com/models
OpenWebUI bietet viele erweiterte Funktionen wie Websuche, Erinnerungen, aber auch OpenAI-API-Unterstützung. Es können eigene Modelle und API-Schnittstellen hinzugefügt werden. Ollama muss auch nicht lokal installiert werden. Es gibt auch Tools, um Paperless-NX zu integrieren oder WolframAlpha. So lässt sich sogar der eigene Datensatz zu Hause als Kontext einbinden. Wichtig ist noch zu erwähnen, dass die Größe des RAM oder VRAM entscheidend ist. Wenn das Modell sehr langsam ist oder euer PC unbenutzbar wird, ist das Modell wahrscheinlich zu groß und ihr solltet das nächst kleinere wählen. Llama 3.1 405B (405 Milliarden Parameter) ist lokal noch unrealistisch. Wer das Modell trotzdem laufen lassen will, kann es mithilfe von OpenRouter.ai oder ähnlichen Diensten einbinden. Das kostet zusätzliches Geld und läuft natürlich auch nicht mehr lokal.
Transparenz: In diesem Artikel sind Partnerlinks enthalten. Durch einen Klick darauf gelangt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalten wir eine kleine Provision. Für euch ändert sich am Preis nichts. Partnerlinks haben keinerlei Einfluss auf unsere Berichterstattung.
Ich habe im letzten Winter mal bisschen mit „lokaler KI“ herumexperimentiert, da kann man schon lustige Sachen machen. Aber wirklich Produktiv-Praxistauglich ist da nicht viel. Und man braucht wirklich krasse Hardware oder viel Geduld. Sehr viel Geduld. Am Ende hatte ich „Abends starten, morgens sehen, was heraus gekommen ist“ bei einigen Sachen. Das macht dann keinen Spaß, aber mehrere Tausend Euro ausgeben für einen Super-High-End-Mega-PC für eine Spielerei wollte ich dann auch irgendwie nicht. Es stand eh der Frühling vor der Tür, lieber mal wieder ein schönes Fahrrad für den Fuhrpark gekauft. 🙂
Für eine lokale Workstation-Installation ist jan.ai für meine Begriffe besser geeignet und für Unerfahrene wesentlich leichter installierbar. OpenWebUI hingegen für self hosted Lösungen.
Läuft gut auf einem Mac Mini mit M1 und 16GB Ram. Verwende mit richtig guten Ergebnissen das Lama 3.1 in der Version 8B Q8. Viel Spaß beim ausprobieren.
Kommst du mit der Hardware auch auf eine Eval rate von ca. 12 token/s? Benchmark von https://ollamark.aaartist.dev/
Sehr spannend. Mich interessiert, wie Du ein lokales Modell mit Paperless oder anderen Produktivapps nutzt. Besten Dank.
Ja, das würde mich ebenfalls interessieren.
Mach ich dann mal extra 🙂 bei openwebui gibt es aber Plugins, und da sind die enthalten.
Es läuft ebenfalls das neue Hermes-Modell per OpenWebUI; ausprobiert auf einem M1 / 64 GB.
Warum nicht AnythingLLM… Da gehen sogar lokale Dokumente.
Letztendlich gibt es noch viel mehr Software, das war jetzt mal eine von vielen.