Transformers documentation
MXFP4
MXFP4
ملاحظة: تعمل عملية التكميم MXFP4 حاليًا فقط مع نماذج OpenAI GPT-OSS 120b و 20b.
MXFP4 هو تنسيق فاصلة عائمة بدقة 4 بت يقلل بشكل كبير من متطلبات الذاكرة للنماذج الكبيرة. يمكن استيعاب النماذج الكبيرة (GPT-OSS-120B) على وحدة معالجة رسومية واحدة بسعة 80 غيغابايت، بينما تتطلب النماذج الأصغر (GPT-OSS-20B) 16 غيغابايت من الذاكرة فقط. يستخدم هذا التنسيق التدرّج على مستوى الكتل (blockwise scaling) للحفاظ على نطاقه ودقته، وهما ما يميلان عادةً إلى التدهور عند استخدام دقات أدنى.
لاستخدام MXPF4، تأكد من أن جهازك يلبي المتطلبات التالية.
- قم بتثبيت Accelerate وkernels وTriton ≥ 3.4. ثبّت Triton ≥ 3.4 يدوياً فقط إذا كنت تستخدم PyTorch 2.7، لأنه مدعوم مسبقاً في PyTorch 2.8.
- قدرة معالجة GPU من NVIDIA ≥ 7.5 والتي تشمل معالجات Tesla والأحدث منها. استخدم get_device_capability للتحقق من قدرة المعالجة.
from torch import cuda
cuda.get_device_capability()
# (7, 5)تحقق من إعدادات التكميم الخاصة بالنموذج كما هو موضح أدناه لمعرفة ما إذا كان يدعم MXFP4. إذا كان 'quant_method': 'mxfp4'، فإن النموذج يستخدم MXFP4 تلقائيًا.
from transformers import GptOssConfig
model_id = "openai/gpt-oss-120b"
cfg = GptOssConfig.from_pretrained(model_id)
print(cfg.quantization_config)
# Example output:
# {
# 'modules_to_not_convert': [
# 'model.layers.*.self_attn',
# 'model.layers.*.mlp.router',
# 'model.embed_tokens',
# 'lm_head'
# ],
# 'quant_method': 'mxfp4'
# }نواة MXFP4
يسحب Transformers تلقائيًا نواة Triton المدركة لـ MXFP4 من مستودع المجتمع عند تحميل نموذج يتطلبها. تُخزَّن النوى في ذاكرة التخزين المؤقت المحلية وتُستخدم أثناء المرور الأمامي.
تُستخدم نوى MXFP4 افتراضياً، إذا كانت متاحة ومدعومة، ولا تتطلب أي تغييرات في الكود.
يمكنك استخدام hf cache scan للتحقق من تنزيل النوى.
hf cache scan
REPO ID REPO TYPE SIZE ON DISK -------------------------------- --------- ------------ kernels-community/triton_kernels model 536.2K openai/gpt-oss-20b model 13.8G
الموارد
تعرّف على المزيد حول تكميم MXFP4 وكيفية عمل التدرّج على مستوى الكتل في هذا المقال.
Update on GitHub