Transformers documentation

Elija un método

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Elija un método

Si tu checkpoint ya está cuantizado, el checkpoint determina el método. Carga tal como se muestra en Cargar un checkpoint precuantizado. En caso contrario, elige un método en función de tu hardware y de lo que necesites hacer con el modelo después de cargarlo.

Comience desde su objetivo

Cada fila recomienda un primer método para probar. Consulta la tabla de comparación completa antes de comprometerte con uno.

ObjetivoComience conPor qué
Entrena un modelo con menos memoria y la mínima configuraciónbitsandbytesCuantiza a 4 u 8 bits durante la carga sin calibración, se ejecuta en CUDA, XPU, HPU y CPU, y admite guardar y realizar fine-tuning.
Ajuste fino con QLoRAbitsandbytesAdmite NF4 de 4 bits con PEFT. HQQ, EETQ, GPTQ, SINQ y Quanto también admiten el ajuste fino.
Acelera la inferencia con torch.compiletorchaogenerate compila automáticamente los modelos de torchao con una caché estática, y torchao cuenta con esquemas int4, int8 y FP8 para CUDA, XPU y CPU.
Obtén la mejor precisión de 4 bitsGPTQCalibra en un conjunto de datos durante la carga. Para usar AWQ o AutoRound en su lugar, cuantice con sus bibliotecas y cargue el punto de control.
Ejecutar FP8 en Ada, Hopper o Intel XPUFP8 de gran granularidadRequiere una capacidad de cómputo CUDA de 8.9 o superior, o un XPU. FBGEMM FP8 requiere una capacidad de cómputo de 9.0 o superior, o un XPU.
Ejecutar FP4 en BlackwellNVFP4Cuantiza al formato de coma flotante de 4 bits de NVIDIA durante la carga. MXFP4 se ejecuta en capacidad de cómputo 7.5 o superior, XPU y CPU.
Ejecutar en Apple siliconMetalCuantiza a 2, 4 u 8 bits en MPS durante la carga. Los archivos GGUF también se cargan en MPS.
Cargar puntos de control creados con llm-compressorcompressed-tensorsCarga puntos de control en formato compressed-tensors con FP8, int4 e int8.
Comprimir a menos de 4 bitsHQQ o SINQCuantice a 2 o 3 bits durante la carga, sin calibración. Los puntos de control de AQLM, VPTQ y SpQR permiten una cuantización más baja, pero deben cuantizarse con sus propias librerías.
Show the full comparison table
Métodoquant_methodFlujo de trabajoBitsHardwareGuardarAjuste finoCompilación automática
AQLMaqlmSolo pre-cuantizado1–2CUDA, CPU✅✅ con aqlm>=1.0.2❌
AutoRoundauto-roundSolo pre-cuantizado2–8CUDA, XPU, CPU✅❌❌
AWQawqSolo pre-cuantizado4CUDA, ROCm, XPU, CPU✅ excepto los backends de ExLlama✅ con gptqmodel>=5.0.0❌
BitNetbitnetSolo pre-cuantizado1.58CUDA✅Solo autobitlinear en modo online❌
bitsandbytesbitsandbytesDurante la carga4, 8CUDA, XPU, HPU, CPU✅✅❌
compressed-tensorscompressed-tensorsSolo pre-cuantizadoEstablecido por punto de controlCUDA, XPU, MPS, CPU✅✅ excepto con núcleos FP8✅
EETQeetqDurante la carga8CUDA✅✅❌
FBGEMM FP8fbgemm_fp8Durante la carga8CUDA (capacidad de cómputo 9.0+), XPU✅❌❌
FP8 de gran granularidadfp8, mxfp8Durante la carga8CUDA (capacidad de cómputo 8.9+), XPU✅❌✅
Four Over SixfouroversixDurante la carga4CUDA (el más rápido en Blackwell), CPU✅Solo con keep_master_weights=True❌
FP-Quantfp_quantDurante la carga4CUDA, XPU✅Solo con store_master_weights=True❌
GGUFggufSolo pre-cuantizado1–8CUDA, MPS, XPU, CPU❌❌✅
GPTQgptqDurante la carga, con calibración2, 3, 4, 8CUDA, ROCm, XPU, CPU✅✅❌
HIGGShiggsDurante la carga2, 3, 4CUDA✅❌❌
HQQhqqDurante la carga1, 2, 3, 4, 8CUDA, XPU✅✅❌
MetalmetalDurante la carga2, 4, 8MPS✅❌❌
MXFP4mxfp4Durante la carga4CUDA (capacidad de cómputo 7.5+), XPU, CPU✅❌❌
NVFP4nvfp4Durante la carga4Una GPU Blackwell❌❌✅
QuantoquantoDurante la carga2, 4, 8CUDA, MPS, XPU, CPU❌✅❌
QuarkquarkSolo pre-cuantizadoEstablecido por punto de controlCUDA, ROCm, CPU❌❌❌
SINQsinqDurante la carga2, 3, 4, 6, 8Una GPU CUDA, CPU✅✅❌
SpQRspqrSolo pre-cuantizado3CUDA✅❌❌
torchaotorchaoDurante la carga4, 8CUDA, XPU, CPU✅Solo esquemas de 8 bits✅
VPTQvptqSolo pre-cuantizado1–8CUDA✅❌❌

Comprueba la memoria con el selector de cuantización

El selector de cuantización estima si un modelo cabe en tu hardware en cada precisión, incluido el KV cache. Selecciona un modelo, tu hardware y lo que necesitas que haga el método, y la vista Compare enumerará los métodos que coinciden.

Benchmarks

Los benchmarks a continuación comparan varios métodos en Llama 3.1 8B y 70B. Informan sobre la precisión, el throughput en tokens por segundo, la memoria pico en GB y el tiempo de cuantización.

Llama 3.1 70B en bf16 se ejecutó en 2 GPUs NVIDIA A100 80GB. Los métodos FP8 se ejecutaron en 1 GPU NVIDIA H100 80GB, y todos los demás métodos se ejecutaron en 1 GPU NVIDIA A100 80GB. El throughput se midió con un batch size de 1, generando 64 tokens. Los resultados incluyen torch.compile y kernels de Marlin cuando un método los soporta.

Los resultados se agrupan en tres rangos de bits.

BitsMétodos evaluadosMemoria frente a bf16Precisión
8bitsandbytes int8, HQQ, Quanto, torchao, FP8Aproximadamente 2 veces más pequeñoMuy cercano a bf16
4AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQAproximadamente 4 veces más pequeñoAlto. AWQ y GPTQ suelen estar a la cabeza, pero requieren calibración.
Menos de 4VPTQ, AQLM, 2-bit GPTQMás de 4 veces más pequeñoCaída notable, especialmente a 2 bits. AQLM y VPTQ tardan mucho tiempo en cuantizar.

Mide la precisión y la velocidad en tu propia tarea y hardware antes de elegir un método para producción.

Update on GitHub