Transformers documentation
Optimum Quanto
Optimum Quanto
Quanto, Optimum için bir PyTorch kuantizasyon arka ucudur. Ağırlıklar için doğrusal kuantizasyon (float8, int8, int4, int2) sunar ve tam hassasiyetli modellerle çok benzer bir doğruluk sağlar. Quanto, herhangi bir model modalitesi ve cihazla uyumlu olduğundan, donanım ne olursa olsun kullanımı kolaydır.
Quanto, daha hızlı üretim için torch.compile ile de uyumludur.
Quanto'yu aşağıdaki komutla yükleyin.
pip install optimum-quanto accelerate transformers
Bir QuantoConfig oluşturarak ve weights parametresini belirleyerek modeli kuantize edin. Bu, model torch.nn.Linear katmanları içerdiği sürece herhangi bir modalitedeki herhangi bir model için geçerlidir.
Transformers entegrasyonu yalnızca ağırlık kuantizasyonunu destekler. Aktivasyon kuantizasyonu, kalibrasyon veya QAT gerekiyorsa Quanto kütüphanesini doğrudan kullanın.
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
Daha hızlı üretim için bir Quanto modelini torch.compile ile sarmalayın.
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)Kaynaklar
Kütüphane tasarımı ve ölçümler hakkında daha fazla bilgi edinmek için Quanto: a PyTorch quantization backend for Optimum blog yazısını okuyun.
Daha uygulamalı örnekler için Quanto defterine göz atın.
Update on GitHub