MLX vs. llama.cpp auf Macs der M-Serie: Wer gewinnt 2026? ?
Auf Macs der M-Serie haben Sie zwei Möglichkeiten, ein LLM lokal auszuführen: MLX, das offizielle Framework von Apple, oder llama.cpp mit seinem Metal-Backend. Beide nutzen die integrierte GPU und den gemeinsamen Speicher, verfolgen aber sehr unterschiedliche Ansätze. Dieser Vergleich von MLX und llama.cpp auf dem Mac stellt beide hinsichtlich Tokens pro Sekunde, Modellunterstützung, Quantisierung und Benutzerfreundlichkeit bei der Nutzung mit Python gegenüber – mit einem klaren Urteil je nach Ihrem Profil.
#Die beiden Seiten im Jahr 2026
MLX wurde Ende 2023 vom ML-Team von Apple veröffentlicht. Es ist ein Python-Framework, das einer Mischung aus NumPy und PyTorch ähnelt und von Anfang an für Unified Memory und Metal konzipiert wurde. Sein Einsatzbereich ist breit: LLMs, Vision, Audio, Fine-Tuning. Das Paket mlx-lm ist speziell für die Inferenz und das Training von Sprachmodellen zuständig.
llama.cpp ist ein 2023 entstandenes C++-Projekt, das sich plattformübergreifend zum De-facto-Standard für lokale LLM-Inferenz entwickelt hat. Auf dem Mac erzeugt sein Metal-Backend Compute-Shader, um die Apple-Silicon-GPU zu nutzen. Es bildet die Grundlage für Ollama, LM Studio und die meisten Tools für Endanwender. Modellformat: GGUF.
#1. Installation
Lokale KI auf Ihrem Mac voll ausschöpfen: Unified Memory, MLX vs. GGUF, das passende Modell für Ihren Chip und auf Apple Silicon abgestimmte Einstellungen für Ollama und LM Studio.
- Lebenslanger Online-Zugang
- PDF + Dateien
- Erstattung binnen 30 Tagen
Bei MLX läuft alles über pip. Die Laufzeitumgebung mlx-lm übernimmt das Herunterladen von Hugging Face, die Konvertierung, die Quantisierung und die Inferenz.
Bei llama.cpp haben Sie drei Möglichkeiten: aus dem Quellcode mit aktiviertem Metal kompilieren, Homebrew nutzen oder einen Wrapper wie Ollama oder LM Studio verwenden. Für einen fairen Vergleich verwenden wir die kompilierte Binärdatei.
#2. Tokens/sec auf M3 Max und M4 Pro
Hier sind repräsentative Größenordnungen für zwei gängige Rechner im Jahr 2026: ein MacBook Pro M3 Max mit 64 GB (Speicherbandbreite 400 GB/s) und ein Mac mini M4 Pro mit 48 GB (273 GB/s). Die Modelle wurden bei vergleichbarer Quantisierung verglichen — 4-Bit-MLX gegenüber Q4_K_M-GGUF — mit einem Prompt von 200 Tokens und 256 generierten Tokens.
- Qwen 3.5 4B — M3 Max
- MLX 4-Bit: 150 tok/s · llama.cpp Q4_K_M: 135 tok/s. MLX liegt um etwa 11 % vorn.
- Qwen 3.5 9B — M3 Max
- MLX 4-bit: 72 Tok/s · llama.cpp Q4_K_M: 66 Tok/s. Abweichung ca. 9 % zugunsten von MLX.
- Gemma 4 12B — M3 Max
- MLX 4-Bit: 48 Tok/s · llama.cpp Q4_K_M: 44 Tok/s. MLX +9%
- Mistral Small 24B — M3 Max
- MLX 4-Bit: 24 Tok/s · llama.cpp Q4_K_M: 22 Tok/s. MLX +9%.
- Qwen 3.8 27B — M3 Max
- MLX 4-bit: 21 Tok/s · llama.cpp Q4_K_M: 19 Tok/s. MLX +10%.
- Qwen 3.5 9B — M4 Pro
- MLX 4-bit: 50 Tok/s · llama.cpp Q4_K_M: 46 Tok/s. MLX +9%.
Das Muster ist klar und reproduzierbar: Bei der reinen Generierung liegt MLX um 8 bis 15 % vorn. Der Unterschied liegt darin, dass die Metal-Kernels von MLX direkt von Apple geschrieben und optimiert werden, mit genauer Kenntnis des GPU-Schedulers und der L1/L2-Caches. llama.cpp verwendet ebenfalls Metal-Kernels, die jedoch allgemeiner ausgelegt sind.
#3. Unterstützung von Hugging Face-Modellen
Dies ist einer der Punkte, an denen sich die beiden Ökosysteme in der Praxis unterscheiden. MLX hat sein eigenes Format für Modellgewichte (.safetensors mit MLX-Konfiguration), llama.cpp verwendet GGUF.
- MLX — Verfügbarkeit
- Die Organisation mlx-community auf Hugging Face veröffentlicht die meisten beliebten Modelle (Qwen 3.5/3.8, Gemma 4, Mistral, Granite 4.2) in 4-Bit- und 8-Bit-Versionen, oft innerhalb einer Woche nach ihrem Erscheinen.
- MLX — seltene Modelle
- Für eine ungewöhnliche Fine-Tuning-Variante oder ein wenig bekanntes Modell müssen Sie die Konvertierung selbst mit mlx_lm.convert durchführen. Typische Konvertierungsdauer: 2–10 Minuten je nach Größe.
- llama.cpp — Verfügbarkeit
- GGUF-Dateien sind überall verfügbar. Bartowski, TheBloke (Archive), Unsloth und die offiziellen Herausgeber veröffentlichen viele Modelle im GGUF-Format, noch bevor sie im MLX-Format erscheinen.
- llama.cpp — sehr aktuelle Modelle
- Wenn eine neue Architektur erscheint (z. B. ein neues MoE, exotische Attention), muss llama.cpp sie in C++ implementieren. Typische Dauer: einige Tage bis 2 Wochen. MLX, da Python + Metal, folgt manchmal schneller, wenn Apple es bereits vorbereitet hat.
#4. Verfügbare Quantisierungen
Das ist wahrscheinlich der Bereich, in dem llama.cpp eindeutig überlegen ist. GGUF bietet etwa ein Dutzend Quantisierungsvarianten (Q2_K, Q3_K_S/M/L, Q4_K_S/M, Q5_K_M, Q6_K, Q8_0 sowie die I-Quants IQ2_XXS bis IQ4_NL), mit denen sich der Kompromiss zwischen Größe und Qualität fein abstimmen lässt.
- MLX
- Quantisierung mit 4, 6 und 8 Bit. Wichtigster Parameter: group-size (32, 64, 128). Kein direktes Äquivalent zu den gemischten K-Quants (Q4_K_M bewahrt in bestimmten Schichten eine höhere Präzision).
- llama.cpp
- GGUF Q4_K_M (empfohlen), Q5_K_M, Q6_K, Q8_0, FP16, sowie I-quants, um noch tiefer zu gehen. Kalibrierung über imatrix möglich.
- Beobachtete Qualität
- Bei vergleichbarer Größe liefern GGUF Q4_K_M und MLX 4-Bit eine sehr ähnliche Perplexität (Abweichung < 1 %). Um ein großes Modell bei knappem RAM unterzubringen (Qwen 3.8 27B auf 16 GB), bieten die I-Quants von llama.cpp weiterhin feinere Abstufungen.
#5. Unified Memory: Wer nutzt sie am besten?
Auf Macs mit Chips der M-Serie teilen sich CPU und GPU denselben Arbeitsspeicher. Keine Kopien, keine PCIe-Übertragung, nur ein gemeinsamer Speicherpool. Das ist der strukturelle Vorteil der Apple-Chips bei der LLM-Inferenz, von dem beide Frameworks profitieren – allerdings auf unterschiedliche Weise.
- MLX
- Von Grund auf für gemeinsamen Speicher konzipiert. Die Tensoren liegen in einem Adressraum, auf den CPU und GPU gleichermaßen zugreifen können. Konvertierung zwischen NumPy und MLX ohne Kopieren. Das ist Apples wichtigstes architektonisches Argument.
- llama.cpp Metal
- Allokiert gemeinsam genutzte MTLBuffer. Funktioniert, fügt aber eine Abstraktionsschicht hinzu. Bei Modellen, die den standardmäßig zugewiesenen VRAM überschreiten, muss die Grenze manchmal manuell über sudo sysctl iogpu.wired_limit_mb angepasst werden.
- Große Modelle mit 64 GB
- Im Jahr 2026 wiegt selbst das allgemeine Flaggschiff Qwen 3.8 27B nur etwa 18 GB bei 4-Bit: 64 GB Unified RAM lassen ausreichend Platz für einen großen MoE wie Qwen 3.6 35B-A3B (~23 GB) oder für die gleiche Version in Q8 für maximale Qualität. Auf 128 GB (M3 Max Top-Spezifikation oder M2 Ultra) können Sie mehrere Modelle parallel laden ohne Einschränkungen.
#6. Python-Integration
Wenn Sie einen Agenten oder eine RAG-Pipeline programmieren oder Ihr LLM mit LangChain / LlamaIndex / Ihrem eigenen Code instrumentieren, zählt die Arbeit mit Python genauso viel wie die Tokens pro Sekunde.
Bei llama.cpp erfolgt die Python-Integration über llama-cpp-python (offizielle Bindings). Die API ist umständlicher in der Verwendung und näher an C++, aber nach dem Start des Servers OpenAI-kompatibel.
- MLX — Komfort
- Sehr saubere API, NumPy-artige Syntax, native Integration mit HF Hub. Für einen Data Scientist ist das sofort verständlich.
- MLX — Einschränkungen
- Es ist (noch) kein offizieller OpenAI-kompatibler Endpunkt integriert. Um ein Modell für mehrere Clients bereitzustellen, müssen Sie einen eigenen FastAPI-Wrapper erstellen.
- llama.cpp — Komfort
- Die Python-API ist in Ordnung, doch in der Praxis erfolgt der produktive Einsatz über llama-server (Binärdatei), der nativ den OpenAI-kompatiblen Endpunkt /v1/chat/completions bereitstellt.
- llama.cpp — Grenzen
- Das Wheel für llama-cpp-python muss mit dem richtigen Metal-Flag neu kompiliert werden (CMAKE_ARGS="-DGGML_METAL=on" pip install llama-cpp-python --force-reinstall --no-cache-dir). Das sorgt für zusätzlichen Aufwand.
#7. Ökosystem und Werkzeuge
Über die reine Runtime hinaus bestimmt das Ökosystem, was Sie konkret tun können.
- Ollama
- Basiert auf llama.cpp. Der einfachste Weg, um einen LLM auf einem Mac mit einer OpenAI-kompatiblen API lokal auf localhost:11434 zu betreiben.
- LM Studio
- Unterstützt seit 2025 beide Engines: llama.cpp standardmäßig, MLX optional für kompatible Modelle. Wechsel mit einem Klick.
- LoRA-Fine-Tuning
- MLX bietet mit mlx_lm.lora eine native, sehr saubere Lösung, die ohne Bastelei auf der integrierten GPU läuft. llama.cpp unterstützt kein Fine-Tuning – dafür müssen Sie Unsloth oder MLX verwenden.
- Ein Modell bereitstellen
- llama.cpp gewinnt mit llama-server eindeutig: Unterstützung für mehrere Clients, Batch-Verarbeitung, Slots, OAI-Kompatibilität. Bei MLX gibt es mlx_lm.server seit 2025, allerdings nur mit grundlegenden Funktionen.
- Vision und Audio
- MLX verfügt über gut gepflegte Erweiterungen (mlx-vlm, mlx-whisper). llama.cpp unterstützt die Bildverarbeitung über die Modelle LLaVA / Qwen-VL, wobei die Unterstützung vom Build abhängt.
#Fazit nach Anwendungsfall
- Sie wollen die maximale Anzahl an Tokens pro Sekunde im lokalen Chat
- MLX. +10 % kostenlos, und der Unterschied wird bei großen Modellen noch größer. Vor allem bei 4-Bit.
- Sie möchten einen Endpunkt für mehrere Clients (Team, App) bereitstellen
- llama.cpp (llama-server oder Ollama). Mehrere Slots, batch-basiert, OpenAI-kompatibel, seit langem stabil.
- Sie testen etwa zehn verschiedene Modelle pro Woche
- llama.cpp. Das GGUF-Ökosystem ist bei der Abdeckung und Aktualität der Quantisierungen unübertroffen.
- Sie entwickeln ein Python-Projekt (Agent, RAG, Pipeline)
- MLX, wenn alles lokal und ausschließlich auf Macs läuft. llama-cpp-python oder ein Ollama-Client, wenn Sie Code möchten, der sowohl unter Linux als auch auf dem Mac läuft.
- Sie möchten ein 7-13B-Modell auf Ihrem Mac feinabstimmen
- MLX. mlx_lm.lora funktioniert sehr gut auf M3 Max / M4 Pro mit 32 GB+.
- Sie stehen am Anfang und möchten einfach ein LLM, das funktioniert
- Ollama (also llama.cpp). Ein Befehl, und fertig.
#Weiterführende Informationen
Einige weiterführende Lektüren, um das Thema zu vertiefen:
Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.