Transformers documentation

Escolha um 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

Escolha um método

Se o seu checkpoint já estiver quantizado, o checkpoint determina o método. Carregue-o conforme mostrado em Carregar um checkpoint pré-quantizado. Caso contrário, escolha um método com base no seu hardware e no que você precisa fazer com o modelo após carregá-lo.

Comece pelo seu objetivo

Cada linha recomenda um primeiro método para tentar. Consulte a tabela de comparação completa antes de se comprometer com um.

ObjetivoComece comPor quê
Treine um modelo com menos memória e a configuração mínimabitsandbytesQuantiza para 4 ou 8 bits durante o carregamento, sem calibração, executa em CUDA, XPU, HPU e CPU, e suporta salvamento e ajuste fino.
Ajuste fino com QLoRAbitsandbytesSuporta 4-bit NF4 com PEFT. HQQ, EETQ, GPTQ, SINQ e Quanto também suportam fine-tuning.
Acelere a inferência com torch.compiletorchaogenerate compila modelos torchao automaticamente com um cache estático, e o torchao possui esquemas int4, int8 e FP8 para CUDA, XPU e CPU.
Obtenha a melhor precisão de 4 bitsGPTQCalibra em um conjunto de dados durante o carregamento. Para usar AWQ ou AutoRound em vez disso, quantize com as respectivas bibliotecas e carregue o checkpoint.
Execute FP8 em Ada, Hopper ou Intel XPUFP8 de granularidade finaExige capacidade de computação CUDA 8.9 ou superior, ou um XPU. FBGEMM FP8 exige capacidade de computação 9.0 ou superior, ou um XPU.
Executar FP4 no BlackwellNVFP4Quantiza para o formato de ponto flutuante de 4 bits da NVIDIA durante o carregamento. MXFP4 é executado em capacidade de computação 7.5 ou superior, XPU e CPU.
Executar em Apple siliconMetalQuantiza para 2, 4 ou 8 bits no MPS durante o carregamento. Arquivos GGUF também são carregados no MPS.
Carregar checkpoints criados com llm-compressorcompressed-tensorsCarrega checkpoints FP8, int4 e int8 no formato compressed-tensors.
Comprimir abaixo de 4 bitsHQQ ou SINQQuantize para 2 ou 3 bits durante o carregamento, sem calibração. Os checkpoints de AQLM, VPTQ e SpQR alcançam valores ainda menores, mas precisam ser quantizados com suas próprias bibliotecas.
Show the full comparison table
Métodoquant_methodFluxo de trabalhoBitsHardwareSalvarAjuste finoCompilação automática
AQLMaqlmSomente pré-quantizado1–2CUDA, CPU✅✅ com aqlm>=1.0.2❌
AutoRoundauto-roundSomente pré-quantizado2–8CUDA, XPU, CPU✅❌❌
AWQawqSomente pré-quantizado4CUDA, ROCm, XPU, CPU✅ exceto os backends ExLlama✅ com gptqmodel>=5.0.0❌
BitNetbitnetSomente pré-quantizado1.58CUDA✅Apenas autobitlinear no modo online❌
bitsandbytesbitsandbytesDurante o carregamento4, 8CUDA, XPU, HPU, CPU✅✅❌
compressed-tensorscompressed-tensorsSomente pré-quantizadoDefinido por checkpointCUDA, XPU, MPS, CPU✅✅ exceto com kernels FP8✅
EETQeetqDurante o carregamento8CUDA✅✅❌
FBGEMM FP8fbgemm_fp8Durante o carregamento8CUDA (capacidade de computação 9.0+), XPU✅❌❌
FP8 de granularidade finafp8, mxfp8Durante o carregamento8CUDA (capacidade de computação 8.9+), XPU✅❌✅
Quatro sobre seisfouroversixDurante o carregamento4CUDA (mais rápido no Blackwell), CPU✅Somente com keep_master_weights=True❌
FP-Quantfp_quantDurante o carregamento4CUDA, XPU✅Somente com store_master_weights=True❌
GGUFggufSomente pré-quantizado1–8CUDA, MPS, XPU, CPU❌❌✅
GPTQgptqDurante o carregamento, com calibração2, 3, 4, 8CUDA, ROCm, XPU, CPU✅✅❌
HIGGShiggsDurante o carregamento2, 3, 4CUDA✅❌❌
HQQhqqDurante o carregamento1, 2, 3, 4, 8CUDA, XPU✅✅❌
MetalmetalDurante o carregamento2, 4, 8MPS✅❌❌
MXFP4mxfp4Durante o carregamento4CUDA (capacidade de computação 7.5+), XPU, CPU✅❌❌
NVFP4nvfp4Durante o carregamento4Uma GPU Blackwell❌❌✅
QuantoquantoDurante o carregamento2, 4, 8CUDA, MPS, XPU, CPU❌✅❌
QuarkquarkSomente pré-quantizadoDefinido por checkpointCUDA, ROCm, CPU❌❌❌
SINQsinqDurante o carregamento2, 3, 4, 6, 8Uma GPU CUDA, CPU✅✅❌
SpQRspqrSomente pré-quantizado3CUDA✅❌❌
torchaotorchaoDurante o carregamento4, 8CUDA, XPU, CPU✅Somente esquemas de 8 bits✅
VPTQvptqSomente pré-quantizado1–8CUDA✅❌❌

Verifique a memória com o seletor de quantização

O seletor de quantização estima se um modelo cabe no seu hardware em cada precisão, incluindo o cache de KV. Escolha um modelo, o seu hardware e o que você precisa que o método faça, e a visão Comparar lista os métodos que correspondem.

Benchmarks

Os benchmarks abaixo comparam vários métodos em Llama 3.1 8B e 70B. Eles relatam a precisão, o throughput em tokens por segundo, a memória de pico em GB e o tempo de quantização.

O Llama 3.1 70B em bf16 foi executado em 2 GPUs NVIDIA A100 80GB. Os métodos FP8 foram executados em 1 GPU NVIDIA H100 80GB, e todos os outros métodos foram executados em 1 GPU NVIDIA A100 80GB. O throughput foi medido com batch size 1, gerando 64 tokens. Os resultados incluem torch.compile e kernels Marlin quando um método os suporta.

Os resultados se agrupam em três faixas de bits.

BitsMétodos benchmarkedMemória vs. bf16Precisão
8bitsandbytes int8, HQQ, Quanto, torchao, FP8Aproximadamente 2x menorMuito próximo de bf16
4AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQAproximadamente 4x menorAlto. AWQ e GPTQ frequentemente lideram, mas exigem calibração.
Abaixo de 4VPTQ, AQLM, 2-bit GPTQMais de 4x menorQueda perceptível, especialmente em 2 bits. AQLM e VPTQ levam muito tempo para quantizar.

Meça a precisão e a velocidade em sua própria tarefa e hardware antes de escolher um método para produção.

Update on GitHub