KI-Server
Ich habe verwende meinem Mac Mini M1 als KI-Server. Die GPU des M1 Chips hat Zugriff auf die kompletten 16 GB RAM, wodurch sich auch etwas größere Modelle effektiv bereitstellen lassen.
Verwendete Software:
- Homebrew, zur Softwareverwaltung.
- Ollama, zur Verwaltung von LLMs und Bereitstellung einer API, über welche auf die LLMs zugegriffen werden kann.
- Colima, zur Bereitstellung einer schlanken VM für Docker.
- Docker, zur Bereitstellung von Openwebui
Headless-Betrieb einrichten
- Energieeinstellungen anpassen: Um den Mac Mini effektiv als Server ohne Monitor betreiben zu können, müssen die Energieeinstellungen so angepasst werden, dass er nicht automatisch in den Ruhezustand wechselt.
- Automatischen Login aktivieren: Außerdem muss der automatische Login aktiviert werden, damit bei einem Neustart alle Dienste gestartet werden.
- Zugriff über SSH aktivieren: SSH versteckt sich in den MacOS-Einstellungen unter Allgemein -> entfernte Verwaltung.
Softwareinstallation
Die Installation von Homebrew habe ich entsprechend der Dokumentation durchgeführt.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install colima docker docker-compose ollamaDamit Colima und Ollama beim Neustart des Rechners gestartet werden:
brew services start colima
brew services start ollamaOllama
Damit Ollama die Modelle im Arbeitsspeicher behält und nicht nur auf Anfragen von localhost, sondern aus dem Netzwerk reagiert, müssen in der Konfigurationsdatei ~/Library/LaunchAgents/homebrew.mxcl.ollama.plist zwei Keys hinzugefügt werden:
...
<dict>
<key>EnvironmentVariables</key>
<dict>
...
<key>OLLAMA_HOST</key>
<string>0.0.0.0</string>
<key>OLLAMA_KEEP_ALIVE</key>
<string>-1</string>
</dict>
<key>KeepAlive</key>
<true/>
...
</dict>Openwebui
Ich verwende docker-compose zur Konfiguration von openwebui. Meine docker-compose.yml:
services:
openwebui:
container_name: openwebui
image: ghcr.io/open-webui/open-webui:main-slim
volumes:
- openwebui:/app/backend/data
ports:
- "8080:8080"
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
volumes:
openwebui:
name: openwebuiOpenwebui ist nun auf Port 8080 erreichbar. Unter Connections muss nun die Ollama Api aktiviert und als URL http://host.docker.internal:11434 angegeben werden.