Transformers documentation
اختر طريقة
اختر طريقة
إذا كان نقطة التفتيش الخاصة بك مُكمّمة بالفعل، فإن نقطة التفتيش هي التي تحدد الطريقة. حمّلها كما هو موضح في تحميل نقطة تفتيش مُكمّمة مسبقًا. وإلا، فاختر طريقة بناءً على عتادك وما تحتاج إلى القيام به بالنموذج بعد تحميله.
ابدأ من هدفك
توصي كل صف بطريقة أولى يجب تجربتها. راجع جدول المقارنة الكامل قبل أن تلتزم بطريقة واحدة.
| الهدف | ابدأ ب | لماذا |
|---|---|---|
| درّب نموذجًا باستخدام ذاكرة أقل بأقل قدر من الإعداد | bitsandbytes | يُكمّط إلى 4 أو 8 بت أثناء التحميل دون معايرة، ويعمل على CUDA وXPU وHPU وCPU، ويدعم الحفظ والتدريب الدقيق. |
| الضبط الدقيق باستخدام QLoRA | bitsandbytes | يدعم 4-bit NF4 مع PEFT. كما تدعم HQQ وEETQ وGPTQ وSINQ وQuanto الضبط الدقيق. |
تسريع الاستدلال باستخدام torch.compile | torchao | يقوم generate بتجميع نماذج torchao تلقائيًا باستخدام ذاكرة تخزين مؤقت ثابتة، وتوفر torchao مخططات int4 وint8 وFP8 لمنصات CUDA وXPU وCPU. |
| احصل على أفضل دقة بدقة 4 بت | GPTQ | يُعاير على مجموعة بيانات أثناء التحميل. لاستخدام AWQ أو AutoRound بدلاً من ذلك، قم بتكميم النموذج باستخدام مكتباتهما ثم حمّل نقطة التفتيش. |
| تشغيل FP8 على Ada أو Hopper أو Intel XPU | FP8 الدقيق | يتطلب هذا الأمر قدرة حسابية CUDA 8.9 أو أعلى، أو معالج XPU. أما FBGEMM FP8 فيتطلب قدرة حسابية 9.0 أو أعلى، أو معالج XPU. |
| تشغيل FP4 على Blackwell | NVFP4 | يُكمّم إلى تنسيق NVIDIA الخاص بالأرقام العشرية الفاصلة 4-بت أثناء التحميل. MXFP4 يعمل على قدرات الحوسبة 7.5 أو أعلى، وXPU، ووحدة المعالجة المركزية (CPU). |
| التشغيل على شرائح Apple silicon | ميتال | يُجري التكميم إلى 2 أو 4 أو 8 بتات على MPS أثناء التحميل. كما يتم تحميل ملفات GGUF على MPS. |
| تحميل نقاط التفتيش المُنشأة باستخدام llm-compressor | compressed-tensors | يحمّل نقاط التفتيش (checkpoints) بصيغ FP8 وint4 وint8 بتنسيق compressed-tensors. |
| ضغط أقل من 4 بت | HQQ أو SINQ | قم بتكميم النموذج إلى 2 أو 3 بتات أثناء التحميل دون معايرة. تحقق نقاط AQLM وVPTQ وSpQR من قيم أدنى، لكنها يجب أن تُكمَّم باستخدام مكتباتها الخاصة. |
Show the full comparison table
| الطريقة | quant_method | سير العمل | بت | الأجهزة | حفظ | ضبط | التجميع التلقائي |
|---|---|---|---|---|---|---|---|
| AQLM | aqlm | مُسبَق التكميم فقط | 1–2 | CUDA، CPU | ✅ | ✅ مع aqlm>=1.0.2 | ❌ |
| AutoRound | auto-round | مُسبَق التكميم فقط | 2–8 | CUDA، XPU، CPU | ✅ | ❌ | ❌ |
| AWQ | awq | مُسبَق التكميم فقط | 4 | CUDA، ROCm، XPU، CPU | ✅ باستثناء خلفيات ExLlama | ✅ مع gptqmodel>=5.0.0 | ❌ |
| BitNet | bitnet | مُسبَق التكميم فقط | 1.58 | CUDA | ✅ | فقط autobitlinear في وضع online | ❌ |
| bitsandbytes | bitsandbytes | أثناء التحميل | 4, 8 | CUDA، XPU، HPU، CPU | ✅ | ✅ | ❌ |
| compressed-tensors | compressed-tensors | مُسبَق التكميم فقط | تعيين بواسطة نقطة التفتيش | CUDA، XPU، MPS، CPU | ✅ | ✅ باستثناء نواة FP8 | ✅ |
| EETQ | eetq | أثناء التحميل | 8 | CUDA | ✅ | ✅ | ❌ |
| FBGEMM FP8 | fbgemm_fp8 | أثناء التحميل | 8 | CUDA (قدرة الحوسبة 9.0 أو أحدث)، XPU | ✅ | ❌ | ❌ |
| FP8 الدقيق | fp8, mxfp8 | أثناء التحميل | 8 | CUDA (قدرة الحوسبة 8.9+), XPU | ✅ | ❌ | ✅ |
| أربعة من ستة | fouroversix | أثناء التحميل | 4 | CUDA (الأسرع على Blackwell)، CPU | ✅ | فقط عند استخدام keep_master_weights=True | ❌ |
| FP-Quant | fp_quant | أثناء التحميل | 4 | CUDA، XPU | ✅ | فقط عند استخدام store_master_weights=True | ❌ |
| GGUF | gguf | مُسبَق التكميم فقط | 1–8 | CUDA، MPS، XPU، CPU | ❌ | ❌ | ✅ |
| GPTQ | gptq | أثناء التحميل، مع المعايرة | 2, 3, 4, 8 | CUDA، ROCm، XPU، CPU | ✅ | ✅ | ❌ |
| HIGGS | higgs | أثناء التحميل | 2, 3, 4 | CUDA | ✅ | ❌ | ❌ |
| HQQ | hqq | أثناء التحميل | 1, 2, 3, 4, 8 | CUDA، XPU | ✅ | ✅ | ❌ |
| ميتال | metal | أثناء التحميل | 2, 4, 8 | MPS | ✅ | ❌ | ❌ |
| MXFP4 | mxfp4 | أثناء التحميل | 4 | CUDA (قدرة الحوسبة 7.5 أو أحدث)، XPU، CPU | ✅ | ❌ | ❌ |
| NVFP4 | nvfp4 | أثناء التحميل | 4 | وحدة معالجة رسومات واحدة من Blackwell | ❌ | ❌ | ✅ |
| Quanto | quanto | أثناء التحميل | 2, 4, 8 | CUDA، MPS، XPU، CPU | ❌ | ✅ | ❌ |
| Quark | quark | مُسبَق التكميم فقط | تعيين بواسطة نقطة التفتيش | CUDA، ROCm، المعالج | ❌ | ❌ | ❌ |
| SINQ | sinq | أثناء التحميل | 2, 3, 4, 6, 8 | وحدة معالجة رسومية واحدة من نوع CUDA، وحدة معالجة مركزية | ✅ | ✅ | ❌ |
| SpQR | spqr | مُسبَق التكميم فقط | 3 | CUDA | ✅ | ❌ | ❌ |
| torchao | torchao | أثناء التحميل | 4, 8 | CUDA، XPU، CPU | ✅ | مخططات 8 بت فقط | ✅ |
| VPTQ | vptq | مُسبَق التكميم فقط | 1–8 | CUDA | ✅ | ❌ | ❌ |
تحقق من الذاكرة باستخدام منتقي التكميم
يقوم محدد التكميم بتقدير ما إذا كان النموذج يتسع على عتادك عند كل دقة، بما في ذلك ذاكرة KV. اختر النموذج، وعتادك، وما تحتاج منه إلى أن يقوم به الأسلوب، ثم يعرض عرض المقارنة الأساليب المطابقة.
المعايير
تقارن المعايير أدناه عدة طرق على Llama 3.1 8B و 70B. وهي تُبلّغ عن الدقة، ومعدل الإنتاجية بالرموز في الثانية، والذروة الذاكرة بالجيجابايت، ووقت التكميم.
تم تشغيل Llama 3.1 70B بدقة bf16 على وحدتي معالجة رسومية NVIDIA A100 80GB. تم تشغيل طرق FP8 على وحدة معالجة رسومية واحدة NVIDIA H100 80GB، بينما تم تشغيل جميع الطرق الأخرى على وحدة معالجة رسومية واحدة NVIDIA A100 80GB. تم قياس معدل الإنتاجية عند حجم دفعة 1، مع توليد 64 رمزًا. تتضمن النتائج torch.compile ونوى Marlin حيث تدعم الطريقة ذلك.
تتوزّع النتائج إلى ثلاث نطاقات بتات.
| بت | الطرق التي تم تقييمها | الذاكرة مقابل bf16 | الدقة |
|---|---|---|---|
| 8 | bitsandbytes int8، HQQ، Quanto، torchao، FP8 | أصغر بحوالي مرتين | قريب جدًا من bf16 |
| 4 | AWQ، GPTQ، HQQ، bitsandbytes NF4، SINQ | أصغر بحوالي 4 أضعاف | مرتفع. غالبًا ما تتصدّر AWQ وGPTQ، لكنها تتطلب معايرة. |
| أقل من 4 | VPTQ، AQLM، GPTQ بدقة 2 بت | أصغر بأكثر من 4 أضعاف | انخفاض ملحوظ، لا سيما عند 2 بت. تستغرق خوارزميتا AQLM وVPTQ وقتاً طويلاً للكمّية. |
Update on GitHubقيِّس دقة الأداء وسرعته على مهمتك الخاصة وأجهزتك قبل اختيار طريقة للإنتاج.