Lokale neuronale Netze auf Apple Silicon mit MTPLX um das Zweifache beschleunigen
Wenn du die neuesten Modelle der Qwen-Familie auf einem MacBook ausgeführt hast, ist dir wahrscheinlich aufgefallen, dass die Generierung langer Antworten spürbar an die Speicherbandbreite stößt. Typischerweise wird spekulatives Decoding verwendet, um dies zu beschleunigen. Aber der klassische Ansatz hat einen unangenehmen Nachteil: Du musst ein zweites, kleines Draft-Modell im kostbaren Unified Memory des Macs halten.
Kürzlich bin ich auf das Projekt MTPLX des Entwicklers Youssof Altoukhi gestoßen. Der Autor решил, jedes Quäntchen Leistung aus der Apple-Silicon-Architektur und den bereits in den Gewichten moderner Modelle wie Qwen 3.5, 3.6 und 3.8 eingebauten Multi-Token-Prediction-Heads (MTP) herauszuholen.
Der Trick Hinter MTP Ohne Zweites Modell
Die meisten bestehenden Runtimes ignorieren einfach die MTP-Heads in den Gewichten. MTPLX arbeitet anders.
Das Modell selbst erstellt mehrere Tokens im Voraus und verifiziert dann die gesamte Batch in einem einzigen Forward-Pass durch MLX. Die Validierung verwendet den präzisen Rejection-Sampling-Algorithmus von Leviathan und Chen mit Residuenkorrektur.
Was bedeutet das in der Praxis? Keine Vereinfachungen oder Heuristiken. Die Wahrscheinlichkeitsverteilung bleibt genau gleich wie bei der regulären schrittweisen Generierung. Wenn du temperature=0.6 und top_p=0.95 setzt, wird das Modell identisch reagieren wie ohne MTP – nur viel schneller.
Auf einem M4 Mac mini mit 16 GB Speicher erreicht die Beschleunigung 1,6x, und bei M5-Max-Chips steigt die Verbesserung auf bis zu 2,24x.
Was Drin steckt: App und CLI
Das Projekt gibt es in zwei Varianten: eine native GUI-Anwendung für macOS 14+ und ein klassisches CLI-Tool.
Der grafische Client erledigt die ganze Arbeit. Beim ersten Start analysiert er den verfügbaren Speicher, wählt ein geeignetes Modell aus, lädt es herunter, richtet eine isolierte Python-Umgebung ein und bietet sogar eine Lüfterverwaltung, damit dein MacBook bei langen Aufgaben nicht throttled.
Wenn du das Terminal bevorzugst, erfolgt die Installation über Homebrew oder pip:
brew install youssofal/mtplx/mtplx
mtplx start
Oder über pip:
python3 -m pip install mtplx
Hauptfunktionen
- Automatische Draft-Tiefe-Tuning. Die MTP-Effizienz hängt vom jeweiligen Chip und der Speicherbusbreite ab. Der Befehl
mtplx tune --retuneführt das Modell mit verschiedenen Tiefen (Depth 1, 2, 3) direkt auf deiner Hardware aus und arretiert die schnellste Option. Wenn MTP auf deiner Konfiguration plötzlich gegen den regulären autoregressiven Modus verliert, deaktiviert das Programm ehrlich den Draft. - Lokaler kompatibler Server. Der Befehl
mtplx servestartet einen Server auf Port 8000. Er ist kompatibel mit OpenAI- (/v1/chat/completions) und Anthropic- (/v1/messages) Formaten. Claude Code, Cline, Continue und Open WebUI funktionieren damit out of the box. - Integrierte Embeddings und Reranking. Du brauchst keinen separaten Server für RAG. Der Daemon kann MLX-Embedding- und Reranker-Modelle parallel halten und bei Bedarf auf Anfrage in den Speicher laden.
- Forge-Tool zum Erstellen eigener Modelle. Das Paket enthält das Tool
mtplx forge, das Hugging-Face-Repositories ins MLX-Format konvertiert, den MTP-Adapter feinabstimmt und die Geschwindigkeit vor und nach misst.
So Arbeitest du mit dem Server
Nach dem Start des Servers kannst du ihn mit Standardanfragen abfragen:
curl http://127.0.0.1:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"mtplx","messages":[{"role":"user","content":"Привет!"}],"stream":true}'
Wenn du ein Agent-System oder eine RAG-Pipeline erstellst, gib die Suchmodelle gleich an:
mtplx serve \
--embedding-model mlx-community/Qwen3-Embedding-8B-4bit-DWQ \
--reranker-model vserifsaglam/Qwen3-Reranker-4B-4bit-MLX
Sitzungen werden auf der SSD gespeichert, sodass beim Neustart des Servers der Kontext früherer langer Gespräche nahezu sofort wiederhergestellt wird.
Projekt-Einschränkungen
Es gibt keine Wunder ohne Kompromisse, also beachte ein paar Dinge:
- Das Tool ist strikt für Apple Silicon (M1-Chips und neuer) geschrieben und basiert auf dem MLX-Framework. Linux-Nutzer und NVIDIA-GPU-Besitzer sollten bei vLLM oder SGLang bleiben.
- MTPLX kann keine beliebigen MTP-Heads an zufällige Modelle anhängen, da Gewichtungsabweichungen die mathematische Genauigkeit der Generierung zerstören. Du musst entweder verifizierte Builds aus dem offiziellen Katalog des Autors auf Hugging Face verwenden (Qwen 3.5, 3.6, 3.8, Gemma 4) oder einen Adapter von Grund auf mit dem integrierten Forge trainieren.
Lohnt es sich, es zu Testen
Wenn du auf einem Mac Code schreibst und lokale LLMs über Continue oder Cline verwendest, bietet MTPLX einen ausgezeichneten Geschwindigkeitsschub ohne zusätzliche Software. Bei Modellen wie Qwen 3.8 27B ist der Unterschied bei Autocomplete-Reaktionsfähigkeit und Code-Generierung sofort spürbar.
Das Projekt wird unter der permissiven Apache-2.0-Lizenz vertrieben, der Quellcode ist sauber und die Benchmarks sind direkt vom Terminal aus über den Befehl mtplx bench reproduzierbar. Ein großartiger Fund für die lokale Entwicklung.
Ähnliche Projekte