Welche Mac-Hardware reicht?
Apple Silicon teilt Arbeitsspeicher zwischen CPU und GPU. Das ist für lokale Inferenz attraktiv, bedeutet aber: macOS, Hermes, Modellgewichte und KV-Cache konkurrieren um denselben Speicher. Ein 9B-Modell in 4-Bit-Quantisierung belegt grob fünf Gigabyte; bei 128K Kontext kommen mit q4-KV-Cache weitere mehrere Gigabyte hinzu.
| Unified Memory | Sinnvoller Start | Erwartung |
|---|---|---|
| 8 GB | Kleineres Modell, 64K, aggressive Quantisierung | Machbar, aber wenig Reserve für Tools und andere Apps |
| 16 GB | Qwen3.5-9B Q4, 64K–128K je Backend | Guter persönlicher Einstieg |
| 32 GB | Größere Modelle oder mehr Reserve | Mehr Parallelität, trotzdem Kontext beobachten |
| 64–128 GB | 27B/35B-Klasse und lange Kontexte | Geeignet für anspruchsvollere lokale Agenten, nicht automatisch Cloud-Niveau |
Option A: llama.cpp mit quantisiertem KV-Cache
llama.cpp ist portabel und bietet direkte Kontrolle über Kontext, GPU-Offload, Flash Attention und KV-Cache-Quantisierung. Genau diese Cache-Flags machen es auf Macs mit 8–16 GB interessant. Binde den Server nur an 127.0.0.1, solange kein anderer Rechner zugreifen muss.
-ngl 99versucht alle Schichten über Metal zu beschleunigen.-np 1vermeidet, dass mehrere Slots das Speicherbudget teilen.-fa onreduziert bei langen Kontexten Rechen- und Speicheraufwand.q4_0für Key und Value senkt den KV-Cache gegenüber f16 drastisch, kann aber Qualität minimal beeinflussen.
brew install llama.cpp
brew install huggingface-cli huggingface-cli download unsloth/Qwen3.5-9B-GGUF Qwen3.5-9B-Q4_K_M.gguf --local-dir ~/models llama-server -m ~/models/Qwen3.5-9B-Q4_K_M.gguf \
-ngl 99 \
-c 131072 \
-np 1 \
-fa on \
--cache-type-k q4_0 \
--cache-type-v q4_0 \
--host 127.0.0.1 Option B: MLX über omlx
MLX ist für Apple Silicon optimiert. omlx ergänzt Modellverwaltung und einen OpenAI-kompatiblen Server. In den von Nous dokumentierten Tests generierte MLX beim 9B-Modell schneller, während llama.cpp die erste Ausgabe schneller begann und beim quantisierten KV-Cache flexibler war.
| Priorität | Bessere Ausgangswahl |
|---|---|
| Niedrige Interaktionslatenz | llama.cpp |
| Längere Textgenerierung | MLX/omlx |
| 8–16 GB und sehr langer Kontext | llama.cpp mit quantisiertem KV-Cache |
| Mehrere Modelle verwalten | omlx |
| Später auch Linux einsetzen | llama.cpp |
curl -s http://127.0.0.1:8000/v1/models | jq '.data[].id' Lokalen Endpoint mit Hermes verbinden und testen
- 01
Server separat starten
Starte llama.cpp oder omlx und warte, bis der Models-Endpoint antwortet.
- 02
Modell-ID abfragen
Nutze
/v1/models; die genaue ID muss zur Serverkonfiguration passen. - 03
Custom Endpoint wählen
Starte
hermes model, wähle Custom Endpoint und tragehttp://127.0.0.1:8080/v1oder Port 8000 ein. - 04
Tool-Aufgabe testen
Teste nicht nur Smalltalk, sondern einen mehrstufigen, ungefährlichen Dateivorgang mit klarer Erfolgskontrolle.
- 05
Speicher und Latenz beobachten
Prüfe Memory Pressure, Time-to-first-token, Tokenrate und Fehler nach langen Prompts.
curl -s http://127.0.0.1:8080/v1/models | jq '.data[].id' hermes model
# Custom endpoint
# Base URL: http://127.0.0.1:8080/v1
# Model: Ausgabe von /v1/models Timeouts, Netzwerk und Datenschutz richtig einordnen
Hermes erkennt lokale Endpoints und lockert Streaming-Timeouts, weil ein großer Prompt mehrere Minuten Prefill verursachen kann. Falls nötig lässt sich der Read-Timeout über HERMES_STREAM_READ_TIMEOUT erhöhen. Das behebt jedoch keine zu kleine Hardware; es verhindert nur einen verfrühten Abbruch.
- Binde den Inferenzserver standardmäßig an localhost, nicht an
0.0.0.0. - Wenn andere Geräte zugreifen, nutze Tailscale/VPN, Authentifizierung und Host-Firewall.
- Lokal verarbeitete Prompts können trotzdem über Websuche, Messenger oder andere Tools das Gerät verlassen – Datenschutz gilt für den gesamten Workflow.
- Prüfe Modell- und Datensatzlizenzen zusätzlich zur MIT-Lizenz von Hermes.
- Bewahre Modellserver und Hermes getrennt start-/stoppbar; so ist Fehlerdiagnose deutlich einfacher.
HERMES_STREAM_READ_TIMEOUT=1800 Wann Local LLM sinnvoll ist – und wann eine API gewinnt
Lokale Inferenz ist stark, wenn Datenkontrolle, häufige Nutzung oder Offline-Fähigkeit wichtiger sind als maximale Frontier-Qualität. Für seltene, hochkomplexe Agentenaufgaben kann eine API wirtschaftlicher und zuverlässiger sein. Ein hybrides Setup verbindet beides: lokales Modell für Klassifikation und private Vorverarbeitung, stärkeres freigegebenes Cloud-Modell für schwierige Aufgaben.
Private Routinearbeit
Dokumente zusammenfassen, persönliche Wissensbasis, strukturierte Extraktion und wiederkehrende Aufgaben auf eigener Hardware.
Schwere Agentenarbeit
Komplexe Codeänderungen, lange Browserketten und Entscheidungen, bei denen ein stärkeres Modell viele Reparaturschleifen spart.
Daten und Schwierigkeit routen
Sensible Vorverarbeitung lokal, anonymisierte oder freigegebene Teilaufgabe an einen Cloud-Provider.
Eigener Inferenzdienst
vLLM, NIM oder Managed Endpoint im kontrollierten Netzwerk, wenn mehrere Nutzer und zentrale Governance erforderlich sind.
Häufige Fragen
Funktioniert Hermes Agent mit Ollama?
Welches lokale Modell empfiehlt die offizielle Mac-Anleitung?
Reichen 8 GB Unified Memory?
Bleiben bei Local LLM alle Daten lokal?
Quellen, Methodik und Aktualität
Dieser Beitrag wurde aus praktischer Arbeit mit Hermes Agent und den unten verlinkten Primärquellen erstellt. Produktstände ändern sich schnell; Versions- und Befehlsangaben wurden zuletzt am geprüft.
- Run Local LLMs on Mac – Nous Research
- Platform Support – Nous Research
- AI Providers – Custom Endpoints – Nous Research
- llama.cpp Repository – ggml-org