Transformers documentation

NVFP4

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

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() أو تدريبها.
Update on GitHub