Una herramienta para descargar y convertir modelos de HuggingFace sin problemas.
Si está en una máquina con una GPU NVIDIA/CUDA y desea compatibilidad con AWQ/GPTQ:
pip3 install llm-quantkit[cuda]
De lo contrario, la instalación predeterminada funciona.
pip3 install llm-quantkit
Si necesita una linterna específica para su dispositivo, instálela primero.
Este proyecto depende de las bibliotecas torch, awq, exl2, gptq y hqq.
Algunas de estas dependencias aún no son compatibles con Python 3.12.
Pythons compatibles: 3.8, 3.9, 3.10 y 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.
El primer argumento después del comando debe ser un ID de repositorio HF (mistralai/Mistral-7B-v0.1) o un directorio local que ya contenga archivos de modelo.
El comando de descarga por defecto descarga en el caché HF y produce enlaces simbólicos en el directorio de salida, pero hay una opción --no-cache que coloca los archivos del modelo en el directorio de salida.
AWQ tiene por defecto 4 bits, tamaño de grupo 128, punto cero Verdadero.
Los valores predeterminados de GPTQ son 4 bits, tamaño de grupo 128, orden de activación Falso.
EXL2 tiene por defecto 8 bits de cabeza, pero no hay una tasa de bits predeterminada.
Por defecto, GGUF no tiene imatrix, pero no hay ningún tipo de cuanto predeterminado.
HQQ tiene por defecto 4 bits, tamaño de grupo 64, zero_point=True.
Descargue un modelo de HF y no use caché de HF:
quantkit download teknium/Hermes-Trismegistus-Mistral-7B --no-cache
Descargar únicamente la versión de tensores de seguridad de un modelo (útil para modelos que tienen antorcha y tensor de seguridad):
quantkit download mistralai/Mistral-7B-v0.1 --no-cache --safetensors-only -out mistral7b
Descarga desde una revisión específica de un repositorio de huggingface:
uantkit download turboderp/TinyLlama-1B-32k-exl2 --branch 6.0bpw --no-cache -out TinyLlama-1B-32k-exl2-b6
Descargue y convierta un modelo a safetensor, eliminando los contenedores de pytorch originales:
quantkit safetensor migtissera/Tess-10.7B-v1.5b --delete-original
Descargue y convierta un modelo a GGUF (Q5_K):
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-Q5_K.gguf Q5_K
Descargue y convierta un modelo a GGUF usando un imatrix, descargando 200 capas:
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-IQ4_XS.gguf IQ4_XS --built-in-imatrix -ngl 200
Descargue y convierta un modelo a AWQ:
quantkit awq mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-AWQ
Convierta un modelo a GPTQ (4 bits/tamaño de grupo 32):
quantkit gptq mistral7b -out Mistral-7B-v0.1-GPTQ -b 4 --group-size 32
Convertir un modelo a exllamav2:
quantkit exl2 mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-exl2-b8-h8 -b 8 -hb 8
Convertir un modelo a HQQ:
quantkit hqq mistralai/Mistral-7B-v0.1 -out Mistral-7B-HQQ-w4-gs64
Esto es lo que me ha funcionado en las pruebas. Envíe un PR o un problema con actualizaciones sobre lo que es posible en tarjetas de varios tamaños.
La conversión GGUF no necesita una GPU, excepto iMatrix y Exllamav2, requiere que la capa más grande quepa en una sola GPU.
Tamaño del modelo | cuantitativo | VRAM | Exitoso |
---|---|---|---|
7B | AWQ | 24GB | ✅ |
7B | EXL2 | 24GB | ✅ |
7B | GGUF | 24GB | ✅ |
7B | GPTQ | 24GB | ✅ |
7B | Sede | 24GB | ✅ |
13B | AWQ | 24GB | ✅ |
13B | EXL2 | 24GB | ✅ |
13B | GGUF | 24GB | ✅ |
13B | GPTQ | 24GB | |
13B | Sede | 24GB | ? |
34B | AWQ | 24GB | |
34B | EXL2 | 24GB | ✅ |
34B | GGUF | 24GB | ✅ |
34B | GPTQ | 24GB | |
34B | Sede | 24GB | ? |
70B | AWQ | 24GB | |
70B | EXL2 | 24GB | ✅ |
70B | GGUF | 24GB | ✅ |
70B | GPTQ | 24GB | |
70B | Sede | 24GB | ? |
Todavía en fase beta. La descarga de Llama.cpp probablemente no funcionará en su plataforma a menos que desinstale llama-cpp-conv y lo reinstale con los indicadores de compilación adecuados. Mire la documentación de llama-cpp-python y siga el comando correspondiente, pero reemplace llama-cpp-python con llama-cpp-conv.