PowerInfer
Inférence LLM hybride CPU/GPU exploitant la localité d’activation — exécutez des modèles de 70 milliards de paramètres sur un seul GPU grand public en répartissant intelligemment le calcul entre le CPU et le GPU.
🌟 Plus de 8 000 étoiles GitHub | Développé à SJTU IPADS | Licence MIT
Qu’est-ce que PowerInfer ?
PowerInfer est un moteur d’inférence haute performance pour les grands modèles de langage qui exploite une idée clé : Les LLM présentent une forte localité d’activation — un petit sous-ensemble de neurones (« neurones chauds ») est activé de façon constante à travers la plupart des étapes d’inférence, tandis que la majorité reste inactive.
PowerInfer utilise cette propriété pour :
Conserver les neurones chauds sur le GPU pour un calcul rapide
Décharger les neurones froids vers le CPU/RAM sans perte de qualité significative
Acheminer dynamiquement le calcul entre le CPU et le GPU en fonction des schémas d’activation
Le résultat : vous pouvez exécuter un modèle de 70 milliards avec seulement 16 Go de VRAM au lieu d’exiger plus de 140 Go entièrement sur le GPU.
Fonctionnalités clés
Prise en charge des GPU grand public — les RTX 3090/4090 peuvent exécuter des modèles de 70 milliards
Planification sensible aux neurones — le prédicteur détermine le routage CPU vs GPU pour chaque inférence
Dégradation minimale de la qualité — conserve plus de 95 % de la qualité en précision complète
Compatibilité avec llama.cpp — prise en charge du format GGUF
Déchargement CPU sensible au NUMA — optimisé pour les CPU à grand nombre de cœurs
Pourquoi utiliser PowerInfer sur Clore.ai ?
Clore.ai loue des GPU à un coût bien inférieur à celui des alternatives cloud. Avec PowerInfer :
Exécutez Llama 2 70B sur un seul RTX 4090 (24 Go de VRAM)
Réduisez drastiquement les coûts de location GPU par rapport aux configurations multi-GPU
Traitez de longues fenêtres de contexte avec la RAM CPU comme dépassement
Exécutez des modèles nécessitant auparavant de coûteuses instances A100/H100
Configuration matérielle requise
7B
4 Go
16 Go
Excellente
13B
6 Go
32 Go
Très bonne
34B
12 Go
64 Go
Bon
70B
16 Go
128 Go
Modérée
Démarrage rapide sur Clore.ai
Étape 1 : choisissez votre serveur
Sur clore.ai place de marché, filtrez selon :
GPU NVIDIA avec 16 Go+ de VRAM (RTX 3090, RTX 4090, A100)
Nombre élevé de cœurs CPU (16 cœurs ou plus idéalement)
64 Go+ de RAM pour les modèles 70B, 32 Go pour les modèles 13B
Étape 2 : créez une image Docker personnalisée
PowerInfer nécessite une configuration Docker personnalisée. Utilisez ce Dockerfile:
Construisez et envoyez vers Docker Hub ou utilisez en ligne avec Clore.ai :
Étape 3 : déployez sur Clore.ai
Dans votre commande Clore.ai, définissez :
Image Docker :
yourname/powerinfer:latestPorts :
22(SSH)Environnement :
NVIDIA_VISIBLE_DEVICES=all
Compiler PowerInfer à partir des sources
Si vous préférez compiler à l’intérieur du conteneur :
Vérifier la compilation
Obtenir les modèles
Télécharger les modèles GGUF
PowerInfer utilise le format GGUF (comme llama.cpp) :
Générer le prédicteur de neurones (requis pour PowerInfer)
PowerInfer a besoin d’un prédicteur d’activation des neurones pour chaque modèle. C’est la principale différence avec llama.cpp :
Exécution de l’inférence
Inférence de base (sans prédicteur)
Pour tester sans génération de prédicteur (répartition GPU/CPU standard) :
Mode PowerInfer (avec prédicteur)
Mode PowerInfer complet avec routage sensible aux neurones :
Mode de discussion interactif
Mode serveur (API compatible OpenAI)
Optimisation de la répartition des couches GPU
Le --gpu-layers paramètre détermine combien de couches du transformeur conserver sur le GPU. Ajustez-le en fonction de votre VRAM :
Guide d’allocation des couches :
8 Go
Toutes (32)
20 couches
10 couches
4 couches
16 Go
Toutes (32)
Toutes (40)
25 couches
10 couches
24GB
Toutes (32)
Toutes (40)
Toutes (60)
20 couches
48GB
Toutes (32)
Toutes (40)
Toutes (60)
Toutes (80)
Références de performance
Comparaison du débit (Llama 2 70B, RTX 3090)
llama.cpp (GPU uniquement)
20/80
~4 jetons/s
llama.cpp (CPU uniquement)
0/80
~1 jeton/s
PowerInfer
20/80 + prédicteur
~12 jetons/s
Exécution en tant que service
Créez un service systemd pour un service API persistant :
Utilisation de l’API
Une fois le serveur en cours d’exécution, utilisez n’importe quel client compatible OpenAI :
Dépannage
Mémoire CUDA insuffisante
Inférence CPU lente
Échec de la compilation
Recommandations GPU Clore.ai
La conception hybride CPU/GPU de PowerInfer change l’économie d’exécution des grands modèles. Les serveurs Clore.ai dotés de GPU à forte VRAM ET de CPU rapides sont idéaux.
RTX 3090
24 Go
0,07–0,21 $/h
70B (avec 64 Go+ de RAM)
~8–12 jetons/s
RTX 4090
24 Go
0,14–0,42 $/h
70B (déchargement CPU plus rapide)
~12–18 jetons/s
Le CPU compte autant que le GPU : PowerInfer décharge les neurones « froids » vers le CPU. Les serveurs Clore.ai dotés de CPU AMD EPYC ou Intel Xeon (beaucoup de cœurs, large bande passante mémoire) dépasseront nettement les CPU grand public à socket unique. Vérifiez les spécifications du serveur avant de louer pour des travaux sur de grands modèles.
Goulet d’étranglement de la bande passante mémoire : Pour les modèles 70B, la bande passante de la RAM CPU est le facteur limitant pendant le calcul des neurones froids. Les serveurs avec RAM DDR5 ECC ou des architectures proches de la HBM offriront un meilleur débit.
Ressources
🐙 GitHub : github.com/SJTU-IPADS/PowerInfer
📄 Article de recherche : PowerInfer : diffusion rapide de grands modèles de langage avec un GPU grand public
🤗 Modèles GGUF : huggingface.co/TheBloke
🧩 Laboratoire SJTU IPADS : ipads.se.sjtu.edu.cn
Mis à jour
Ce contenu vous a-t-il été utile ?