Lokale LLM-Inferenz auf einem Cloud Mac mini: Speicherplanung und Quantisierung
Letzte Woche fragte mich ein Leser, der mit On-Device-KI experimentiert: Er wolle Llama 3 8B und ein 13B-Codemodell laufen lassen, sein Laptop-Speicher reiche nicht, ein Mac Studio zu kaufen sei ihm aber zu riskiert, weil er die Kapazität vielleicht gar nicht ausnutzt – ob man das nicht erst mal in der Cloud im passenden Format testen könne. Das ist tatsächlich ein ziemlich typisches Szenario – dieser Artikel geht deshalb Schritt für Schritt durch, wie man auf einem Cloud Mac mini lokale LLM-Inferenz betreibt: Speicherplanung, Umgebungsaufbau und Auswahl der Quantisierung.
Warum die Unified-Memory-Bandbreite die Modellgröße vorgibt
Bei Apple Silicon teilen sich CPU, GPU und Neural Engine denselben Unified-Memory-Pool – es gibt keinen Overhead durch das Hin- und Herkopieren zwischen VRAM und RAM, was für Inferenz ein natürlicher Vorteil ist. Das bedeutet aber auch: Die Speicherkapazität setzt eine harte Obergrenze für die maximal lauffähige Modellgröße. Grobe Umrechnungsregel: Ein ursprünglich in FP16 trainiertes Modell belegt nach 4-Bit-Quantisierung etwa das 0,55- bis 0,6-fache der Parameterzahl in GB, hinzu kommen KV-Cache und Systemoverhead.
| Modell | RAM | Empfohlene Modellgröße (Q4) | Typische Kontextlänge |
|---|---|---|---|
| M4R S (M4, 16GB) | 16GB | 7B–13B | 4K–8K |
| M4R M (M4, 24GB) | 24GB | 13B–30B | 8K–16K |
| M4R L (M4 Pro, 64GB) | 64GB | 30B–70B (Q4) | ab 16K |
Diese Tabelle ist nur ein Startpunkt – wie groß es real werden kann, hängt davon ab, ob parallel Xcode, Browser & Co. Speicher belegen. Prüfe mit
top, wie viel freier Speicher übrig ist, bevor der Inferenzprozess abstürzt – nicht erst debuggen, wenn schon ein OOM aufgetreten ist.
Umgebungsaufbau: llama.cpp oder MLX
Beide Wege schließen sich nicht aus – man kann beide auf derselben Maschine installieren und je nach Aufgabe wechseln.
llama.cpp: Fokus auf Universalität
brew install cmake
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_METAL=ON
cmake --build build --config Release -j
./build/bin/llama-cli -m models/llama-3-8b-q4_k_m.gguf \
-p "Schreibe ein Codebeispiel, das Rekursion erklärt" -n 256 --ctx-size 4096
-DGGML_METAL=ON ist entscheidend – erst mit aktiviertem Metal-Backend wird die GPU-Leistung voll ausgenutzt. Ohne diesen Parameter fällt alles auf reine CPU-Inferenz zurück, was mehrfach langsamer ist.
MLX: Apples natives Framework
python3 -m venv mlx-env
source mlx-env/bin/activate
pip install mlx-lm
mlx_lm.generate --model mlx-community/Llama-3-8B-Instruct-4bit \
--prompt "Erkläre, welche Aufgabe der KV-Cache hat" --max-tokens 256
MLX-Modelle werden direkt unter dem Namespace mlx-community mit quantisierten Gewichten gehostet – ein eigenes Format-Konvertieren entfällt, und der Einstieg ist schneller als bei llama.cpp. Allerdings ist das Ökosystem und die Community-Dokumentation bei llama.cpp aktuell noch reifer.
Welches Quantisierungsformat wählen
Niedriger ist nicht automatisch besser – die Wahl richtet sich nach dem Anwendungsfall:
- Q4_K_M: Reicht für alltägliche Q&A und Code-Vervollständigung, spart am meisten Speicher und ist in den meisten Fällen die Standardwahl.
- Q5_K_M: Bei langen Reasoning-Ketten und mehrstufiger Logik empfiehlt sich diese Stufe – die Ausgabestabilität ist merklich besser.
- Q8_0: Kommt der Originalpräzision sehr nahe, geeignet für Evaluationsszenarien mit hohen Genauigkeitsanforderungen. Der Speicherbedarf verdoppelt sich jedoch, deshalb nur bei ausreichend Speicher (ab 24GB) in Betracht ziehen.
Die Faustregel ist einfach: Zunächst mit Q4 eine Reihe realistischer Fragen testen und die Antwortqualität manuell prüfen. Erst wenn deutliche Logiksprünge oder Rechenfehler auftreten, stufenweise höher gehen – man muss nicht von vornherein die höchste Präzision fahren und den Speicher komplett belegen.
Speicherplatz und Snapshot-Verwaltung
Modelldateien reichen von einigen GB bis zu mehreren Dutzend GB – vor Ablauf der Mietdauer sollte man die Bereinigung vorab planen:
- Heruntergeladene Modelle einheitlich unter
~/models/ablegen, damit sich Verzeichnisse gesammelt bereinigen oder migrieren lassen. - Mit
du -sh ~/models/*regelmäßig den Speicherverbrauch prüfen und alte, bereits quantisierte Modellversionen zeitnah löschen, damit die Systemplatte nicht überläuft und die Inferenzgeschwindigkeit leidet. - Wer die Experimentumgebung (virtuelle Umgebung, Liste heruntergeladener Gewichte) behalten möchte, sollte sie als Tarball packen und lokal herunterladen – noch vor Ablauf der Mietdauer, denn nach Vertragsende bleiben keine Daten auf der Systemplatte erhalten.
du -sh ~/models/* | sort -rh | head -5
tar czf mlx-env-backup.tar.gz mlx-env models/*.json
Testablauf und Monitoring
Während der Inferenz nebenbei ein Terminalfenster mit der Ressourcenauslastung offen halten – so lässt sich Speicherdruck frühzeitig erkennen:
sudo powermetrics --samplers gpu_power -i 1000 -n 5
Beobachte GPU-Auslastung und Leistungskurve: Bleibt die Auslastung dauerhaft hoch, während die Antwortzeit trotzdem lang ist, liegt meist die Speicherbandbreite durch den Kontext-Cache am Limit. In diesem Fall entweder --ctx-size verkleinern oder auf eine kleinere Quantisierungsstufe wechseln – statt blind die Batch-Größe zu erhöhen.
Häufig gestellte Fragen
Läuft ein 7B-Modell auf einem Mac mini mit 8GB?
Ja, mit einer Q4-quantisierten Version, aber Betriebssystem und Hintergrundprozesse belegen Speicher. Mindestens 2GB für das System reservieren; für längere Kontexte lieber ab 16GB wählen.
Soll ich llama.cpp oder MLX verwenden?
Für plattformübergreifende Kompatibilität und ein reifes Ökosystem eignet sich llama.cpp, für effizientere Zero-Copy-Speicherverwaltung und Debugging auf Apple Silicon eher MLX. Beide lassen sich auf derselben Maschine parallel nutzen.
Verschlechtert Q4-Quantisierung die Ausgabequalität merklich?
Für alltägliche Frage-Antwort- und Codevervollständigungsaufgaben ist der Effekt gering, für lange Schlussfolgerungsketten oder präzise numerische Berechnungen empfiehlt sich Q5_K_M oder höher nach kurzem Test mit einer kleinen Stichprobe.
Auf einem dedizierten Mac mini testen
Tagesweise mietbar, mit Root-Zugriff und Bereitstellung in wenigen Minuten – ideal, um erst zu testen und dann über eine längere Laufzeit zu entscheiden.