Déploiement sur Apple Silicon
128 Go de mémoire unifiée, et pourtant ça sature.
Le problème réel
La mémoire unifiée d'Apple Silicon est l'argument qui rend l'inférence locale viable : le GPU adresse la même RAM que le CPU, sans copie. Elle est aussi le piège, parce qu'elle est partagée avec tout le reste du système — le navigateur, l'IDE, le compositeur graphique.
Un modèle de 35 milliards de paramètres en 4 bits occupe une fraction substantielle de la machine. Deux modèles résidents, plus une session de navigateur chargée, et le système part en swap — ou se fait tuer.
Comment je le résous
Un budget mémoire unique et explicite, tenu par un ordonnanceur qui décide quel modèle décharger. Éviction LRU, avec un modèle épinglable qu'on ne décharge jamais. Les applications ne chargent plus leurs propres poids : elles demandent au gateway.
Le cœur de cet ordonnanceur est publié en open source, sans aucune dépendance — il est utile hors MLX.
Un piège appris sur le terrain
Deux croyances, mesurées puis abandonnées.
ps rss ment. Sur un processus MLX, il sous-estime l'empreinte réelle d'un facteur d'environ 30. Seul phys_footprint dit la vérité. Toute supervision bâtie sur rss annonce donc que tout va bien jusqu'à l'instant où le système meurt.
Le ratio de swap est du bruit. Il reste autour de 96 % en permanence parce que le pager redimensionne son propre fichier. S'en servir comme seuil d'alerte déclenche en continu. De même, une croissance de swap d'environ 1 Gio/s pendant le chargement d'un gros modèle est normale, pas un incident.
Un OOM réel a imposé la règle finale : mesurer la RAM réellement libre au lieu de faire confiance à son propre plan comptable. Le gateway croyait avoir de la place ; le système savait que non.
Ce que ça donne, mesuré
- Budget de 80 Go tenu sur une machine de 128 Go
- Garde-fou de mémoire réelle ajouté après incident, jamais retiré depuis
- Redémarrage des services un par un, jamais en lot — apprise à la dure
- Daemon de supervision mémoire en production, deux agents supervisés
Où c'est en production
- Klody Core — Plan de contrôle
- KlodyMem — Garde-fou mémoire macOS
- klodyfan — Contrôle ventilo · anti-throttle
Vos données ne peuvent pas sortir ?
C'est exactement le problème que je résous. Un appel de 30 minutes suffit à cadrer un audit.