Transformers documentation
Optimum Quanto
Optimum Quanto
Quanto est un backend de quantification PyTorch pour Optimum. Il propose une quantification linéaire des poids (float8, int8, int4, int2) avec une précision très proche de celle des modèles en pleine précision. Quanto est compatible avec toute modalité de modèle et tout type d'appareil, ce qui en simplifie l'utilisation quel que soit le matériel.
Quanto est également compatible avec torch.compile pour une génération plus rapide.
Installez Quanto à l'aide de la commande suivante.
pip install optimum-quanto accelerate transformers
Quantifiez un modèle en créant un QuantoConfig et en spécifiant le paramètre weights pour définir la cible de quantification. Cette méthode fonctionne pour tout modèle de toute modalité, à condition qu'il contienne des couches torch.nn.Linear.
L'intégration Transformers ne prend en charge que la quantification des poids. Utilisez directement la bibliothèque Quanto si vous avez besoin de quantification des activations, de calibration ou de 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
Envelopper un modèle Quanto avec torch.compile pour une génération plus rapide.
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)Ressources
Lisez le billet de blog Quanto: a PyTorch quantization backend for Optimum pour en savoir plus sur la conception de la bibliothèque et les benchmarks.
Pour plus d'exemples pratiques, consultez le notebook de Quanto.
Update on GitHub