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 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