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