Transformers documentation

نظرة عامة

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

نظرة عامة

تُخزّن عملية التكميم أوزان النموذج، وأحياناً تنشيطاته، في عدد أقل من البتات، مما يقلل من الحاجة إلى الذاكرة. عادةً ما يتم تحميل النماذج بصيغة bf16، والتي تستهلك بايتين لكل معامل. يحتاج نموذج بحجم 8B إلى حوالي 16 جيجابايت لأوزانه بصيغة bf16، وحوالي 8 جيجابايت عند استخدام 8 بت، وحوالي 4–5 جيجابايت عند استخدام 4 بت. يؤدي استخدام عدد أقل من البتات إلى خسارة بعض الدقة، وكل طريقة تكميم تُقدم توازناً مختلفاً بين الذاكرة والسرعة والدقة.

تدمج Transformers أكثر من 20 طريقة لتكميم الأوزان عبر from_pretrained()، مما يتيح لك استخدام نفس كود التحميل بغض النظر عن الطريقة التي تختارها.

طريقتان لاستخدام نموذج مُكمَّم

يعتمد استخدامك للتكميم على ما إذا كان نقطة الحفظ الخاصة بك مُكمَّمة بالفعل.

لديكما تفعلهالطرق
نقطة تفتيش بدقة كاملةمرّر إعدادات التكميم إلى from_pretrained، وسيتم تكميم الأوزان أثناء تحميلها.تكميم النموذج أثناء تحميله
نقطة تحقق تم كميّتها مسبقًااستدعِ from_pretrained دون إعداد كميّة. يقرأ Transformers الطريقة من ملف config.json الخاص بالنقطة المحفوظة، أو من ملف GGUF الذي تحدّده.تحميل نقطة تفتيش مُكمّاة مسبقًا

بعض الطرق، مثل AWQ وAutoRound وAQLM وcompressed-tensors وGGUF، لا يمكن تحميلها إلا من نقطة تفتيش (checkpoint). تقوم أولاً بكمّ النموذج باستخدام مكتبة الطريقة الخاصة بها، ثم تُحمّل النتيجة في Transformers.

تكميم النموذج أثناء تحميله

أنشئ فئة الإعدادات الخاصة بالطريقة وقم بتمريرها إلى quantization_config. يوضح المثال أدناه كيفية تحميل نموذج بحجم 8B بدقة 4 بت باستخدام bitsandbytes.

import torch
from transformers import AutoModelForCausalLM, BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.bfloat16,
)
model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B-Instruct",
    quantization_config=quantization_config,
    device_map="auto",
)

لكل طريقة في هذه المجموعة فئة إعداد خاصة بها، مثل TorchAoConfig أو BitsAndBytesConfig. ولا تحتاج معظمها إلى مجموعة بيانات للمعايرة. GPTQ هي الاستثناء، لأنها تُعاير على مجموعة بيانات أثناء تحميل النموذج.

تحميل نقطة تحقق مُكمّاة مسبقًا

تُخزّن نقطة تفتيش مُكمّاة مسبقًا quantization_config في ملف config.json. عند العثور عليها بواسطة from_pretrained، يتم اختيار مُكمّم المطابق تلقائيًا.

from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    "TheBloke/zephyr-7B-alpha-AWQ",
    device_map="auto",
)
print(model.config.quantization_config.quant_method)

قم بتثبيت المكتبة التي يعتمد عليها الأسلوب قبل تحميل نقطة التفتيش. تُدرج صفحة كل أسلوب ما يجب تثبيته. لتغيير خيارات التحميل، مثل أي نواة خلفية (kernel backend) ستُشغَّل، مرّر إعدادًا (config) من النوع نفسه. تُدمج خياراته مع تلك المخزنة في نقطة التفتيش.

نقاط التفتيش GGUF

نقطة التفتيش بصيغة GGUF هي ملف واحد يحتوي على الأوزان والإعدادات ومقسّم الرموز، ولا يحتوي على config.json ليقرأه from_pretrained. حدّد اسم الملف باستخدام gguf_file.

from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    "unsloth/Qwen3.5-4B-GGUF",
    gguf_file="Qwen3.5-4B-Q4_K_M.gguf",
)

تُفكّك معظم نماذج GGUF إلى الدقة الكاملة عند تحميلها، لذا تستهلك قدرًا من الذاكرة يعادل ذلك الخاص بنموذج غير مُكمَّم. تبقى الأوزان مضغوطة فقط على MPS عند تثبيت حزمة kernels، وذلك لنموذجي Qwen3.5 وQwen3.5 MoE. راجع GGUF للاطلاع على التفاصيل.

حفظ نموذج مُكمَّم

استدعِ save_pretrained() أو push_to_hub() لحفظ الأوزان المُكمّاة وإعدادات quantization_config الخاصة بها. لا يمكن لكل طريقة حفظ أوزانها المُكمّاة.

اختر طريقة

يوصي اختيار طريقة بنقطة انطلاق للأهداف الشائعة ويقارن كل طريقة من حيث العتاد، وعرض البت، والتوفير، وضبط الدقة، ودعم torch.compile. استخدم محدد التكميم للتحقق مما إذا كان النموذج يتسع في ذاكرة عتادك عند كل دقة.

أدوات أخرى

تقوم هذه الأدوات بتكميم النماذج خارج مكتبة Transformers.

  • يقوم Optimum بتكميم النماذج لأجهزة وبرامج تشغيل محددة، مثل معالجات Intel وONNX Runtime.
  • تقوم مساحات Hub Spaces بتكميم نموذج ودفع النتيجة إلى حسابك: bitsandbytes، GGUF، وMLX.

الموارد

الخطوات التالية

Update on GitHub