## Optimisation des modèles MoE sur des GPU modestes : Exécution de GPT-OSS-120B avec 6 GB de VRAM à jusqu'à 30 t/s
Le modèle GPT-OSS-120B comptant 120 milliards de paramètres fonctionne sur un GPU doté de 6 GB de VRAM à une vitesse de 30 jetons/s. Le facteur clé est l'utilisation de la RAM plutôt que de la VRAM, grâce à l'architecture Mixture of Experts (MoE) et au paramètre -cmoe. Cela permet une distribution efficace des tenseurs entre le CPU et le GPU sans avoir besoin de mises à niveau matérielles.
Architecture Mixture of Experts
Les modèles MoE activent un nombre limité d'experts issus d'un pool partagé à chaque couche. Le routeur (réseau de sélection) choisit 2 à 4 experts parmi 128 pour la génération de jetons, réduisant la charge de calcul par 24 par rapport aux modèles denses.
Chaque couche contient :
- Des blocs d'attention (tenseurs partagés)
- Des blocs FFN, remplacés par un groupe d'experts
- Un routeur pour le routage
Les experts sont des mini-FFN isolés spécialisés dans des plages de données d'entrée. Lors de la génération de jetons, le processus traverse toutes les couches (12 à 100+), alternant couches MoE et couches denses.
Dans les modèles denses, le FFN est un bloc monolithique ; dans les modèles MoE, il s'agit d'une structure éparse. Le volume total de paramètres est important, mais l'activité par passage est faible. Problèmes : chevauchement d'experts, routage sous-optimal du routeur.
Pourquoi la VRAM est inefficace pour MoE
Décharger des couches MoE entières sur le GPU entraîne du temps d'inactivité : sur 128 experts, seuls 4 sont actifs, le reste gaspille de la VRAM. Les tenseurs d'attention (partagés) ont un faible volume ; leur déchargement assure une utilisation constante du GPU.
Comparaison de configurations :
| Configuration | VRAM utilisée | Calculés | Efficacité |
|------------------|---------------|----------|------------|
| Couches entières | 16 blocs | 8 blocs | 50% |
| Tenseurs Attn | 16 blocs | 16 blocs | 100% |
Pour GPT-OSS-120B avec -cmoe, utilisation de la VRAM ~3 GB, vitesse 30 t/s. Les modèles denses n'ont pas de lacunes, la VRAM est proportionnelle aux calculs.
Paramètres d'optimisation dans llama.cpp
Paramètre principal -cmoe / --cpu-moe
Laisse les experts MoE (tenseurs exps) sur le CPU, et décharge :
- Les tenseurs d'attention de toutes les couches
- Les couches partagées (sans
expsdans le nom) - Les experts partagés (
shexp)
Logique de lancement :
-ngl 999— tout sur GPU-cmoe— MoE de retour sur CPU
Important : Ne pas utiliser ik_llama pour GPT-OSS-120B.
-ncmoe N / --n-cpu-moe N
Contrôle le nombre de couches sur CPU lorsque la VRAM est abondante. GPT-OSS-120B : 37 couches.
-cmoe— 3 GB de VRAM-ncmoe 30— remplit jusqu'à la limite
-ncmoe est ignoré avec -cmoe (ce dernier a la priorité).
Nouveau paramètre --fit (décembre 2025)
Remplissage automatique de la VRAM :
--fit— par défaut, pour MoE inclutncmoe--fit-ctx 4096— limite de contexte (défaut 4096 au lieu de 128k)--fit-target 1024— VRAM libre en MB (défaut 1 GB)
Définit automatiquement -fa, -ngl, -t au maximum. Problème : -t = cœurs CPU - 1, pour les CPU hybrides (cœurs E/P) spécifiez explicitement -t 8.
Optimisations mémoire supplémentaires
-fa 1— flash attention / swa / mla, détection automatique-ub 4096 -b 4096— quantification du KV-cache-ctk q8_0 -ctv q8_0— quantification du contexte
Nouveau --models-dir — basculer les modèles depuis l'interface utilisateur, --models-max 1 contre OOM.
Points clés
- Les modèles MoE (GPT-OSS-120B, DeepSeek V3) nécessitent RAM > VRAM
-cmoene décharge que les tenseurs d'attention sur GPU--fitautomatise l'ajustement des paramètres- Vitesse de 30 t/s sur 6 GB de VRAM réalisable
- Éviter
ik_llamaet l'auto---tsur CPU hybrides
— Editorial Team
Aucun commentaire pour le moment.