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.1).
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 is also compatible with torch.compile for faster generation.

قم بتثبيت Quanto باستخدام الأمر التالي.

pip install optimum-quanto accelerate transformers

قم بتكميم نموذج من خلال إنشاء QuantoConfig وتحديد معامل weights للتكميم إليه. يعمل هذا مع أي نموذج في أي نمط ما دام يحتوي على طبقات torch.nn.Linear.

يدعم تكامل Transformers تكميم الأوزان فقط. استخدم مكتبة Quanto مباشرةً إذا كنت بحاجة إلى تكميم التنشيط، أو المعايرة، أو 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

قم بتغليف نموذج 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