Transformers documentation

AutoRound

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

AutoRound

AutoRound هو خوارزمية تكميم متقدمة توفر دقة عالية حتى عند دقة 2 بت. يستفيد من هبوط التدرج الموقّع لضبط قيم التقريب وحدود القص الدنيا والعليا في 200 خطوة فقط. صُمم لضمان توافق واسع، ويدعم بسلاسة مجموعة كبيرة من نماذج LLM، وهو يتوسع بنشاط ليشمل المزيد من نماذج VLM أيضًا. كما يدعم التكميم والاستدلال عبر منصات أجهزة متعددة، بما في ذلك CPU وXPU وCUDA.

يوفر AutoRound أيضاً مجموعة متنوعة من الميزات المفيدة، بما في ذلك الضبط والاستدلال التلقائيان بتعدد البتات، ودعم أنواع البيانات MXFP4 وNVFP4، والكمّية بدون نموذج، والتصدير إلى صيغ مثل GPTQ وAWQ وGGUF وLLM-Compressor، بالإضافة إلى وصفات ضبط مرنة. لمنظور شامل وآخر التحديثات، اطّلع على README الخاص بـ AutoRound.

طُوِّر AutoRound في الأصل كجزء من Intel Neural Compressor، حيث كان يعمل كمكتبة عامة لضغط النماذج في التعلم العميق. ومنذ ذلك الحين، تطوّر ليصبح مكتبة مستقلة تركز بشكل محدد على تحسين الدقة المنخفضة لنماذج اللغة الكبيرة (LLMs). ولا يزال AutoRound مدمجًا بالكامل مع Intel Neural Compressor، ويمكنك استكشاف المستودع لمزيد من التفاصيل.

التثبيت

pip install auto-round

إعدادات التكميم المدعومة

يدعم AutoRound تهيئة التكميم التالية:

  1. وزن فقط INT2–INT8
  2. أوزان فقط بتعدد البتات
  3. GGUF Q*_K
  4. MXFP (دعم محدود)
  5. NVFP4 (دعم محدود)

توافق الأجهزة

وحدات المعالجة المركزية (CPU) ووحدات المعالجة المخصصة (XPU) ووحدات CUDA لكل من التكميم والاستدلال.

التكميم والتسلسل (خارج الخط)

حاليًا، يُدعم وضع عدم الاتصال فقط لتوليد النماذج المُكمّاة.

quantization cmd
auto scheme cmd
توليفات alg
التكميم auto-round api
quantization auto-round-best
quantization auto-round-light

الاستخدام من سطر الأوامر

auto-round \
    --model Qwen/Qwen3-0.6B \
    --scheme "W4A16" \
    --group_size 128 \
    --output_dir ./tmp_autoround

توفر AutoRound أيضًا أربع وصفات أخرى، هي auto-round-best وauto-round-light وauto-round-opt-rtn وauto-round-rtn، مصممة على التوالي لتحقيق دقة مثالية وتحسين السرعة. لحجم 2 بت، نوصي باستخدام auto-round-best مع --enable_alg_ext.

متوسط دقة 13 مهمة (mmlu-pro, if_eval, gsm8k، إلخ) ونتائج تكلفة الوقت لـ W4G128 (تم إجراء الاختبار على Nvidia A100 80G باستخدام إصدار PyTorch 2.6.0 مع تفعيل enable_torch_compile):

النموذجQwen2.5-0.5B-InstructFalcon3-3BQwen2.5-7B-InstructMeta-Llama-3.1-8B-InstructFalcon3-10BQwen2.5-72B-Instruct
16bits0.41920.52030.64700.62120.61510.7229
أفضل0.4137(7m)0.5142(23m)0.6426(58m)0.6116(65m)0.6092(81m)0.7242(575m)
افتراضي0.4129(2m)0.5133(6m)0.6441(13m)0.6106(13m)0.6080(18m)0.7252(118m)
فاتح0.4052(2m)0.5108(3m)0.6453(5m)0.6104(6m)0.6063(6m)0.7243(37m)

الاستدلال

يختار AutoRound تلقائيًا أفضل واجهة خلفية متاحة بناءً على المكتبات المثبتة، ويطلب من المستخدم تثبيت مكتبات إضافية عند العثور على واجهة خلفية أفضل.

الاستدلال على وحدة المعالجة المركزية
الاستدلال xpu
inference cuda
خلفية الاستدلال
تحويل التنسيق

وحدة المعالجة المركزية

يدعم 2 و4 و8 بتات. ننصح باستخدام واجهة ARK (AutoRound Kernel) للاستدلال. يتطلب استخدام ARK إصدار PyTorch 2.8.0 أو أحدث.

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "OPEA/Qwen2.5-1.5B-Instruct-int4-sym-inc"
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="cpu", dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
text = "There is a girl who likes adventure,"
inputs = tokenizer(text, return_tensors="pt").to(model.device)
print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50, do_sample=False)[0]))

المشكلات

إذا واجهت أي مشاكل مع تكامل transformers، يرجى فتح مشكلة في مستودع transformers.
إذا واجهت أي مشاكل مع auto-round، يرجى فتح مشكلة في مستودع AutoRound.

إقرار

شكر خاص لمكتبات الدقة المنخفضة مفتوحة المصدر مثل AutoGPTQ وAutoAWQ وGPTQModel وTriton وMarlin وExLLaMAV2، لتوفيرها نوى CUDA منخفضة الدقة، والتي يتم الاستفادة منها في AutoRound.

المساهمة

نرحّب بالمساهمات في AutoRound ونقدّرها كثيراً! سواء كان الأمر إصلاح أخطاء، أو تحسين التوثيق، أو إضافة ميزات جديدة، أو اقتراح تحسينات، فإن مساعدتك تُقدَّر دائماً.

Update on GitHub