Transformers documentation
NVFP4
NVFP4
تقوم عملية التكميم NVFP4 بتعبئة أوزان الخطية ذات الدقة الكاملة في تنسيق NVIDIA النقدي العائم ذي 4 بت أثناء تحميل النموذج. يستبدل NVFP4Config وحدات torch.nn.Linear المؤهلة والخالية من الانحياز، حيث يكون كل من in_features وout_features قابلين للقسمة على 16، بتنفيذ خطي NVFP4 من NVFP4 Hub kernel. لا يتم استبدال واجهات الانتباه وMLP في النموذج.
يتطلب NVFP4 معالجًا رسوميًا من Blackwell بقدرته الحاسوبية 10.0 أو أحدث، وبنية PyTorch متوافقة ومُفعّلة بـ CUDA، بالإضافة إلى حزمة kernels.
قم بتثبيت Accelerate وإصدار متوافق من kernels.
pip install --upgrade accelerate kernels
مرّر NVFP4Config إلى from_pretrained() مع جهاز CUDA واحد. يتم تكميم الأوزان أثناء تحميلها، لذا يجب أن يحتوي نقطة الفحص المصدرية على أوزان بنقاط عائمة.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, NVFP4Config
model_id = "meta-llama/Llama-3.2-1B"
quantization_config = NVFP4Config()
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype=torch.bfloat16,
device_map="cuda",
quantization_config=quantization_config,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
inputs = tokenizer("NVFP4 is", return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(output[0], skip_special_tokens=True))استخدم modules_to_not_convert للحفاظ على وحدات محددة في دقتها الأصلية.
quantization_config = NVFP4Config(modules_to_not_convert=["vision", "lm_head"])تدعم وحدات NVFP4 الخطية torch.compile. تتضمن الاستدعاء المُجمَّع الأول وقت تجميع الرسم البياني، لذا قم بإحماء النموذج قبل قياس معدل إنتاجية التوليد.
القيود الحالية
- يُؤمَّن دعم جهاز CUDA واحد فقط. وتُرفض تهيئة موازاة الموترات (Tensor parallelism) وإعدادات
device_mapمتعددة الأجهزة حتى يتم تحديد سلوك تقسيم بيانات NVFP4 scale metadata. - لا يُدعم تفريغ المعالج المركزي والقرص.
- لا يتم دعم نقاط التفتيش NVFP4 المُكمّاة مسبقًا.
- لا يمكن حاليًا تسلسل نماذج NVFP4 باستخدام save_pretrained() أو تدريبها.