Transformers documentation
Optimum Quanto
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