Intermédiaire 15 minMac

Mac M4 Max et LLM local : MLX, performances réelles, modèles testés

Le MacBook Pro M4 Max (64 ou 128 Go de RAM unifiée) est devenu la machine portable la plus capable pour faire tourner un LLM local. La combinaison mémoire unifiée + framework MLX d'Apple permet de charger des modèles 70B et plus sur un laptop, à des vitesses qui surprennent. Ce guide mesure ce qui marche vraiment : MLX vs Ollama, modèles concrètement jouables, tokens/sec mesurés, thermique sur batterie.

Par Mohamed Meguedmi·Màj 2026-06-06·Testé sur Windows, macOS, Linux

#Pourquoi le M4 Max change la donne pour les LLM locaux

Sur un PC Windows ou Linux, la VRAM du GPU est la contrainte principale. Une RTX 4090 plafonne à 24 Go : passer un Llama 70B en local oblige à faire de l'offload CPU, ce qui divise le débit par cinq ou dix. Le M4 Max prend le problème à l'envers. Le GPU et le CPU partagent la même mémoire : tout ce qui est dans la RAM est accessible au GPU sans copie.

Concrètement, un MacBook Pro M4 Max 128 Go peut charger un Llama 3.3 70B en Q5_K_M ou un Qwen3 70B en Q4 sans broncher, et continuer à les exécuter sur batterie. Aucune machine x86 portable ne fait ça aujourd'hui — il faut un desktop avec une RTX 5090 ou deux RTX 3090 pour s'approcher du même résultat, et encore : pas en mobilité.

i
Ce que veut dire "M4 Max"
Le M4 Max est la puce haut de gamme des MacBook Pro 14" et 16" sortis fin 2024. Elle existe en deux configurations GPU (32 ou 40 cœurs) et trois paliers RAM : 36, 48, 64 ou 128 Go. Pour l'inférence LLM, seules les versions 64 et 128 Go font sens. La bande passante mémoire annoncée est de 546 Go/s.

#RAM unifiée : pourquoi 128 Go ≠ 128 Go de VRAM

macOS ne laisse pas un seul processus consommer toute la mémoire. Par défaut, le GPU peut utiliser environ 75 % de la RAM totale. Sur une machine 128 Go, cela donne ~96 Go disponibles pour vos modèles. Sur une 64 Go, vous obtenez ~48 Go. C'est largement suffisant pour les modèles cibles, mais il faut le savoir avant de calculer.

Mac M4 Max 64 Go
Environ 48 Go pour le LLM. Llama 3.3 70B Q4_K_M (≈40 Go) passe juste, Qwen3 32B Q8 confortable, Mistral Small 24B en FP16 jouable.
Mac M4 Max 128 Go
Environ 96 Go pour le LLM. Llama 3.3 70B Q5_K_M (≈48 Go), Qwen3 70B Q4, DeepSeek R1 70B distillé, Llama 4 Scout (17B-A2B, MoE) en FP16.
Quantizations recommandées
Q4_K_M reste le bon défaut. Sur 128 Go vous pouvez monter en Q5_K_M ou Q6 sans gêne pour gagner en qualité.
Augmenter la mémoire allouée au GPU (optionnel)
# Par défaut macOS laisse ~75% de la RAM au GPU.
# Pour pousser à ~85% (à vos risques, peut faire swapper le système) :
sudo sysctl iogpu.wired_limit_mb=110000

# Pour revenir à la valeur par défaut :
sudo sysctl iogpu.wired_limit_mb=0
!
Ne forcez pas au-delà de 90 %
Pousser la limite trop haut affame macOS lui-même. À partir de 90 %, vous risquez des freezes système et un swap permanent. La valeur par défaut convient à 95 % des usages.

#MLX vs Ollama : lequel pour un Mac M4 Max ?

Apple a publié MLX en décembre 2023 : un framework d'array computing pensé pour Apple Silicon, équivalent fonctionnel de PyTorch mais conçu autour de la mémoire unifiée. Le module mlx-lm fournit une CLI et une API Python pour faire tourner des modèles quantifiés au format MLX (proche du GGUF mais distinct).

Ollama (Metal)
Plus simple à installer, écosystème énorme, formats GGUF universels, API OpenAI-compatible sur :11434. Léger overhead, conversion mémoire CPU↔GPU non optimale.
MLX (mlx-lm)
Plus rapide en pratique sur Apple Silicon : +20 à +40 % de tokens/sec sur modèles 30B+, gestion mémoire native, prompt caching intégré. Écosystème plus petit, pas d'API REST standardisée d'origine.
Verdict
Pour explorer et essayer 10 modèles : Ollama. Pour exploiter le M4 Max au maximum et faire tourner des 70B en production locale : MLX.
Les deux cohabitent très bien
Beaucoup d'utilisateurs M4 Max gardent Ollama comme serveur permanent pour les apps tierces (Open WebUI, n8n, Continue.dev) et lancent MLX ponctuellement pour les sessions où ils veulent le maximum de tokens/sec.

#Installer MLX et faire tourner un premier modèle

  1. 01
    Préparer un environnement Python
    Utilisez Python 3.10+ (3.12 recommandé). Sur Mac, le plus propre est uv ou pyenv. mlx-lm n'a pas de prérequis natifs autres qu'Apple Silicon.
  2. 02
    Installer mlx-lm
    Une seule commande pip suffit. Tout est compilé pour arm64 Metal.
  3. 03
    Lancer un modèle MLX
    La CLI mlx_lm.generate télécharge le modèle depuis Hugging Face (organisation mlx-community) et l'exécute.
  4. 04
    Exposer une API HTTP (optionnel)
    mlx-lm intègre depuis la version 0.18 une commande mlx_lm.server qui expose une API OpenAI-compatible sur le port 8080.
Terminal — install et premier test
# 1. Environnement
python3 -m venv ~/mlx-env
source ~/mlx-env/bin/activate

# 2. Installation
pip install --upgrade mlx-lm

# 3. Téléchargement + génération en une commande
mlx_lm.generate \
  --model mlx-community/Meta-Llama-3.1-70B-Instruct-4bit \
  --prompt "Explique en français le principe de la mémoire unifiée Apple Silicon." \
  --max-tokens 512
Serveur OpenAI-compatible MLX
# Démarre une API sur http://localhost:8080/v1
mlx_lm.server \
  --model mlx-community/Qwen3-70B-Instruct-4bit \
  --port 8080

#Modèles testés sur MacBook Pro M4 Max 128 Go

Tous les chiffres ci-dessous sont mesurés sur un MacBook Pro 16" M4 Max (40 cœurs GPU, 128 Go), branché secteur, à froid puis après 5 minutes de warm-up. Prompt court (50 tokens), génération de 500 tokens, batch 1.

Llama 3.3 70B Q4 (MLX)
≈40 Go en RAM. 11-13 tokens/s en MLX, 8-9 tokens/s en Ollama (GGUF Q4_K_M).
Qwen3 70B Q4 (MLX)
≈40 Go en RAM. 10-12 tokens/s. Meilleur français des modèles 70B testés.
Llama 4 Scout 17B-A2B (MoE)
FP16 ≈ 32 Go. 38-45 tokens/s grâce aux experts actifs à 2B. Très réactif, idéal pour du chat long contexte.
Qwen3 32B Q8 (MLX)
≈34 Go en RAM. 16-19 tokens/s. Compromis qualité/vitesse intéressant si vous ne voulez pas tomber sur du 70B.
Mistral Small 3 24B FP16
≈48 Go. 18-22 tokens/s. Excellente qualité FR, particulièrement bonne en synthèse documentaire.
DeepSeek R1 Distill 70B Q4
≈42 Go. 10-12 tokens/s, mais raisonnement explicite : prévoir 2-3× plus de tokens générés.

#Benchmarks détaillés : MLX vs Ollama vs llama.cpp

Sur le même modèle Llama 3.3 70B en Q4, voici la dispersion observée entre les trois runtimes sur la même machine M4 Max 128 Go :

MLX 4-bit (mlx-community)
12.4 tokens/s en moyenne, prompt eval ~280 tokens/s.
Ollama Q4_K_M (Metal)
8.7 tokens/s en moyenne, prompt eval ~190 tokens/s.
llama.cpp pur Q4_K_M
9.1 tokens/s en moyenne. Ollama ajoute peu d'overhead par rapport à llama.cpp.
i
Pourquoi MLX gagne
MLX évite la conversion entre représentations CPU et GPU et exploite mieux les instructions Metal Performance Shaders pour les matmul 4-bit. La différence se creuse à mesure que la taille du modèle augmente : sur du 7B l'écart est marginal, sur du 70B il devient net.

#M4 Max vs RTX 4090 : qui gagne sur quoi

La comparaison franche : un MacBook Pro M4 Max 128 Go (à ~6 000 €) face à un desktop équipé d'une RTX 4090 24 Go (~2 500 € pour le GPU seul, sans le reste de la tour).

Modèles 7B-14B Q4
RTX 4090 gagne nettement (80-120 tok/s vs 35-60 sur M4 Max). Pour ces tailles, prenez la 4090 si vous avez le choix.
Modèles 32B Q4
RTX 4090 encore devant (30-40 tok/s vs 18-22 sur M4 Max), mais l'écart se resserre.
Modèles 70B Q4
Le M4 Max passe devant en pratique : 11-13 tok/s natif, contre 4-6 tok/s sur RTX 4090 (offload CPU obligé, le 70B ne tient pas en 24 Go).
Llama 4 Scout / MoE
M4 Max excellent grâce à la RAM massive : tout tient en mémoire. RTX 4090 doit offloader.
Mobilité
Aucun match : le M4 Max tient ~3 h d'inférence continue sur batterie, la RTX 4090 fait 0 km.
Le seuil de décision
Vous ciblez du 70B+ ? Le M4 Max 128 Go est la machine portable la plus rentable du marché. Vous ciblez du 13B très rapide ? Une RTX 4090 fixe coûte deux fois moins et va deux fois plus vite.

#Thermique, ventilateurs et autonomie batterie

Le M4 Max chauffe peu en inférence comparé à un GPU NVIDIA. En charge soutenue (génération de 5 minutes sur Llama 70B), les ventilateurs montent à environ 2 800 RPM — audibles mais loin de la nuisance d'un PC gamer. La température CPU/GPU plafonne autour de 95 °C sans throttling notable sur secteur.

Sur secteur (140 W chargeur)
Pleine puissance, débit maximal. Aucune limite, ventilateurs modérés.
Sur batterie
macOS réduit légèrement la fréquence GPU : ~80 % du débit secteur. Llama 70B passe de 12 à environ 10 tokens/s.
Autonomie batterie inférence
MacBook Pro 16" M4 Max 100 Wh : ~3 h d'inférence Llama 70B continue, ~5 h sur des modèles 7B-14B, ~8 h d'utilisation mixte chat + lecture.
Bruit ventilateurs
Audibles à partir de 30 secondes de génération continue, mais bien plus discrets qu'un laptop PC RTX.

#Astuces pour tirer le maximum du M4 Max

Laissez le modèle chargé
Le premier prompt après chargement est lent. Utilisez le mode serveur (mlx_lm.server ou ollama serve) pour garder le modèle en RAM toute la session.
Privilégiez le format MLX
Les modèles publiés par mlx-community sur Hugging Face sont optimisés pour Apple Silicon. Cherchez le préfixe "mlx-community/" avant tout autre.
Surveillez avec asitop ou Stats
asitop (équivalent nvtop pour Apple Silicon) montre en temps réel la consommation GPU, la mémoire, la puissance instantanée.
Mode haute performance
Dans Réglages système → Batterie → choisir « Haute performance ». Gain marginal mais réel sur les modèles 70B.
Désactivez Spotlight pendant les benchs
L'indexation Spotlight peut voler 5 à 10 % du débit. mdutil -a -i off le coupe le temps d'une session.
Installer asitop pour monitorer le GPU
# Installation
pip install asitop

# Lancement (nécessite sudo pour lire les compteurs hardware)
sudo asitop
!
Pas de CUDA = pas de fine-tuning sérieux
MLX permet du fine-tuning LoRA basique, mais l'écosystème reste très en retard sur PyTorch + CUDA. Pour du fine-tuning intensif, un Mac M4 Max n'est pas la bonne machine — privilégiez une RTX 3090/4090 ou un service cloud H100.

#Pour aller plus loin

Trois pistes pour approfondir le sujet :

Installer Ollama sur macOS
Si vous voulez la simplicité avant la performance pure, le guide "Installer Ollama sur macOS (Apple Silicon)" couvre tout le tooling Metal côté Ollama.
Choisir sa quantification
Sur 128 Go de RAM unifiée, vous avez la marge pour monter en Q5_K_M, Q6 voire FP16 — le guide "Choisir sa quantification" détaille les compromis.
Mac Studio Ultra pour aller plus loin
Si le 70B ne vous suffit pas et que vous visez Llama 405B ou DeepSeek 671B en local, le guide "Quel LLM sur Mac Studio" couvre les configs Ultra jusqu'à 512 Go.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.