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 — это бэкенд квантования для PyTorch в составе Optimum. Он поддерживает линейное квантование весов (float8, int8, int4, int2) с точностью, очень близкой к моделям с полной точностью. Quanto совместим с любыми модальностями моделей и устройствами, что делает его простым в использовании независимо от аппаратного обеспечения.

Quanto также совместим с torch.compile для более быстрой генерации.

Установите Quanto с помощью следующей команды.

pip install optimum-quanto accelerate transformers

Квантуйте модель, создав QuantoConfig и указав параметр weights для квантования. Это работает для любой модели в любой модальности, если она содержит слои torch.nn.Linear.

Интеграция с Transformers поддерживает только квантование весов. Если вам необходимо квантование активаций, калибровка или QAT, используйте библиотеку Quanto напрямую.

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

Оберните модель Quanto в torch.compile для ускорения генерации.

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)

Ресурсы

Ознакомьтесь с публикацией Quanto: a PyTorch quantization backend for Optimum, чтобы узнать больше о проектировании библиотеки и результатах бенчмарков.

Для более практических примеров обратитесь к ноутбуку Quanto.

Update on GitHub