Transformers documentation
Optimum Quanto
Optimum Quanto
Quanto es un backend de cuantización de PyTorch para Optimum. Ofrece cuantización lineal de pesos (float8, int8, int4, int2) con una precisión muy similar a la de los modelos de precisión completa. Quanto es compatible con cualquier modalidad de modelo y dispositivo, lo que lo hace fácil de usar independientemente del hardware.
Quanto también es compatible con torch.compile para una generación más rápida.
Instala Quanto con el siguiente comando.
pip install optimum-quanto accelerate transformers
Cuantice un modelo creando un QuantoConfig y especificando el parámetro weights para cuantizar. Esto funciona con cualquier modelo de cualquier modalidad, siempre que contenga capas torch.nn.Linear.
La integración de Transformers solo admite la cuantización de pesos. Utilice la librería Quanto directamente si necesita cuantización de activaciones, calibración o 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
Envuelve un modelo Quanto con torch.compile para una generación más 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
Lee la publicación del blog Quanto: a PyTorch quantization backend for Optimum para conocer más sobre el diseño de la biblioteca y los resultados de las pruebas de rendimiento.
Para más ejemplos prácticos, echa un vistazo al cuaderno de Quanto.
Update on GitHub