A.I.@home

Künstliche Intelligenz ist in aller Munde, alle springen auf den A.I.-Zug auf und überbieten sich mit den tollsten Large Language Models. Alle in dem Medien gehypten Sprachmodelle nutzen die Herstellercloud und benötigen ein entsprechendes Account. Will man etwas mehr machen, benötigt man meistens sogar ein kostenpflichtiges Abo. Die Frage ist, kann man sowas auch zuhause betreiben? Nun, ich habe natürlich kein Rechenzentrum im Keller, und auch meine Resourcen was Rechenpower angeht sind eher gering.

Trotzdem starte ich einen Versuch ein LLM zuhause zum Funktionieren zu bringen. Bei meiner Lösung versuche ich wieder auf Docker-Container zu setzen. Mal schauen was geht…

Ollama

Ollama ist eine Open-Source-PLattform, die es ermöglicht Sprachmodelle zu verwalten und bereitzustellen. Sprachmodelle, die man benutzen möchte kann man sehr einfach nachladen. Auf der Ollama Webseite findet man eine Übersicht aller zur Verfügung stehenden LLMs. Dabei sind auch Llama 3.2, Phi3, Mistral,Gemma 2 oder Deepseek. Die LLMs können auch in verschiedenen Version heruntergeladen werden. Diese unterscheiden sich in der Größe der Trainingsparameter. Ich benutze im Moment folgende LLMs:

  • llama3.2:3b (2 GB)
  • gemma2:2b (1,6 GB)

Ollama läuft bei mir im Docker Container im ‘CPU-only-Modus’.

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:0.5.13

Damit läuft zunächst einmal der Ollama-Container. Ich verwende in meinem Docker-Ökosystem Portainer als Management Tool. Damit öffne ich Console in den Ollama-Container. Jetzt muss ein LLM in Ollama geladen werden. Das geschied recht einfach mit:

ollama run gemma:2b
Der Ollama-Container zieht sich jetzt das LLM und startet es an. Auf der Console kann man jetzt direkt mit dem LLM chaten. Die Bedienung über die Console ist natürlich wenig konfortabel. Hier kommt jetzt Open WebUI in Spiel. Eine wichtige Sache noch: Man sollte einmal testen ob Ollama von außen für Open WebUI erreichbar ist. Gibt man im Webbrowser die Adresse+Port ein (Beispiel http://192.168.1.2:11434/) erscheint dort ‘Ollama is running’.

Open WebUI

Open WebUI ist ein großartiges Tool um LLMs zu betrieben. Es kann mit Ollama oder aber auch mit OpenAI kompatibelen APIs umgehen.

docker run -d -p 3000:8080 -e WEBUI_AUTH=False -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main

Da nur ich Open WebUI nutze, verzichte ich auf die Login-Möglichkeit, und verwende den Single-User-Modus (WEBUI_AUTH=False). Die Dokumentation findet man unter docs.openwebui.com. Die Weboberfläche sieht dann folgendermaßen aus:

Open WebUI

Als Erstes muss man die Verbindung zu Ollama herstellen. Das geht über den User-Button unten links. Hier öffnet sich ein Menü mit einem Eintrag ‘Administrationsbereich’. Man wählt auf der öffnenden Seite oben ‘Einstellungen’ aus und im nächsten Menü ‘Verbindungen’. Man kann hier mehrere Verbindungen zu APIs eingeben. Ich nutze nur die Ollama API, wie oben im Beispiel. Rechts neben der URL gibt es einen Verify-Button um die Verbindung zu prüfen.

Dann kann man auch schon loslegen, und links oben auf ’neue Unterhaltung’ klicken. Man kann gleich daneben das heruntergeladene LLM auswählen, in meinem Fall ‘gemma:2b’

Open WebUI hat sehr viele Konfigurationsmöglichkeiten, von denen ich die meisten noch erforschen muss. Die ersten Versuche sind vielversprechend, und mein deep dive in das ganze Thema kommt erst noch…