← Resources
By Ren Sugaya
— Performance Engineer, GPU & Inference
·
· TUTORIAL
Exécuter des LLMs sur Apple Silicon : Mémoire Unifiée et Modèles Compatibles
Apple Silicon est particulièrement efficace pour exécuter des LLMs car sa mémoire unifiée est partagée, à haute bande passante et généreuse — un Mac de 64 Go peut faire tourner un modèle 70B. Ce guide explique ce qui rentre dans chaque niveau de RAM, MLX versus llama.cpp, la seule vraie faiblesse (le traitement des prompts) et les outils disponibles.
Pourquoi la mémoire unifiée est l'avantage clé
Apple Silicon partage un unique pool de mémoire à haute bande passante entre le CPU, la GPU et le Neural Engine — il n'y a pas de VRAM séparée ni de copie lente à travers un bus PCIe. C'est pourquoi un Mac de 64 Go peut charger un modèle qui ne tient pas sur une GPU discrète de 24 Go : tout le pool est disponible pour la GPU.
Cela importe parce que la génération de tokens dans un LLM est [limitée par la bande passante mémoire](/articles/running-llms-on-cpu) — chaque token nécessite la lecture du modèle depuis la mémoire — et la bande passante unifiée d'Apple est suffisamment élevée pour être véritablement compétitive en decode. La bande passante, et non la puissance de calcul brute, est la spécification qui détermine la vitesse de génération ici.
Ce qui rentre, par niveau de mémoire
La mémoire unifiée est la contrainte déterminante, alors dimensionnez le modèle selon votre Mac (chiffres avec quantification à 4 bits) :
- 16 Go : modèles 7B–8B sans problème.
- 32 Go : jusqu'à environ 30B.
- 64 Go : un modèle 70B devient faisable (un 70B en Q4 pèse environ 40 Go), bien que la marge pour le contexte soit serrée — c'est le point d'entrée pratique pour le 70B.
- 128 Go : un 70B en précision élevée (Q5/Q8) avec de la place pour les grands contextes.
- Niveau Ultra (192 Go+) : 70B en haute précision, très grands modèles ou plusieurs modèles en mémoire simultanément.
Règle générale : prévoyez environ 0,5–0,6 Go par milliard de paramètres pour les poids en Q4, puis laissez de la place pour le cache KV, qui croît avec la longueur du contexte et détermine souvent si vous pouvez avoir 16K ou 32K de contexte.
MLX vs llama.cpp
Deux runtimes dominent sur Mac. Le backend Metal de llama.cpp traduit le calcul GPU en shaders Metal et utilise le format multiplateforme GGUF avec la plus grande bibliothèque de modèles. MLX est le propre framework d'Apple, conçu de zéro pour la mémoire unifiée — généralement plus rapide sur les petits modèles (souvent de façon notable en dessous de ~14B), l'écart se resserrant au-dessus de ~27B où tous deux atteignent le plafond de bande passante.
MLX a le vent en poupe : Apple l'a positionné comme le framework de référence pour Apple Silicon, les runtimes populaires ont ajouté des backends MLX, et il excelle sur les modèles de mélange d'experts. Conclusion pragmatique : MLX pour la vitesse maximale sur les petits modèles et les modèles MoE, llama.cpp/GGUF pour le plus grand choix de modèles et la cohérence multiplateforme.
La vraie faiblesse : le traitement des prompts
La véritable limitation d'Apple Silicon n'est pas la génération — c'est le traitement des prompts (temps jusqu'au premier token). Le prefill est limité par le calcul, implique de grandes multiplications matricielles, et les GPU d'Apple ne disposent pas des tensor cores dédiés qui rendent NVIDIA rapide dans ce domaine. Ainsi, même lorsque la génération de tokens est compétitive, le modèle peut être notablement lent à commencer à répondre sur un long prompt, ce qui domine la sensation réelle du travail en contexte long.
L'autre limitation est l'écosystème : la plupart des outils ciblent CUDA, il y a moins de modèles MLX pré-quantifiés que de modèles GGUF, et une GPU NVIDIA haut de gamme dispose encore de plusieurs fois plus de bande passante brute. Pour une utilisation locale interactive mono-utilisateur, Apple Silicon est excellent ; pour le traitement de longs contextes ou un service à haut débit, ces lacunes comptent.
Outils et quantification
L'écosystème d'outils pour Mac est mature : Ollama (CLI plus une API compatible OpenAI, le démarrage le plus simple), LM Studio (la meilleure interface graphique), MLX-LM (performance maximale et fine-tuning, via Python) et des applications offline axées sur la confidentialité. GGUF est le format de quantification dominant entre les outils ; le format MLX est natif Apple et plus rapide mais dispose d'une bibliothèque plus petite.
Comme partout, la [quantification](/articles/llm-quantization-explained-gguf) est ce qui rend tout cela possible — passer à 4 bits réduit un modèle d'environ quatre fois (un 70B de ~140 Go à ~40 Go) avec une perte de qualité modeste, et Q4_K_M est généralement le meilleur compromis. Montez à Q5 ou Q8 si votre mémoire unifiée le permet.
Apple Silicon dans osFoundry
osFoundry exécute l'inférence locale sur Apple Silicon via les chemins Metal et MLX, de sorte que le modèle tourne entièrement sur la GPU de votre Mac en utilisant sa mémoire unifiée — aucune donnée ne quitte l'appareil et il n'y a pas de pénalité de copie PCIe. Comme la contrainte est simplement la quantité de mémoire unifiée disponible, osFoundry vous aide à choisir un modèle dimensionné pour votre Mac — un modèle 7B–8B sur une machine de 16 Go, jusqu'à un 70B sur une machine de 64 Go ou plus — et sélectionne la quantification pour faire rentrer le modèle dans la mémoire disponible tout en préservant autant de qualité que possible, afin que vous n'ayez pas à raisonner manuellement sur les formats GGUF ou les compromis Q4/Q5/Q8. Le résultat est une inférence locale entièrement privée et capable de fonctionner hors ligne, adaptée au niveau de mémoire de chaque Mac — et le même modèle peut passer à l'échelle vers un endpoint GPU dédié quand vous avez besoin d'un traitement de prompts plus rapide ou d'un débit plus élevé. (Pour comprendre l'histoire de bande passante sous-jacente, consultez notre [guide d'inférence CPU](/articles/running-llms-on-cpu).)
Frequently asked questions
- Un Mac peut-il exécuter de grands modèles de langage localement sans GPU dédiée ?
- Oui — c'est la force d'Apple Silicon. Sa mémoire unifiée est partagée entre CPU et GPU avec une haute bande passante, de sorte que la GPU peut utiliser l'intégralité du pool mémoire. Un Mac de 64 Go peut faire tourner un modèle 70B à 4 bits, ce qu'une GPU discrète de 24 Go ne peut pas héberger, et les petits modèles tournent vite. Aucune GPU séparée n'est nécessaire.
- Combien de mémoire unifiée faut-il pour exécuter un modèle 7B, 30B ou 70B ?
- Avec une quantification à 4 bits : environ 16 Go pour un modèle 7B–8B, 32 Go pour jusqu'à environ 30B, et 64 Go pour un 70B (qui représente environ 40 Go de poids, laissant peu de marge pour le contexte). 128 Go vous permettent d'exécuter un 70B en précision plus élevée avec de la place pour des contextes larges. Laissez toujours de la marge pour le cache KV, qui croît avec la longueur du contexte.
- MLX est-il plus rapide que llama.cpp sur Apple Silicon ?
- Souvent, sur les petits modèles — MLX est le framework d'Apple conçu pour la mémoire unifiée et est nettement plus rapide en dessous d'environ 14B, et il excelle sur les modèles de mélange d'experts. Au-dessus d'environ 27B, les deux convergent car tous deux sont limités par la bande passante. L'avantage de llama.cpp est la plus grande bibliothèque de modèles GGUF et la cohérence multiplateforme. Utilisez MLX pour une vitesse maximale sur les petits modèles et les modèles MoE.
- Pourquoi mon Mac est-il lent à commencer à répondre sur les longs prompts ?
- Parce que le traitement des prompts (temps jusqu'au premier token) est le point faible d'Apple Silicon. Le prefill est limité par le calcul et les GPU d'Apple ne disposent pas des tensor cores dédiés qu'NVIDIA utilise à cet effet, donc un long prompt prend du temps avant que le premier token apparaisse — même lorsque la génération de tokens ensuite est rapide. C'est la principale limitation spécifique à Apple pour le travail en contexte long.
- Quel est l'outil le plus rapide pour exécuter des LLMs sur Mac ?
- Pour des performances maximales, MLX-LM (le framework d'Apple), surtout sur les petits modèles et les modèles MoE. Pour la facilité d'utilisation, Ollama (CLI plus une API compatible OpenAI) ou LM Studio (la meilleure interface graphique) sont les choix populaires, et plusieurs utilisent désormais des backends MLX sur Apple Silicon. Le bon choix dépend de si vous voulez une vitesse maximale ou une commodité maximale.
- Puis-je exécuter un modèle 70B sur un MacBook Pro de 64 Go ?
- Oui, à 4 bits — un 70B en Q4 pèse environ 40 Go, ce qui rentre dans 64 Go avec de la place pour le runtime et une fenêtre de contexte modeste. C'est le point d'entrée pratique pour le 70B sur Mac ; la marge de contexte est limitée, donc pour de grands contextes ou une précision plus élevée, vous auriez besoin de 128 Go. Attendez-vous à une bonne vitesse de génération mais à un temps jusqu'au premier token plus lent sur les longs prompts.
- Apple Silicon ou NVIDIA pour les LLMs locaux ?
- Apple Silicon est excellent pour l'inférence locale privée mono-utilisateur — la grande mémoire unifiée permet à un Mac d'exécuter des modèles qui nécessiteraient plusieurs GPU discrètes, avec une consommation d'énergie réduite. NVIDIA l'emporte sur la bande passante brute (plusieurs fois supérieure), la vitesse de traitement des prompts, le service à haute concurrence et l'écosystème (CUDA). Choisissez Apple pour un usage local personnel et les grands modèles sur une seule machine ; NVIDIA pour le débit et le service en contexte long.
Sources