Serving rapide de grands modèles de langage sur PC équipés de GPU grand public
(github.com/SJTU-IPADS)PowerInfer : serving rapide de grands modèles de langage avec des GPU grand public
- PowerInfer est un moteur d’inférence LLM CPU/GPU qui exploite la localité d’activation.
- PowerInfer et llama.cpp s’exécutent sur le même matériel et utilisent pleinement la VRAM d’une RTX 4090.
Vue d’ensemble
- PowerInfer est un moteur capable d’exécuter à haute vitesse l’inférence de grands modèles de langage (LLM) sur un seul GPU grand public installé dans un ordinateur personnel (PC).
- Le principe de conception de PowerInfer repose sur l’exploitation de la forte localité observée dans l’inférence LLM, caractérisée par une distribution en loi de puissance des activations neuronales.
- Cette distribution indique qu’un petit nombre de neurones « chauds » sont activés de manière cohérente, tandis que la grande majorité des neurones « froids » varie selon l’entrée.
- PowerInfer exploite cette observation pour concevoir un moteur d’inférence hybride GPU-CPU : les neurones « chauds » sont préchargés sur le GPU, tandis que les neurones « froids » sont calculés sur le CPU, ce qui réduit fortement les besoins en mémoire GPU et les transferts de données entre CPU et GPU.
- PowerInfer intègre un prédicteur adaptatif et des opérateurs creux conscients des neurones afin d’optimiser l’efficacité de l’activation neuronale et de la sparsité des calculs.
- Selon l’évaluation, PowerInfer atteint sur un seul GPU NVIDIA RTX 4090 un débit moyen de 13,20 tokens/s et jusqu’à 29,08 tokens/s sur divers LLM (par ex. OPT-175B), soit des performances seulement 18 % inférieures à celles d’un GPU serveur A100.
- Il offre jusqu’à 11,69 fois plus de performances que llama.cpp tout en maintenant la précision du modèle.
Caractéristiques
-
Conception centrée sur la localité : exploite l’activation creuse et les concepts de neurones « chauds » / « froids » pour une inférence LLM efficace, garantissant une grande vitesse avec de faibles besoins en ressources.
-
Utilisation hybride CPU/GPU : intègre de manière fluide les capacités mémoire et de calcul du CPU et du GPU pour équilibrer la charge de travail et accélérer le traitement.
-
Intégration simple : compatible avec les modèles creux basés sur ReLU les plus populaires.
-
Déploiement local facilité : profondément optimisé pour un déploiement local sur du matériel grand public, permettant une inférence et un serving LLM à faible latence sur un seul GPU.
-
Rétrocompatibilité : bien que différent de llama.cpp, il permet d’utiliser la plupart des
examples/, comme le serving et la génération par lots, de la même manière que llama.cpp.
Prise en main
- Fournit des indications pour l’installation et les poids des modèles.
Configuration et installation
- Explique comment récupérer le code et le compiler.
Poids des modèles
- Les modèles PowerInfer sont stockés au format PowerInfer GGUF, qui inclut les poids du LLM et ceux du prédicteur.
- Les poids GGUF de PowerInfer peuvent être téléchargés via Hugging Face.
- Explique comment convertir les poids du modèle d’origine et ceux du prédicteur vers le format PowerInfer GGUF.
Inférence
- Fournit des instructions pour une inférence CPU seule ou une inférence hybride CPU-GPU utilisant toute la VRAM disponible.
Quantification
- Fournit la prise en charge d’une quantification optimisée pour les modèles INT4(
Q4_0) ainsi que des indications d’utilisation.
Évaluation
- PowerInfer atteint jusqu’à 11x et 8x d’accélération respectivement sur les modèles FP16 et INT4.
Foire aux questions
- Fournit une aide pour résoudre l’erreur
CUDA_ERROR_OUT_OF_MEMORYet d’autres problèmes.
Feuille de route
- Présente les plans de publication concernant le code principal de PowerInfer, le modèle Mistral-7B, la prise en charge de Windows, text-generation-webui, le code d’évaluation de la perplexité, la prise en charge de Metal sur Mac, le code pour les modèles OPT, le code d’entraînement du prédicteur, la partition en ligne du réseau FFN, la prise en charge multi-GPU, etc.
Article et citation
- Les détails techniques de PowerInfer sont disponibles dans l’article.
- Si PowerInfer vous est utile ou aide des projets et recherches associés, il est demandé de citer l’article.
Remerciements
- Remerciements à la bibliothèque d’opérateurs modifiables ggml et au runtime d’exécution de llama.cpp.
- Remerciements au soutien de THUNLP pour les modèles creux basés sur ReLU.
- Remerciements aux travaux Deja Vu qui ont inspiré PowerInfer.
Avis de GN⁺
- PowerInfer est un moteur innovant permettant une inférence rapide et efficace de grands modèles de langage à l’aide de GPU grand public.
- Grâce au concept de neurones « chauds » / « froids » et à l’utilisation hybride CPU/GPU, il économise les ressources tout en offrant des vitesses d’inférence proches de celles d’un matériel serveur.
- Cette technologie ouvre aux développeurs individuels et aux petites équipes la possibilité d’expérimenter et de déployer des modèles haute performance sans avoir accès à du matériel de niveau serveur pour la recherche et le développement en IA.
Aucun commentaire pour le moment.