Ce qui se passe
Apple publie, avec une nouvelle version de MLX, un mode d'emploi pour exécuter un modèle de classe « frontière » chez soi : Muse Spark Open (816 milliards de paramètres, 42 milliards actifs, mélange d'experts). Il pèse plus de 1,6 To en BF16 et environ 493 Go quantifié en NVFP4 : plus que les 512 Go d'un Mac Studio M5 Ultra. Il faut donc répartir le modèle sur plusieurs machines.
Deux façons de le couper
- Parallélisme en pipeline : chaque machine exécute une tranche de couches.
Simple à mettre en œuvre, mais la vitesse de génération reste celle d'une seule
machine. Il aide en revanche le préremplissage des contextes longs (jusqu'à
1,8× à 65 536 tokens, avec
--prefill-step-size 8192) parce que les blocs de contexte se chevauchent d'une machine à l'autre. - Parallélisme tensoriel : chaque machine garde une part de chaque couche. Plus rapide en génération, mais il échange de petits messages à chaque couche et chaque token : il lui faut un lien à très faible latence.
Ce lien, c'est le RDMA sur Thunderbolt 5, introduit par macOS 26.2, sur
lequel MLX 0.30.1 et suivants bâtit les collectives jaccl. Dans le banc
d'essai, chaque paire de machines est reliée par deux câbles Thunderbolt.
mlx.launch --hostfile hostfile.json --backend jaccl \
--env MLX_METAL_FAST_SYNCH=1 -- \
mlx_lm.benchmark --model meta-models/Muse-Spark-Open-816B-A42B-NVFP4 -p 8192 -g 128 -b 1Ajoutez --pipeline pour le schéma en pipeline ; sans cet indicateur, MLX répartit
en tensoriel.
Mesures d'Apple (Mac Studio M5 Ultra)
| Muse Spark Open, 8 192 tokens de contexte | Génération |
|---|---|
| 2 machines, pipeline | 15,74 tokens/s |
| 2 machines, tensoriel | 24,99 tokens/s |
| 4 machines, tensoriel | 36,73 tokens/s |
À 65 536 tokens sur quatre machines, le premier token arrive après 40,6 s avec deux câbles par liaison, 50,5 s avec un seul. Sur une machine seule, le M5 Ultra démarre jusqu'à 4,6× plus vite que le M3 Ultra (unités matricielles du GPU) et génère 1,6× plus vite (bande passante mémoire de 1,2 To/s contre 819 Go/s). Consommation de pointe : environ 300 W (M5 Ultra) contre 200 W (M3 Ultra).
Servir une API locale
mlx.launch --hostfile hostfile.json --backend jaccl --env MLX_METAL_FAST_SYNCH=1 -- \
mlx_lm.server --model meta-models/Muse-Spark-Open-816B-A42B-NVFP4 --port 8080Un agent de code comme OpenCode se branche ensuite sur
http://127.0.0.1:8080/v1 via le fournisseur @ai-sdk/openai-compatible.
Limites
- Ce sont les mesures du constructeur, sur des machines haut de gamme (512 Go de mémoire unifiée).
- Les modèles à experts passent moins bien à l'échelle que les modèles denses : avec seulement deux machines, le tensoriel perd même contre le pipeline en préremplissage à 65 536 tokens pour Muse Spark Open.
- L'option expérimentale
MLX_METAL_FAST_SYNCH=1réduit la latence entre CPU et GPU.
Source : Apple Machine Learning Research, MLX distributed inference, 16 octobre 2026.