ExLlama
Vue d'ensemble de ExLlama
ExLlama: Implémentation de Llama à Efficacité Mémoire pour les Poids Quantifiés
ExLlama est une implémentation autonome en Python/C++/CUDA de Llama conçue pour la vitesse et l'efficacité de la mémoire lors de l'utilisation de poids GPTQ 4 bits sur les GPUs modernes. Ce projet vise à fournir une alternative plus rapide et plus économe en mémoire à l'implémentation Hugging Face Transformers, en particulier pour les utilisateurs travaillant avec des modèles quantifiés.
Qu'est-ce que ExLlama ?
ExLlama est conçu pour être un moteur d'inférence haute performance pour la famille de modèles de langage Llama. Il exploite CUDA pour l'accélération GPU et est optimisé pour les poids quantifiés GPTQ 4 bits, permettant aux utilisateurs d'exécuter de grands modèles de langage sur des GPUs avec une mémoire limitée.
Comment fonctionne ExLlama ?
ExLlama optimise l'utilisation de la mémoire et la vitesse d'inférence grâce à plusieurs techniques :
- Implémentation CUDA: Utilise CUDA pour un calcul GPU efficace.
- Support de la quantification: Spécifiquement conçu pour les poids quantifiés GPTQ 4 bits.
- Efficacité de la mémoire: Réduit l'empreinte mémoire par rapport aux implémentations standard.
Principales caractéristiques et avantages:
- Haute performance: Optimisé pour une inférence rapide.
- Efficacité de la mémoire: Permet d'exécuter de grands modèles sur des GPUs moins puissants.
- Implémentation autonome: Pas besoin de la bibliothèque Hugging Face Transformers.
- Interface utilisateur web: Inclut une interface utilisateur web simple pour une interaction facile avec le modèle (JavaScript écrit par ChatGPT, alors méfiez-vous !).
- Support Docker: Peut être exécuté dans un conteneur Docker pour un déploiement et une sécurité plus faciles.
Comment utiliser ExLlama ?
Installation:
- Cloner le dépôt :
git clone https://github.com/turboderp/exllama - Naviguer vers le répertoire :
cd exllama - Installer les dépendances :
pip install -r requirements.txt
- Cloner le dépôt :
Exécution du benchmark:
python test_benchmark_inference.py -d <path_to_model_files> -p -ppl
Exécution de l'exemple de chatbot:
python example_chatbot.py -d <path_to_model_files> -un "Jeff" -p prompt_chatbort.txt
Interface utilisateur web:
- Installer les dépendances supplémentaires :
pip install -r requirements-web.txt - Exécuter l'interface utilisateur web :
python webui/app.py -d <path_to_model_files>
- Installer les dépendances supplémentaires :
Pourquoi choisir ExLlama ?
ExLlama offre plusieurs avantages :
- Performance: Offre des vitesses d'inférence plus rapides par rapport à d'autres implémentations.
- Accessibilité: Permet aux utilisateurs disposant d'une mémoire GPU limitée d'exécuter de grands modèles de langage.
- Flexibilité: Peut être intégré à d'autres projets via le module Python.
- Facilité d'utilisation: Fournit une interface utilisateur web simple pour interagir avec le modèle.
À qui s'adresse ExLlama ?
ExLlama convient à :
- Les chercheurs et développeurs travaillant avec de grands modèles de langage.
- Les utilisateurs disposant de GPUs NVIDIA (série 30 et ultérieures recommandées).
- Ceux qui recherchent une solution d'inférence haute performance et économe en mémoire.
- Toute personne intéressée par l'exécution de modèles Llama avec une quantification GPTQ 4 bits.
Configuration matérielle requise:
- GPUs NVIDIA (RTX série 30 ou ultérieure recommandée)
- Le support ROCm est théorique mais non testé
Dépendances:
- Python 3.9+
- PyTorch (testé sur 2.0.1 et 2.1.0 nightly) avec CUDA 11.8
- safetensors 0.3.2
- sentencepiece
- ninja
- flask et waitress (pour l'interface utilisateur web)
Support Docker:
ExLlama peut être exécuté dans un conteneur Docker pour faciliter le déploiement et la sécurité. L'image Docker prend en charge les GPUs NVIDIA.
Résultats et benchmarks:
ExLlama démontre des améliorations significatives des performances par rapport à d'autres implémentations, en particulier en termes de tokens par seconde (t/s) pendant l'inférence. Des benchmarks sont fournis pour différentes tailles de modèle Llama (7B, 13B, 33B, 65B, 70B) sur différentes configurations GPU.
Exemple d'utilisation
import torch
from exllama.model import ExLlama, ExLlamaCache, ExLlamaConfig
from exllama.tokenizer import ExLlamaTokenizer
## Initialiser le modèle et le tokenizer
model_directory = "/path/to/your/model"
tokenizer_path = os.path.join(model_directory, "tokenizer.model")
model_config_path = os.path.join(model_directory, "config.json")
config = ExLlamaConfig(model_config_path)
config.model_path = os.path.join(model_directory, "model.safetensors")
tokenizer = ExLlamaTokenizer(tokenizer_path)
model = ExLlama(config)
cache = ExLlamaCache(model)
## Préparer l'entrée
prompt = "The quick brown fox jumps over the lazy"
input_ids = tokenizer.encode(prompt)
## Générer la sortie
model.forward(input_ids, cache)
token = model.sample(temperature = 0.7, top_k = 50, top_p = 0.7)
output = tokenizer.decode([token])
print(prompt + output)
Compatibilité et support des modèles:
ExLlama est compatible avec une gamme de modèles Llama, y compris Llama 1 et Llama 2. Le projet est continuellement mis à jour pour prendre en charge de nouveaux modèles et fonctionnalités.
ExLlama est un outil puissant pour quiconque cherche à exécuter efficacement des modèles Llama. Son accent sur l'optimisation de la mémoire et la vitesse en fait un excellent choix tant pour la recherche que pour les applications pratiques.
Meilleurs outils alternatifs à "ExLlama"
Float16.cloud offre des GPU sans serveur pour le développement de l'IA. Déployez instantanément des modèles sur des GPU H100 avec une tarification à l'utilisation. Idéal pour les LLM, le réglage fin et la formation.
Friendli Inference est le moteur d'inférence LLM le plus rapide, optimisé pour la vitesse et la rentabilité, réduisant les coûts GPU de 50 à 90 % tout en offrant un débit élevé et une faible latence.
Activez l'inférence LLM efficace avec llama.cpp, une bibliothèque C/C++ optimisée pour divers matériels, prenant en charge la quantification, CUDA et les modèles GGUF. Idéal pour un déploiement local et cloud.
Construisez un moteur de réponses IA inspiré de Perplexity en utilisant Next.js, Groq, Llama-3 et Langchain. Obtenez des sources, des réponses, des images et des questions de suivi efficacement.
vLLM est un moteur d'inférence et de service à haut débit et à faible consommation de mémoire pour les LLM, doté de PagedAttention et d'un traitement par lots continu pour des performances optimisées.
Le service d'inférence Nebius AI Studio propose des modèles open source hébergés pour des résultats plus rapides, moins chers et plus précis que les API propriétaires. Évoluez sans MLOps, idéal pour RAG et les charges de production.
ChatLLaMA est un assistant IA entraîné avec LoRA basé sur les modèles LLaMA, permettant des conversations personnalisées sur votre GPU local. Inclut une interface graphique de bureau, entraîné sur le dataset HH d'Anthropic, disponible pour les modèles 7B, 13B et 30B.
xTuring est une bibliothèque open source qui permet aux utilisateurs de personnaliser et d'ajuster finement les Modèles de Langage Large (LLMs) de manière efficace, en se concentrant sur la simplicité, l'optimisation des ressources et la flexibilité pour la personnalisation de l'IA.
Inweave est une plateforme alimentée par l'IA conçue pour les startups et les scaleups afin d'automatiser efficacement les flux de travail. Déployez des assistants IA personnalisables en utilisant des modèles de pointe comme GPT et Llama via chat ou API pour des gains de productivité fluides.
Sagify est un outil Python open-source qui rationalise les pipelines d'apprentissage automatique sur AWS SageMaker, offrant une passerelle LLM unifiée pour intégrer de manière transparente les modèles de langage large propriétaires et open-source.
LlamaChat est une application macOS qui vous permet de discuter avec les modèles LLaMA, Alpaca et GPT4All localement sur votre Mac. Téléchargez-la maintenant et découvrez le chat LLM local !
Exécutez instantanément n'importe quel modèle Llama depuis HuggingFace sans configurer de serveurs. Plus de 11 900 modèles disponibles. À partir de 10 $/mois pour un accès illimité.
Wisent utilise l'ingénierie de la représentation pour vous donner un contrôle sans précédent sur les capacités de l'IA, améliorant les performances et réduisant les hallucinations dans les grands modèles linguistiques.
Fireworks AI offre une inférence ultra-rapide pour l'IA générative à l'aide de modèles open source de pointe. Affinez et déployez vos propres modèles sans frais supplémentaires. Faites évoluer les charges de travail d'IA à l'échelle mondiale.