Test/Ergebnisse/Vergleich "Lokale KI"

, ,

Qwen3.6-35B lokal auf dem M1 Max — 3 Tage Dauertest mit oMLX

Hardware: MacBook Pro M1 Max, 64 GB Unified Memory
Software: oMLX v0.3.8, mlx-lm (ed1fca4)
Modell: Qwen3.6-35B-A3B-UD-MLX-4bit (21,2 GB)
Usecase: Coding / Claude Code (agentic, lange Kontexte)


Mein MacBook Pro mit M1 Max ist inzwischen ein paar Jahre alt — aber ich wollte wissen, was noch drinsteckt, wenn man es mal richtig arbeiten lässt. Also habe ich einen systematischen Modell-Vergleich gemacht und das beste Ergebnis dann einfach 3 Tage durchlaufen lassen. Was dabei herauskam, teile ich hier — vielleicht ist es für den einen oder anderen nützlich, der ähnliche Hardware hat oder sich fragt, ob sich lokale Inferenz auf Apple Silicon lohnt.


Benchmark-Vergleich (oMLX Bench-Tab)

Getestet wurden pp1024, pp4096 und pp8192 mit je 128 Output-Tokens. Alle Modelle liefen auf demselben System ohne sonstige Last. (Prompt Processing mit 1024, 4096 und 8192 Input-Tokens — entspricht etwa einer kurzen Frage, einem mittleren Dokument bzw. einer größeren Codedatei)

Modell tg TPS pp1024 tg TPS pp4096 RAM Anmerkung
Qwen3-30B-A3B-MLX-4bit 43,2 35,3 17 GB Solide Allroundwahl
Qwen3.6-35B-A3B-UD-4bit 40,9 39,8 21 GB Besser bei langen Kontexten :white_check_mark:
Qwen3-30B-A3B-MLX-8bit 34,5 28,9 31 GB Mehr RAM, langsamer
Qwen3-30B-A3B-MLX-6bit 30,8 28,1 24 GB Schlechteste Wahl
Qwen3-4B-4bit 45,4 36,5 2,2 GB Schnell, aber zu schwach
Qwen3-14B-4bit 13,3 12,6 8,1 GB :warning: MLX-Inkompatibilität
Qwen2.5-Coder-32B-Instruct-4bit 7,0 6,2 18 GB :warning: MLX-Inkompatibilität

Wichtig: Die Quantisierungsquelle macht einen riesigen Unterschied! Qwen3-14B und Qwen2.5-Coder-32B liefen in der lmstudio-community-Version mit nur 7–13 tok/s — kein Hardware-Problem, sondern ein MLX-Kompatibilitätsproblem der jeweiligen Quantisierung. Immer mlx-community-Versionen bevorzugen.


Warum Qwen3.6-35B statt Qwen3-30B?

Bei kurzen Kontexten gewinnt der 30B knapp (43 vs. 41 tok/s bei pp1024). Aber bei pp4096 dreht sich das Bild: der 35B läuft mit 39,8 tok/s, der 30B fällt auf 35,3 tok/s ab. Bei Coding-Workflows mit langen Datei-Kontexten ist das der entscheidende Unterschied. Dazu kommt die neuere Architektur. Die 4 GB mehr RAM (21 vs. 17 GB) sind bei 64 GB gut verschmerzbar.


3-Tage-Dauertest

Das Modell lief ohne Unterbrechung durch einen langen agentic Coding-Job über Claude Code.

Zeitpunkt TG tok/s Cache-Effizienz SSD-Cache Tokens gesamt
Start 32,5 0% 12k
+2h 21,5 63% 38 GB 1,24M
+12h 21,1 64,6% 52 GB 4,26M
+24h 21,0 64,6% 66 GB 6,96M
+48h 21,6 65,8% 79,5 GB 9,52M

Die TG-Speed sinkt anfangs durch den wachsenden Kontext (Attention über 80k+ Tokens), stabilisiert sich dann aber bei konstant ~21 tok/s — und bleibt da für über 48 Stunden. Kein Throttling, kein Degradieren. Das hat mich ehrlich gesagt überrascht.


GPU-Verhalten

GPU HW active frequency: ~820 MHz (max. 1296 MHz)
GPU HW active residency:  ~80%
GPU Power: ~15W
GPU idle residency: ~20%

Kein thermisches Throttling nach dem initialen Aufwärmen. Der M1 Max läuft bei ~15W GPU-Power — weit unter dem Maximum, was die Langzeit-Stabilität erklärt. Das bekannte P6 = 100% im SW requested state ist ein MLX-spezifisches Verhalten des GPU-Schedulers und hat keinen negativen Effekt in der Praxis.


Cache-System

oMLX nutzt einen SSD-basierten Response-State-Cache mit 2048-Token-Blöcken. Nach 48h:

  • 1279 gecachte Blöcke ≈ 2,6 Millionen Tokens im SSD-Cache
  • 65,8% Cache-Effizienz — fast zwei Drittel aller Prompt-Tokens kommen aus dem Cache
  • 79,5 GB SSD-Cache — wächst bei intensivem Betrieb mit ~13 GB/Tag

Gelegentlich leeren über den Clear-Button im Dashboard, wenn der Speicherplatz knapp wird.


Fazit

Für Coding mit langen Kontexten auf dem M1 Max 64GB:

:white_check_mark: Qwen3.6-35B-A3B-UD-MLX-4bit ist meine klare Empfehlung
:white_check_mark: Stabile ~21 tok/s auch bei 80k+ Token Kontext — über Tage hinweg
:white_check_mark: 65%+ Cache-Effizienz spart massiv Rechenzeit
:white_check_mark: 21 GB RAM lässt noch Luft für andere Apps
:warning: SSD-Cache wächst stark — gelegentlich leeren nicht vergessen

Das alte MacBook hat mich positiv überrascht. Für einen lokalen Coding-Assistenten mit langen Kontexten braucht es sich nicht zu verstecken.


Hängt gerne eure eigenen Ergebnisse und Benchmarks dran — mich würde besonders interessieren, wie sich das auf anderen M1/M2/M3-Varianten oder mit anderen Modellen schlägt. Je mehr Vergleichsdaten, desto besser!


Setup: oMLX v0.3.8 · mlx-lm ed1fca4 · macOS 26 (25E253) · MacBook Pro 18,4 · M1 Max 64 GB

4 „Gefällt mir“