L'exécution locale de très grands modèles de langage sur du matériel grand public relève souvent du défi technique. Andrea Borio, ingénieur spécialisé dans l'inférence, a tenté l'expérience avec GLM-5.2, un modèle à mélange d'experts (MoE) développé par Z.ai, sur un MacBook Pro doté de 64 Go de mémoire unifiée Apple Silicon. Le résultat est mesurable mais loin d'une expérience fluide : environ 2 tokens par seconde.

Un modèle qui tient à peine dans la mémoire

Le fichier du modèle, quantifié et converti au format GGUF natif pour le runtime ds4, pèse environ 244 Gio. La seule partie routée du MoE occupe 224 Gio. Avec seulement 64 Go de RAM, le système doit constamment gérer le va-et-vient entre la mémoire et le stockage. L'auteur a utilisé une version expérimentale de ds4, un fork de l'outil conçu par antirez, ainsi qu'un « sidecar » optionnel : un paquet compact des tranches d'experts les plus fréquemment sollicitées, afin d'améliorer la localité des données.

Des performances très modestes, mais stables

Après plusieurs essais à chaud (cache mémoire déjà rempli), les mesures indiquent une génération comprise entre 2,01 et 2,52 tokens par seconde selon la taille du cache d'experts résidents, avec un maximum de 32,25 Go de mémoire résidente et aucun échange sur le disque (swap). Le test le plus propre, avec 32 experts en cache, donne 2,28 tokens/s avec le sidecar et 2,18 tokens/s sans lui.

Un goulot d'étranglement inattendu : la dispersion des données

L'intérêt principal de l'expérience réside dans l'identification du goulot d'étranglement. Alors que les modèles MoE réduisent le nombre d'opérations arithmétiques en n'activant qu'un sous-ensemble d'experts par jeton, le problème se déplace vers les entrées-sorties disque. L'analyse montre que les données utiles des experts sélectionnés sont dispersées sur le fichier. Un triplet d'experts (gate, up, down) contient environ 11,8 Mio de données utiles, mais ces dernières peuvent être réparties sur 2 Gio d'offset dans le fichier. « GLM-5.2 est parcimonieux en calcul, mais du point de vue de ce chemin de streaming, il est diffus en entrées-sorties », résume Borio.

Conséquences pour l'inférence locale

Ce résultat illustre que la simple quantification et le recours au MoE ne suffisent pas à garantir une exécution rapide sur une machine personnelle. La disposition des tenseurs dans le fichier et la politique de cache deviennent critiques. L'auteur suggère qu'une réorganisation du format de stockage – pour regrouper les experts fréquemment activés – améliorerait significativement les performances, sans modifier le modèle lui-même. L'expérience démontre aussi qu'il est possible de faire tourner un modèle de 244 Go sur 64 Go de RAM, mais à un débit trop faible pour une utilisation interactive.