Transformers documentation

FP-Quant

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

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