Les Mac Apple Silicon (M1, M2, M3, M4 et suivants) sont devenus des postes sérieux pour l’IA locale grâce à la mémoire unifiée. Ce tutoriel explique pourquoi, démarre MLX et Ollama sans promettre de débits inventés, situe LM Studio, et pose les limites honnêtes — y compris pour un Qwen 3.8 27B. Que vous soyez indépendant à Lille, designer à Roubaix ou médiateur numérique à Amiens, vous repartirez avec une méthode de comparaison sur votre machine, pas avec un tableau de scores fantômes.
Pourquoi le Mac est bon pour l’IA locale
Sur Apple Silicon, CPU, GPU et souvent le Media Engine partagent une mémoire unifiée à haute bande passante. Pour l’inférence, cela évite en partie le goulot « copie vers une VRAM séparée » des PC classiques. Résultat : avec suffisamment de mémoire, des modèles ambitieux deviennent utilisables sur un portable silencieux — atout pour une démo en mairie à Arras ou un atelier en bibliothèque à Boulogne.
Ce n’est pas magique. La chaleur, l’alimentation (secteur vs batterie), les apps ouvertes et la taille de contexte pèsent. Un MacBook en réunion Teams + Docker + LLM aura moins de marge qu’un Mac Mini dédié sous le bureau d’une association à Valenciennes. Commencez toujours par regarder la mémoire libre réelle, comme dans quel modèle selon la machine.
MLX vs GGUF / Ollama : deux familles d’usage
MLX est le framework machine learning orienté Apple. L’écosystème `mlx-lm` permet de télécharger et servir des poids adaptés. Ollama, de son côté, unifie l’expérience multi-plateforme avec des tags prêts à tirer, souvent en GGUF côté coulisses. LM Studio offre une UI pour charger des modèles (GGUF/MLX selon versions) sans ligne de commande. Aucun n’est « sponsorisé » par IAHDF : choisissez selon votre confort.
Ollama
Rapide à démarrer, API locale, bon avec Open WebUI.
- Tags simples à partager en équipe
- Très bon pour Open WebUI
- Moins « natif Apple » que MLX
MLX / mlx-lm
Proche du métal Apple, flexible pour profils techniques.
- Bon contrôle Python
- Identifiants Hugging Face à vérifier le jour J
- Courbe d’apprentissage un peu plus haute
LM Studio
UI pour charger et discuter sans terminal.
- Pratique en découverte
- Vérifiez la licence d’usage pro
- Peut coexister, mais attention à la RAM
Lire la mémoire unifiée sans se tromper
Ouvrez Moniteur d’activité > Mémoire. Notez la mémoire physique et la pression mémoire. Un indicateur jaune/rouge pendant l’inférence signifie que vous êtes trop juste. Quittez navigateur lourd, prévisualisations et autres IDEs. Sur un Mac 16 Go d’étudiant à Compiègne, cette hygiène change plus le résultat qu’un débat sur le nom du modèle.
Ordres de grandeur : 16 Go unifiés → modèles modestes ou quantifications serrées ; 32 Go → marge réelle pour expérimenter plus large ; au-delà → confort pour des denser ambitieux, toujours selon quantification et contexte. Ces seuils sont des boussoles, pas des mesures de labo. Pour un 27B, posez la question honnêtement : est-ce fluide après dix minutes, ou seulement « ça charge » ?
Pas à pas : Ollama et MLX sur Mac
Préparer le Mac (espace, Xcode CLT si besoin)
Libérez du disque : les poids pèsent lourd. Installez les outils de ligne de commande Apple si vous compilerez ou utiliserez certaines piles Python. Mettez à jour macOS dans une fenêtre calme, pas au milieu d’une démo. Désactivez temporairement les snapshots Time Machine gourmands si vous chronométrez — un backup qui démarre fausse la sensation de vitesse. Si quelque chose échoue, arrêtez-vous et notez le message exact avant de retenter. Une capture d’écran des logs vaut mieux qu’une reformulation de mémoire, surtout quand un collègue de Douai ou Arras reprendra le dossier le lendemain.
Installer Ollama et tirer un tag de test
Installez Ollama depuis le site officiel Mac. Copiez un petit tag depuis ollama.com/library, lancez `ollama pull` puis `ollama run`. Vérifiez qu’une réponse en français arrive. Ce smoke test prouve que la pile de base fonctionne avant d’attaquer un gros modèle. Sur un Mac de médiation à Lens, gardez ce petit tag comme filet de sécurité pour les ateliers. Gardez un bloc-notes ouvert : commande tapée, résultat attendu, résultat obtenu. Cette trace courte accélère le dépannage et évite de croire qu’« on a déjà essayé » sans preuve.
Créer un environnement Python pour mlx-lm
Créez un venv dédié pour ne pas polluer le Python système. Installez `mlx-lm` via pip en suivant la documentation courante du projet (la commande exacte et les extras évoluent). Vérifiez l’import Python. Si pip échoue sur des roues natives, relisez les prérequis macOS / architecture arm64 : un terminal en émulation x86_64 est un piège classique. Vérifiez aussi l’environnement : VPN, proxy, antivirus, espace disque. Beaucoup d’échecs attribués au modèle viennent d’un réseau d’entreprise à Lille ou d’un disque plein après plusieurs pulls.
Télécharger un modèle MLX documenté
Sur Hugging Face, choisissez un dépôt MLX clairement maintenu, lisez la fiche, copiez l’identifiant exact. Lancez le téléchargement avec l’outil CLI documenté pour votre version de mlx-lm. Ne inventez pas un chemin de fichiers. Stockez les poids sur un disque où vous avez de la place — le disque système d’un MacBook 256 Go se remplit vite. Quand l’étape réussit, marquez-la explicitement dans votre checklist. Les bascules trop rapides vers l’étape suivante masquent des configs demi-installées qui cassent plus tard en démo publique.
Comparer MLX et Ollama sur les mêmes prompts
Utilisez trois prompts identiques. Notez latence perçue, qualité, bruit ventilateur, pression mémoire. Vous n’avez pas besoin d’un banc de tokens/s publié : une grille qualitative suffit pour décider quelle stack vous garderez au quotidien. Si les deux sont proches, préférez celle que votre équipe saura maintenir. Si vous travaillez à deux, faites reformuler le geste par la personne la moins technique. Ce qui n’est pas dit clairement maintenant reviendra en ticket flou après l’atelier. Complétez par un test de non-régression : refaites le même geste après avoir fermé puis rouvert l’outil, afin de confirmer que la configuration survit au redémarrage et reste compréhensible pour un collègue qui n’a pas suivi toute la session.
Brancher une UI si besoin et figer la doc
Pour une interface type chat, Ollama + Open WebUI reste un combo répandu. LM Studio peut suffire en solo. Écrivez dans un README : versions, identifiants de modèles, date. Un freestyle non documenté sur le Mac de l’association devient un mystère dès que la personne part en congés. Testez une fois « à froid » après redémarrage de la machine. Un service qui ne survit pas au reboot n’est pas prêt pour une permanence à Valenciennes ou Amiens. Ajoutez une vérification métier : demandez à une personne du terrain de reformuler le besoin en une phrase, puis vérifiez que votre réglage répond vraiment à cette phrase, pas seulement au scénario technique imaginé au départ.
Ollama sur Mac : gestes utiles
Les commandes de forme `ollama pull`, `ollama run`, `ollama list`, `ollama rm` sont les mêmes que sur PC. Le dossier des modèles peut être déplacé si le disque interne est plein — consultez la doc Ollama du moment pour la variable ou le réglage exact. Évitez de synchroniser ce dossier avec iCloud : des fichiers partiels cassent les checksums.
ollama --version ollama pull TAG_EXACT_DEPUIS_LA_LIBRARY ollama run TAG_EXACT_DEPUIS_LA_LIBRARY # Dans le chat : demandez une réponse courte en français, puis /bye ollama list
MLX : installer et lancer sans folklore
Travaillez toujours en arm64 natif. Créez le venv, mettez pip à jour, installez mlx-lm selon le README actuel. Pour générer du texte, les CLI évoluent (`mlx_lm.generate` ou équivalent) : copiez l’exemple de la version installée plutôt qu’un souvenir d’article. L’intérêt de MLX apparaît surtout si vous enchaînez scripts, quantifications converties, ou expérimentations au-delà du chat.
python3 -m venv ~/venvs/mlx source ~/venvs/mlx/bin/activate pip install -U pip pip install mlx-lm # Puis suivez l’exemple CLI de votre version pour charger # l’identifiant Hugging Face EXACT du modèle MLX choisi
Limites : 27B, batterie, Docker
Un Qwen 3.8 27B peut être envisageable sur un Mac bien doté en mémoire unifiée, avec la bonne quantification — ce n’est pas automatique sur 16 Go. Si la pression mémoire explose, descendez de taille ou de bits. En batterie, attendez-vous à du thermal throttling : pour une démo à Dunkerque, restez branché secteur.
Docker Desktop sur Mac ajoute une couche de virtualisation : utile pour Open WebUI, mais coûteux en RAM. Sur 16 Go, faites tourner soit une stack lourde Docker+LLM, soit acceptez de fermer presque tout le reste. Parfois, servir le modèle via Ollama natif et n’ouvrir l’UI que quand nécessaire est plus sage.
Cas HdF : un Mac pour l’équipe
Scénario fréquent : un Mac Mini fixe dans un espace de coworking à Lille, accessible en local. Installez Ollama + Open WebUI, compte non admin pour les usagers, modèle plancher documenté, gros modèle réservé aux créneaux réservés. Affichez une petite charte : pas de données personnelles sensibles (guide données si vous le reliez en interne), pas de pull sauvage qui remplit le disque.
Autre scénario : indépendant à Saint-Quentin qui alterne LM Studio le matin et Ollama le soir. Choisissez une stack principale. Deux UIs qui chargent deux poids différents finissent par se marcher dessus. La discipline vaut plus qu’un outil supplémentaire.
Dépannage Mac
`ollama` introuvable : terminal qui n’a pas le PATH de l’app. Pip qui installe des wheels x86 : mauvais Python. Modèle ultra lent après quelques minutes : throttling thermique, posez le Mac sur une surface dure, branchez l’alimentation. Open WebUI ne voit pas Ollama : URL depuis Docker, comme dans install Open WebUI. Disque plein au milieu du pull : `ollama rm` des anciens tags, videz Corbeille.
| Symptôme | Piste |
|---|---|
| Pression mémoire rouge | Plus petit modèle / fermer apps / moins de contexte |
| Ventilateur max + lenteur | Secteur, surface plane, pause thermique |
| Échec pip mlx | Python arm64, venv propre, doc version |
| Deux UIs qui plantent | Un seul runtime chargé à la fois |
Si Spotlight ou Time Machine indexe massivement pendant un pull, la machine paraît « morte » alors que le GPU attend le disque. Pausez les grosses tâches de fond le temps du test. Sur un Mac partagé en médiathèque à Cambrai, créez un compte session « IA » dédié pour éviter les sync iCloud personnelles qui remplissent le disque à l’insu de tout le monde.
Préparer une démo publique sur Mac
La veille : tirez les tags, lancez un smoke test, branchez le secteur, fermez les apps inutiles, désactivez les notifications. Le jour J : démarrez Ollama avant d’ouvrir l’UI, vérifiez la mémoire libre, gardez le petit modèle en secours. À Lille comme à Abbeville, le public retient surtout la fluidité et l’honnêteté (« voici ce que cette machine tient ») plutôt qu’un numéro de paramètres.
Si vous montrez un RAG, indexez un corpus public court la veille (chaîne RAG). Ne lancez pas un premier pull de 27B en direct sur le Wi-Fi de la salle : c’est le scénario catastrophe classique. Affichez plutôt Moniteur d’activité une minute pour expliquer la mémoire unifiée — geste pédagogique très parlant. Prévoyez aussi un câble Ethernet USB-C : dans plusieurs salles associatives de la métropole lilloise, le Wi-Fi public throttle les gros téléchargements sans message d’erreur clair.
Décider Ollama, MLX ou LM Studio pour votre cas
Choisissez Ollama si vous voulez partager une API avec Open WebUI et documenter des tags simples pour l’équipe. Choisissez MLX si vous scripts en Python et voulez rester proche de l’écosystème Apple. Choisissez LM Studio si l’absence de terminal est non négociable pour les utilisateurs finaux — en vérifiant les conditions d’usage pro sur le site officiel le jour J.
Une agence de communication à Roubaix n’a pas les mêmes contraintes qu’un labo étudiant à Compiègne. Écrivez le critère de succès avant d’installer la troisième UI : « trois personnes rédigent un mail sans appeler le geek du bureau ». Ce critère élimine souvent les stacks trop riches.
Questions fréquentes
MLX est-il obligatoire sur Mac ?
Non. Ollama suffit à beaucoup d’usages, surtout avec une UI web. MLX devient intéressant pour un profil technique qui veut l’écosystème Apple et des scripts Python. Commencez par Ollama si votre objectif est un chat stable pour l’équipe ; explorez MLX ensuite sans jeter la stack qui marche. Pour trancher chez vous, reproduisez le scénario sur la machine réelle avec un protocole court écrit à l’avance. Une conclusion d’atelier à Roubaix ne se transfère pas telle quelle sur un portable différent.
Mon Mac M1 8 Go peut-il servir ?
Pour découvrir de tout petits modèles, oui, avec des attentes modestes. Pour un usage pro confortable et des denser ambitieux, la mémoire sera le mur. Mieux vaut un petit modèle fluide qu’un gros qui rend le Finder inutilisable. En atelier public, la fluidité pédagogique prime. Gardez une fiche datée : question, hypothèse, test, résultat. Cette hygiène évite les débats sans fin et construit une mémoire utile pour la prochaine personne référente. Documentez le contournement éventuel (petit modèle, localhost, hors VPN) pour ne pas rester bloqué en démonstration publique : un plan B écrit vaut mieux qu’une improvisation sous le regard d’un public à Lille ou Amiens.
Comment comparer objectivement sans benchmark public ?
Fixez prompts, mesurez le temps jusqu’à une réponse complète subjective, notez les erreurs factuelles sur un texte source que vous fournissez, et la pression mémoire. Répétez deux fois pour lisser les à-coups. Cette méthode artisanale est plus honnête qu’un chiffre recopié d’un réseau social. Si deux camps s’opposent dans l’équipe, imposez un A/B sur la même batterie de prompts plutôt qu’un vote d’opinion. Le terrain tranche plus vite que les digressions de salon.
Puis-je utiliser un GPU eGPU ?
Sur Apple Silicon, la stratégie eGPU historique des Mac Intel ne se transpose pas de la même façon. En pratique, on mise sur la mémoire unifiée interne. Si vous avez besoin de plus de mémoire, la voie réaliste est souvent un Mac mieux doté ou un PC/GPU dédié pour les jobs lourds — pas un accessoire miracle. Méfiez-vous des captures hors contexte trouvées en ligne. Sans connaître quantification, contexte et charge machine, un chiffre spectaculaire ne dit rien de votre poste à Beauvais.
Et pour aller plus loin côté moteur ?
Si vous aimez compiler et peaufiner les flags, llama.cpp permet d’explorer Metal et d’autres backends. Ce n’est pas nécessaire pour démarrer. Passez-y quand Ollama vous semble trop « boîte noire » et que vous assumez la maintenance. Quand le problème semble intermittent, journalisez l’heure, la température perçue et les autres apps ouvertes. Les coïncidences thermiques et mémoire sont fréquentes sur machines partagées. Mesurez aussi le confort subjectif (bruit, chaleur, temps d’attente ressenti) : un réglage « correct » sur le papier mais pénible au quotidien ne sera pas adopté par une équipe de collectivité ou d’association.
