Un outil pour télécharger et convertir des modèles HuggingFace sans drame.
Si vous utilisez une machine dotée d'un GPU NVIDIA/CUDA et que vous souhaitez la prise en charge d'AWQ/GPTQ :
pip3 install llm-quantkit[cuda]
Sinon, l'installation par défaut fonctionne.
pip3 install llm-quantkit
Si vous avez besoin d'une torche spécifique à un appareil, installez-la d'abord.
Ce projet dépend des bibliothèques torch, awq, exl2, gptq et hqq.
Certaines de ces dépendances ne prennent pas encore en charge Python 3.12.
Pythons pris en charge : 3.8, 3.9, 3.10 et 3.11
Usage: quantkit [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
download Download model from huggingface.
safetensor Download and/or convert a pytorch model to safetensor format.
awq Download and/or convert a model to AWQ format.
exl2 Download and/or convert a model to EXL2 format.
gguf Download and/or convert a model to GGUF format.
gptq Download and/or convert a model to GPTQ format.
hqq Download and/or convert a model to HQQ format.
Le premier argument après la commande doit être un identifiant de dépôt HF (mistralai/Mistral-7B-v0.1) ou un répertoire local contenant déjà des fichiers de modèle.
La commande download télécharge par défaut dans le cache HF et produit des liens symboliques dans le répertoire de sortie, mais il existe une option --no-cache qui place les fichiers de modèle dans le répertoire de sortie.
AWQ est par défaut de 4 bits, taille de groupe 128, point zéro True.
Les valeurs par défaut de GPTQ sont 4 bits, taille de groupe 128, ordre d'activation False.
EXL2 a par défaut 8 bits de tête mais il n'y a pas de débit binaire par défaut.
GGUF est par défaut sans imatrice mais il n'y a pas de type quant par défaut.
HQQ est par défaut de 4 bits, taille de groupe 64, zero_point=True.
Téléchargez un modèle depuis HF et n'utilisez pas le cache HF :
quantkit download teknium/Hermes-Trismegistus-Mistral-7B --no-cache
Téléchargez uniquement la version safetensors d'un modèle (utile pour les modèles équipés d'une torche et d'un safetensor) :
quantkit download mistralai/Mistral-7B-v0.1 --no-cache --safetensors-only -out mistral7b
Télécharger à partir d'une révision spécifique d'un dépôt huggingface :
uantkit download turboderp/TinyLlama-1B-32k-exl2 --branch 6.0bpw --no-cache -out TinyLlama-1B-32k-exl2-b6
Téléchargez et convertissez un modèle en safetensor, en supprimant les bacs pytorch d'origine :
quantkit safetensor migtissera/Tess-10.7B-v1.5b --delete-original
Téléchargez et convertissez un modèle en GGUF (Q5_K) :
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-Q5_K.gguf Q5_K
Téléchargez et convertissez un modèle en GGUF à l'aide d'une imatrice, en déchargeant 200 couches :
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-IQ4_XS.gguf IQ4_XS --built-in-imatrix -ngl 200
Téléchargez et convertissez un modèle en AWQ :
quantkit awq mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-AWQ
Convertir un modèle en GPTQ (4 bits / taille de groupe 32) :
quantkit gptq mistral7b -out Mistral-7B-v0.1-GPTQ -b 4 --group-size 32
Convertir un modèle en exllamav2 :
quantkit exl2 mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-exl2-b8-h8 -b 8 -hb 8
Convertir un modèle en HQQ :
quantkit hqq mistralai/Mistral-7B-v0.1 -out Mistral-7B-HQQ-w4-gs64
Voici ce qui a fonctionné pour moi lors des tests. Déposez un PR ou un problème avec des mises à jour sur ce qui est possible sur des cartes de différentes tailles.
La conversion GGUF ne nécessite pas de GPU, sauf pour iMatrix et Exllamav2 nécessite que la plus grande couche tienne sur un seul GPU.
Taille du modèle | Quant | VRAM | Réussi |
---|---|---|---|
7B | AWQ | 24 Go | ✅ |
7B | EXXL2 | 24 Go | ✅ |
7B | GGUF | 24 Go | ✅ |
7B | GPTQ | 24 Go | ✅ |
7B | QG | 24 Go | ✅ |
13B | AWQ | 24 Go | ✅ |
13B | EXXL2 | 24 Go | ✅ |
13B | GGUF | 24 Go | ✅ |
13B | GPTQ | 24 Go | |
13B | QG | 24 Go | ? |
34B | AWQ | 24 Go | |
34B | EXXL2 | 24 Go | ✅ |
34B | GGUF | 24 Go | ✅ |
34B | GPTQ | 24 Go | |
34B | QG | 24 Go | ? |
70B | AWQ | 24 Go | |
70B | EXXL2 | 24 Go | ✅ |
70B | GGUF | 24 Go | ✅ |
70B | GPTQ | 24 Go | |
70B | QG | 24 Go | ? |
Toujours en version bêta. Le déchargement de Llama.cpp ne fonctionnera probablement pas sur votre plate-forme à moins que vous ne désinstalliez llama-cpp-conv et que vous ne le réinstalliez avec les indicateurs de construction appropriés. Consultez la documentation llama-cpp-python et suivez la commande appropriée mais remplacez llama-cpp-python par lama-cpp-conv.