Transformers documentation

AutoRound

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

and get access to the augmented documentation experience

to get started

AutoRound

AutoRound é um algoritmo avançado de quantização que oferece alta precisão, mesmo em 2 bits. Ele utiliza descida de gradiente de sinal para ajustar finamente tanto os valores de arredondamento quanto os limites de corte min-max em apenas 200 passos. Projetado para ampla compatibilidade, ele suporta de forma transparente uma ampla variedade de LLMs e está em expansão ativa para cobrir também mais VLMs. Ele também suporta quantização e inferência em várias plataformas de hardware, incluindo CPU, XPU e CUDA.

O AutoRound também oferece uma variedade de recursos úteis, incluindo ajuste e inferência com bits mistos automáticos, suporte para os tipos de dados MXFP4 e NVFP4, quantização sem modelo, exportação para formatos como GPTQ, AWQ, GGUF e LLM-Compressor, e receitas de ajuste flexíveis. Para uma visão abrangente e as atualizações mais recentes, consulte o README do AutoRound.

O AutoRound foi originalmente desenvolvido como parte do Intel Neural Compressor, servindo como uma biblioteca de compressão de modelos de uso geral para deep learning. Desde então, evoluiu para uma biblioteca independente, focada especificamente em otimização de baixa precisão para grandes modelos de linguagem (LLMs). O AutoRound permanece totalmente integrado ao Intel Neural Compressor, e você pode explorar o repositório para mais detalhes.

Instalação

pip install auto-round

Configurações de Quantização Suportadas

O AutoRound suporta as seguintes configurações de quantização:

  1. Pesos apenas INT2–INT8
  2. Pesos Somente em Bits Mistos
  3. GGUF Q*_K
  4. MXFP (suporte limitado)
  5. NVFP4 (suporte limitado)

Compatibilidade de Hardware

CPU, XPU e CUDA para quantização e inferência.

Quantização e Serialização (offline)

Atualmente, apenas o modo offline é suportado para gerar modelos quantizados.

quantização cmd
auto scheme cmd
combinações de alg
quantização auto-round api
quantization auto-round-best
quantização auto-round-light

Uso da Linha de Comando

auto-round \
    --model Qwen/Qwen3-0.6B \
    --scheme "W4A16" \
    --group_size 128 \
    --output_dir ./tmp_autoround

O AutoRound também oferece outras quatro receitas, auto-round-best, auto-round-light,auto-round-opt-rtn,auto-round-rtn, projetadas para precisão ótima e velocidade aprimorada, respectivamente. Para 2 bits, recomendamos usar auto-round-best com --enable_alg_ext.

Média de precisão do W4G128 em 13 tarefas (mmlu-pro, if_eval, gsm8k, etc.) e resultados de custo de tempo (os testes foram realizados em uma Nvidia A100 80G usando a versão 2.6.0 do PyTorch com enable_torch_compile):

ModelQwen2.5-0.5B-InstructFalcon3-3BQwen2.5-7B-InstructMeta-Llama-3.1-8B-InstructFalcon3-10BQwen2.5-72B-Instruct
16bits0.41920.52030.64700.62120.61510.7229
Melhor0.4137(7m)0.5142(23m)0.6426(58m)0.6116(65m)0.6092(81m)0.7242(575m)
Padrão0.4129(2m)0.5133(6m)0.6441(13m)0.6106(13m)0.6080(18m)0.7252(118m)
Leve0.4052(2m)0.5108(3m)0.6453(5m)0.6104(6m)0.6063(6m)0.7243(37m)

Inferência

O AutoRound seleciona automaticamente o melhor backend disponível com base nas bibliotecas instaladas e solicita ao usuário a instalação de bibliotecas adicionais quando um backend melhor é encontrado.

inferência cpu
inference xpu
inference cuda
backend de inferência
converter formato

CPU

Suporta 2, 4 e 8 bits. Recomendamos usar o backend AutoRound Kernel (ARK) para inferência. É necessário PyTorch 2.8.0 ou posterior com o ARK.

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "OPEA/Qwen2.5-1.5B-Instruct-int4-sym-inc"
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="cpu", dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
text = "There is a girl who likes adventure,"
inputs = tokenizer(text, return_tensors="pt").to(model.device)
print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50, do_sample=False)[0]))

Problemas

Se você encontrar algum problema com a integração do transformers, abra uma issue no repositório transformers.
Se você encontrar algum problema com o auto-round, abra uma issue no repositório AutoRound.

Agradecimentos

Agradecimentos especiais às bibliotecas de código aberto de baixa precisão, como AutoGPTQ, AutoAWQ, GPTQModel, Triton, Marlin e ExLLaMAV2, por fornecerem kernels CUDA de baixa precisão, que são utilizados no AutoRound.

Contribuição

Contribuições para o AutoRound são bem-vindas e muito apreciadas! Seja corrigindo bugs, melhorando a documentação, adicionando novos recursos ou sugerindo melhorias, sua ajuda é sempre valorizada.

Update on GitHub