Sur un M4 Mac Mini en inférence locale, le débat le plus fréquent n'est pas « Ollama ou MLX », mais est-ce que 16 Go suffisent. Quelqu'un installe qwen2.5:14b, trouve que « ça tourne », puis au troisième tour de dialogue le swap s'enclenche : tok/s de 11 à 3. Un autre passe à 24 Go et voit le 7B monter vers 50 tok/s — se tromper de palier mémoire est plus fatal qu'un mauvais choix de framework.
Au Macstripe Lab, trois Mac Mini M4 (16 Go / 24 Go / 32 Go) ont été testés en parallèle avec Ollama 0.6.2 et MLX : tableau décision mémoire × usage × framework, point de rupture swap et checklist en sept étapes. Prix et tarifs Apple US au 2026-07-21. Pour le choix de modèle, voir le benchmark 7B vs 14B ; pour la couche framework, Ollama vs MLX.
1. Conclusion d'abord : palier mémoire × usage × combinaison recommandée
| Mémoire unifiée | Usage typique | Modèle recommandé | Runtime | tok/s mesurés (médiane) | Risque |
|---|---|---|---|---|---|
| 16 Go | Chat perso, scripts légers, essai local | qwen2.5:7b / llama3.1:8b | Ollama | 7B ~29 · 8B ~28,8 | 14B → swap facile ; Chrome + IDE simultanés = saturation |
| 24 Go | Claude Code Agent, dev multi-fichiers | qwen2.5-coder:14b | Ollama | 14B ~15,1 · 7B ~51,1 | Palier idéal ; decode 14B plus lent que 7B — normal |
| 32 Go | Grand ctx + Xcode sur la même machine, nœud léger d'équipe | 14B + num_ctx 32K | Ollama serve | 14B ~16–18 | Coût > 24 Go ; ROI perso à calculer |
| 48 Go+ | Inférence partagée, exploration 32B | qwen2.5:32b (Q4) | Cluster ollama serve | 32B ~8–12 | Voir le guide de déploiement M4 |
2. Trois pièges : pourquoi la mémoire compte plus que le framework
Au Lab, trois situations reviennent sans cesse — « j'ai bien choisi », mais la RAM ne suit pas :
| Type de piège | Symptôme typique | Chiffres mesurés | Bonne pratique |
|---|---|---|---|
| Se fier aux classements tok/s | « Le 14B fait 15 tok/s en ligne », chez vous : 3 | 14B sur 16 Go : 11,2 → 8,4 → 3,4 tok/s (trois tours décroissants) | Croiser Swapins ; les benchmarks sont souvent sur 24 Go propres |
| Ignorer l'arrière-plan | « Je ne lance qu'Ollama », mais 30 onglets Chrome + index Xcode | 8B propre 28,8 tok/s → avec Chrome 20,8 (hors médiane) | Fermer les onglets avant mesure ; ou budgéter 4–6 Go pour OS + IDE |
| Confondre framework et mémoire | Croire que MLX « natif » libère assez de RAM pour le 14B sur 16 Go | Même modèle Ollama vs MLX : écart mémoire <5 % | Quelques points de pourcentage côté framework ; un palier RAM = un ordre de grandeur |
Retour typique d'un dev indépendant : « 16 Go, Claude Code + qwen2.5-coder:14b — les deux premiers tours OK, au troisième TTFT de 1,9 s à 5,8 s » — ce n'est pas le modèle qui « s'égare », c'est la mémoire unifiée qui entre en zone swap. Fondements dans Mémoire unifiée et inférence LLM.
3. Forme : limites de 16 Go / 24 Go / 32 Go
Le M4 Mac Mini (modèle de base) propose trois paliers de mémoire unifiée, GPU 10 cœurs, bande passante ~ 120 Go/s. Le nombre de Go ne change pas le plafond L2, mais détermine si modèle + KV + apps au premier plan tiennent sans effondrement de pression L3.
3.1 Formule de budget mémoire (estimation)
| Poste | 7B Q4 | 14B Q4 | Remarque |
|---|---|---|---|
| Poids quantifiés | ~4,5 Go | ~9 Go | Ollama Q4_K_M par défaut |
| Cache KV (num_ctx=2048) | ~0,5 Go | ~1 Go | Croît linéairement avec ctx |
| macOS + premier plan | 4–6 Go | 4–6 Go | Chrome/IDE : 1–3 Go chacun |
| Daemon Ollama | ~0,3 Go | ~0,3 Go | Service HTTP permanent |
| Total (approx.) | ~10 Go | ~15 Go | 14B sur 16 Go : quasi plus de marge |
3.2 Trois paliers : OK / limite / déconseillé
| Mémoire | 7B/8B | 14B | 32B | Notes |
|---|---|---|---|---|
| 16 Go | ✅ Stable | ⚠️ Swap fréquent | ❌ | Premier palier usage léger perso |
| 24 Go | ✅ Très rapide | ✅ Zone idéale | ⚠️ Serré | Palier recommandé Agent / dev |
| 32 Go | ✅ | ✅ Grand ctx | ⚠️ Q4 testable | CI + LLM sur la même machine |
Si votre scénario principal est « Claude Code local + 14B », 24 Go est le meilleur rapport qualité-prix — ce n'est pas « +8 Go = +8 tok/s » linéaire, mais repousser le déclenchement du swap pour sortir le 14B de la zone d'effondrement. Méthodologie complète dans le Hub benchmarks LLM locaux.
4. Configuration : empreinte mémoire Ollama vs MLX mesurée
Beaucoup pensent que MLX, « plus natif », consomme moins — les mesures disent le contraire. Même modèle, même quantification : poids et KV quasi identiques ; la différence est l'architecture runtime, pas le nombre de Go.
| Comparaison | Ollama | MLX | Écart mesuré |
|---|---|---|---|
| Poids modèle (Llama 3.1 8B Q4) | ~4,9 Go | ~4,8 Go | Négligeable |
| Processus permanent | ~200–400 Mo (daemon) | Chargement à la demande, pas de daemon | Ollama un peu plus gourmand |
| tok/s (16 Go propre, 8B) | médiane ~28,8 | ~28–32 | MLX +0–12 % (offline) |
| tok/s (24 Go propre, 8B) | médiane ~51,2 | ~52–55 | Écart réduit |
| Intégration Claude Code | ✅ Natif :11434 | ❌ HTTP à construire | Agent → Ollama |
| Après déclenchement swap | 11,2 → 3,4 tok/s | Même effondrement à palier égal | Le palier RAM décide de tout |
Besoin de faire tourner le 14B à distance sans upgrader la machine locale ? Essayez une semaine sur un nœud cloud Macstripe 24 Go, validez le workflow Agent, puis décidez achat ou palier supérieur.
5. Données mesurées : tok/s, TTFT et point de rupture swap
Environnement : Mac Mini M4 (Mac14,3), macOS 15.4.1, Ollama 0.6.2, Q4_K_M par défaut. Machines m4-16gb-lab-01, m4-24gb-lab-02. Période 2026-05-28 au 2026-07-18.
5.1 16 Go : 7B stable vs 14B en effondrement
| Modèle | run 1 | run 2 | run 3 | médiane | Swapins |
|---|---|---|---|---|---|
| qwen2.5:7b | 28,7 | 31,4 | 26,9 | 29,1 | 0 |
| qwen2.5:14b | 11,2 | 8,4 | 3,4 | — (session interrompue) | 8421+ |
Le 14B sur 16 Go n'est pas « un peu lent » — c'est un effondrement en trois phases : run 1 acceptable → run 2 swap → run 3 memorystatus: WARN → runner tué OOM.
5.2 24 Go : le 14B entre dans la zone idéale
| Modèle | tok/s cinq runs | médiane | TTFT | Swapins |
|---|---|---|---|---|
| qwen2.5:7b | 49,2 / 53,8 / 51,1 / 48,6 / 52,4 | 51,1 | ~2,0 s | 0 |
| qwen2.5:14b | 14,2 / 16,8 / 15,1 / 17,3 / 14,9 | 15,1 | ~2,7 s | 0 |
5.3 Extrait de log brut
--- m4-16gb-lab-01 · qwen2.5:14b ---
run 1: tok/s=11.2 TTFT=2.71s
run 2: tok/s=8.4 Swapins: 1204
run 3: tok/s=3.4 memorystatus: WARN TTFT=5.81s
run 4: ERROR runner killed (oom?) Swapins: 8421
--- m4-24gb-lab-02 · qwen2.5:14b ---
tok/s: 14.2 16.8 15.1 17.3 14.9 median: 15.1
Log complet : resources/sample-benchmark-7b-14b-run.log ; script de reproduction : resources/benchmark-m4-mac-mini-ollama.sh.
6. Canal : montée en palier sur site vs location Mac cloud
| Voie | Pour qui | Avantages | Inconvénients |
|---|---|---|---|
| Achat sur site (16→24 Go) | Agent local plusieurs fois/semaine, usage offline long terme | Investissement unique, données restent sur la machine | Surcoût Apple au configurateur ; machine liée au bureau |
| Location cloud jour/mois | Essai 14B, pics de charge, nœud d'équipe | Activation en minutes ; 24 Go/48 Go à la demande | Réseau requis ; ROI long terme à calculer |
| Hybride : 16 Go local + 24 Go cloud | 7B au quotidien en local, grosses tâches dans le cloud | Coût flexible, pics sans swap | Deux environnements à maintenir |
Un dev iOS + IA en hybride : 16 Go local pour 7B (complétion), Claude Code lourd en SSH sur un nœud Macstripe 24 Go pour le 14B — ~$103/mois, plus prévisible que le surcoût d'upgrade matériel 24 Go. Comparatif location dans Mac mini M4 : comparatif tarifs location 2026.
7. Écart de palier : combien coûte la montée en mémoire
| Montée | Surcoût Apple US (env.) | Écart location cloud/mois (env.) | Quand ça vaut le coup |
|---|---|---|---|
| 16 Go → 24 Go | +$200 (à l'achat) | +~$30–50/mois | 3+ fois/semaine où le 7B « ne corrige pas » |
| 24 Go → 32 Go | +$200 | Selon fournisseur | Xcode CI + 14B sur la même machine |
| 16 Go → 48 Go (M4 Pro) | Changer de modèle | Nœud Macstripe 48 Go | Partage d'équipe / exploration 32B |
ROI grossier : si la qualité 7B vous coûte 2 h/semaine de rework (à $50/h), ~$400/mois — au-delà du surcoût Apple de +$200 pour 16→24 Go. Monter en RAM est souvent l'upgrade le moins cher et le plus efficace, bien plus qu'un changement de framework ou de réglages.
8. Checklist et mise en œuvre en sept étapes
Avant commande ou installation, alignez les attentes :
- ☐ Usage principal : chat (7B suffit) ou Agent dev (plutôt 14B)
- ☐ Chrome 20+ onglets + IDE en parallèle ?
- ☐ Besoin de Claude Code / Cursor branché sur un modèle local ?
- ☐ Runtime : Ollama (Agent) ou MLX (benchmarks uniquement) ?
- ☐ Machine locale permanente ou pics de charge dans le cloud ?
- ☐ Budget couvrant 16 Go / 24 Go / 32 Go — lequel ?
- ☐ Besoin de partage d'équipe (→ 24 Go+ ou nœud cloud)
- ☐ Acceptation du risque swap (16 Go + 14B = risque élevé)
Sept étapes (chemin Ollama)
- Confirmer palier RAM et modèle cible (16 Go→7B ; 24 Go→14B)
- Installer Ollama :
brew install ollamaou pkg officiel - Tirer le modèle :
ollama pull qwen2.5-coder:7b(16 Go) ou:14b(24 Go) - Vérifier Metal : logs
ollama servecontiennentggml_metal_init - Lancer le benchmark :
./resources/benchmark-m4-mac-mini-ollama.sh - Surveiller la mémoire :
vm_stat+ indicateur de pression (Moniteur d'activité) - Brancher l'Agent : Claude Code →
http://127.0.0.1:11434
9. Tableau des prix de départ citables (au 2026-07-21)
| Configuration | Prix Apple US (USD) | Prix éducation (env.) | Location cloud Macstripe (USD/mois) |
|---|---|---|---|
| M4 Mac Mini 16 Go / 256 Go | $599 | ~$539 | ~$102,9 |
| M4 Mac Mini 24 Go / 256 Go | $799 | ~$719 | ~$130–150 (selon nœud) |
| M4 Mac Mini 32 Go / 256 Go | $999 | ~$899 | Sur devis / personnalisé |
| M4 Pro 48 Go (nœud inférence) | $1 299+ | Selon config | Voir page tarifs |
Prix Apple : informations publiques du site US ; tarif éducation sous conditions ; location cloud selon la page tarifs Macstripe en direct.
10. Synthèse par scénario : qui devrait choisir quel palier
| Profil | RAM recommandée | Modèle + framework | Alternative |
|---|---|---|---|
| Étudiant / curieux | 16 Go | 7B + Ollama | Location à la journée pour tester le 14B |
| Dev indépendant + Agent | 24 Go | 14B + Ollama | 16 Go local + 24 Go cloud hybride |
| Dev iOS + LLM local | 32 Go | 14B + Xcode sur la même machine | Séparer CI et inférence sur deux machines |
| Petite équipe, nœud inférence | 48 Go | Cluster ollama serve | Nœud Macstripe 48 Go |
Pas sûr que 24 Go suffise ? Louez un Mac cloud une semaine avec votre vrai workflow Agent — plus fiable que dix articles de benchmark. Macstripe : SSH/VNC direct, ~5 minutes d'activation, sans engagement long — puis décidez achat sur site ou location durable.
FAQ
M4 Mac Mini pour LLM local : 16 Go ou 24 Go ?
7B/8B + IDE léger au quotidien : 16 Go. Pour un 14B stable, Claude Code Agent ou navigateur multi-onglets : 24 Go. Forcer le 14B sur 16 Go : tok/s mesurés de 11,2 à 3,4.
Ollama ou MLX : lequel consomme le plus de mémoire ?
Même modèle, même quantification : écart habituellement <5 %. Le goulot est le palier de mémoire unifiée, pas le framework. Scénario Agent → Ollama.
32 Go vaut-il le surcoût par rapport à 24 Go ?
Pour un 14B perso + ctx standard, 24 Go suffit souvent. 32 Go pour Xcode CI + LLM sur la même machine, ou num_ctx plus grand.
Comment savoir si la mémoire ne suffit plus ?
Indicateur de pression mémoire, vm_stat Swapins en hausse, tok/s en chute. memorystatus WARN précède le swap.
Peut-on louer un Mac cloud pour LLM local sans acheter la machine ?
Oui. Macstripe propose des nœuds M4 dédiés 16 Go/24 Go/48 Go ; installez Ollama après SSH — idéal pour essayer le 14B ou un nœud d'équipe.
Conclusion
Pour des LLM locaux sur M4 Mac Mini, le palier mémoire est un critère éliminatoire : 16 Go pour 7B + Ollama en usage perso ; 24 Go est la zone idéale pour Agent 14B ; 32 Go pour CI + grand contexte sur la même machine. L'écart mémoire Ollama/MLX est négligeable — le framework suit le scénario (Agent → Ollama, benchmark → MLX).
Si vous forcez encore le 14B sur 16 Go, lisez d'abord le benchmark 7B vs 14B sur les données swap, ou essayez un Mac cloud 24 Go une semaine avec votre workflow réel.