Transformers documentation

Optimum Quanto

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

Optimum Quanto

Quanto é um backend de quantização do PyTorch para o Optimum. Ele oferece quantização linear para pesos (float8, int8, int4, int2) com precisão muito semelhante à de modelos em precisão completa. O Quanto é compatível com qualquer modalidade de modelo e dispositivo, o que o torna simples de usar independentemente do hardware.

Quanto também é compatível com torch.compile para uma geração mais rápida.

Instale o Quanto com o seguinte comando.

pip install optimum-quanto accelerate transformers

Quantize um modelo criando um QuantoConfig e especificando o parâmetro weights para quantizar. Isso funciona para qualquer modelo em qualquer modalidade, desde que contenha camadas torch.nn.Linear.

A integração com o Transformers suporta apenas a quantização de pesos. Use a biblioteca Quanto diretamente se precisar de quantização de ativação, calibração ou QAT.

from transformers import AutoModelForCausalLM, AutoTokenizer, QuantoConfig

quant_config = QuantoConfig(weights="int8")
model = transformers.AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B", 
    dtype="auto", 
    device_map="auto", 
    quantization_config=quant_config
)

torch.compile

Envolva um modelo Quanto com torch.compile para uma geração mais rápida.

import torch
from transformers import AutoModelForSpeechSeq2Seq, QuantoConfig

quant_config = QuantoConfig(weights="int8")
model = AutoModelForSpeechSeq2Seq.from_pretrained(
  "openai/whisper-large-v2",
  dtype="auto",
  device_map="auto",
  quantization_config=quant_config
)

model = torch.compile(model)

Recursos

Leia o post no blog Quanto: um backend de quantização do PyTorch para o Optimum para saber mais sobre o design da biblioteca e os benchmarks.

Para mais exemplos práticos, confira o notebook do Quanto.

Update on GitHub