Transformers documentation
FP-Quant
FP-Quant
FP-Quant هو عائلة من خوارزميات التكميم مصممة خصيصاً لجيل Blackwell من وحدات معالجة الرسوميات من Nvidia. يهدف إلى تمكين التكميم بعد التدريب (PTQ) والتدريب الواعي بالتكميم (QAT) بكفاءة لنماذج اللغة الكبيرة (LLMs) باستخدام أنواع البيانات MXFP4 وNVFP4.
ترافق هذه التكاملات مع النسخة المسبقة من ورقة جسر الفجوة بين الوعد والأداء في تكميم Microscaling FP4.
حالياً، يُدعم pseudoquantization=True فقط مع QAT. يمكن تكميم النماذج أثناء التشغيل باستخدام quantization_config=FPQuantConfig():
from transformers import AutoModelForCausalLM, AutoTokenizer, FPQuantConfig
import torch
model = AutoModelForCausalLM.from_pretrained(
"qwen/Qwen3-8B",
quantization_config=FPQuantConfig(),
device_map="auto",
dtype=torch.bfloat16,
)أو مُعالَجة مسبقًا باستخدام GPTQ للحصول على جودة أفضل (انظر FP Format Quantization Harness).
يمكنك الاختيار بين MXFP4 وNVFP4 باستخدام FPQuantConfig(forward_dtype="mxfp4"). يوفر NVFP4 جودة أفضل لكنه يستهلك ذاكرة أكبر قليلاً.
يتطلب تشغيل النوى (kernels) معالج رسومات من جيل Blackwell. يتم تنفيذ دعم وقت التشغيل لـ FP-Quant من خلال مكتبة QuTLASS وواجهة PyTorch خفيفة الوزن هي مكتبة fp_quant. ننصح بتثبيت الأولى من المصدر والثانية باستخدام pip install fp_quant.
يمكن للمستخدمين الذين لا يملكون معالجًا رسوميًا من جيل Blackwell استخدام الطريقة مع quantization_config=FPQuantConfig(pseudoquantization=True) دون الحاجة إلى تثبيت QuTLASS. لن يوفر هذا أي تسريع، لكنه سيحاكي تأثير التكميم بالكامل.
ابحث عن نماذج مُكمّاة مسبقًا باستخدام FP-Quant في المجموعة الرسمية لـ ISTA-DASLab.
torch.compile
FP-Quant متوافق تمامًا مع torch.compile.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, FPQuantConfig
model = AutoModelForCausalLM.from_pretrained(
"qwen/Qwen3-8B",
quantization_config=FPQuantConfig(),
device_map="auto",
dtype=torch.bfloat16,
)
model.forward = torch.compile(model.forward, mode="max-autotune", fullgraph=True)التسريع
يحقق FP-Quant أفضل أداء حاليًا عند معالجة أحجام دفعات كبيرة جدًا.
راجع README الخاص بـ QuTLASS لمعرفة تفاصيل التسريع.
Update on GitHub