# اختر طريقة

إذا كان نقطة التفتيش الخاصة بك مُكمّمة بالفعل، فإن نقطة التفتيش هي التي تحدد الطريقة. حمّلها كما هو موضح في [تحميل نقطة تفتيش مُكمّمة مسبقًا](./overview#load-a-pre-quantized-checkpoint). وإلا، فاختر طريقة بناءً على عتادك وما تحتاج إلى القيام به بالنموذج بعد تحميله.

## ابدأ من هدفك

توصي كل صف بطريقة أولى يجب تجربتها. راجع جدول المقارنة الكامل قبل أن تلتزم بطريقة واحدة.

| الهدف | ابدأ ب | لماذا |
|---|---|---|
| درّب نموذجًا باستخدام ذاكرة أقل بأقل قدر من الإعداد | [bitsandbytes](./bitsandbytes) | يُكمّط إلى 4 أو 8 بت أثناء التحميل دون معايرة، ويعمل على CUDA وXPU وHPU وCPU، ويدعم الحفظ والتدريب الدقيق. |
| الضبط الدقيق باستخدام QLoRA | [bitsandbytes](./bitsandbytes#qlora) | يدعم 4-bit NF4 مع PEFT. كما تدعم [HQQ](./hqq) و[EETQ](./eetq) و[GPTQ](./gptq) و[SINQ](./sinq) و[Quanto](./quanto) الضبط الدقيق. |
| تسريع الاستدلال باستخدام `torch.compile` | [torchao](./torchao) | يقوم `generate` بتجميع نماذج torchao تلقائيًا باستخدام ذاكرة تخزين مؤقت ثابتة، وتوفر torchao مخططات int4 وint8 وFP8 لمنصات CUDA وXPU وCPU. |
| احصل على أفضل دقة بدقة 4 بت | [GPTQ](./gptq) | يُعاير على مجموعة بيانات أثناء التحميل. لاستخدام [AWQ](./awq) أو [AutoRound](./auto_round) بدلاً من ذلك، قم بتكميم النموذج باستخدام مكتباتهما ثم حمّل نقطة التفتيش. |
| تشغيل FP8 على Ada أو Hopper أو Intel XPU | [FP8 الدقيق](./finegrained_fp8) | يتطلب هذا الأمر قدرة حسابية CUDA 8.9 أو أعلى، أو معالج XPU. أما [FBGEMM FP8](./fbgemm_fp8) فيتطلب قدرة حسابية 9.0 أو أعلى، أو معالج XPU. |
| تشغيل FP4 على Blackwell | [NVFP4](./nvfp4) | يُجري التكميم إلى تنسيق الفاصلة العائمة 4-بت الخاص بشركة NVIDIA أثناء التحميل. يعمل [MXFP4](./mxfp4) على قدرات الحوسبة 7.5 أو أعلى، وXPU، والمعالج المركزي (CPU). |
| التشغيل على شرائح Apple silicon | [ميتال](./metal) | يُجري التكميم إلى 2 أو 4 أو 8 بتات على MPS أثناء التحميل. كما يتم تحميل ملفات [GGUF](./gguf) على MPS. |
| تحميل نقاط التفتيش المُنشأة باستخدام llm-compressor | [compressed-tensors](./compressed_tensors) | يحمّل نقاط التفتيش (checkpoints) بصيغ FP8 وint4 وint8 بتنسيق compressed-tensors. |
| ضغط أقل من 4 بت | [HQQ](./hqq) أو [SINQ](./sinq) | قم بتكميم النموذج إلى 2 أو 3 بتات أثناء التحميل دون معايرة. تحقق نقاط [AQLM](./aqlm) و[VPTQ](./vptq) و[SpQR](./spqr) من قيم أدنى، لكنها يجب أن تُكمَّم باستخدام مكتباتها الخاصة. |

عرض جدول المقارنة الكامل

| الطريقة | `quant_method` | سير العمل | بت | الأجهزة | حفظ | ضبط | التجميع التلقائي |
|---|---|---|---|---|---|---|---|
| [AQLM](./aqlm) | `aqlm` | مُسبَق التكميم فقط | 1–2 | CUDA، CPU | ✅ | ✅ مع `aqlm>=1.0.2` | ❌ |
| [AutoRound](./auto_round) | `auto-round` | مُسبَق التكميم فقط | 2–8 | CUDA، XPU، CPU | ✅ | ❌ | ❌ |
| [AWQ](./awq) | `awq` | مُسبَق التكميم فقط | 4 | CUDA، ROCm، XPU، CPU | ✅ باستثناء خلفيات ExLlama | ✅ مع `gptqmodel>=5.0.0` | ❌ |
| [BitNet](./bitnet) | `bitnet` | مُسبَق التكميم فقط | 1.58 | CUDA | ✅ | فقط `autobitlinear` في وضع `online` | ❌ |
| [bitsandbytes](./bitsandbytes) | `bitsandbytes` | أثناء التحميل | 4, 8 | CUDA، XPU، HPU، CPU | ✅ | ✅ | ❌ |
| [compressed-tensors](./compressed_tensors) | `compressed-tensors` | مُسبَق التكميم فقط | تعيين بواسطة نقطة التفتيش | CUDA، XPU، MPS، CPU | ✅ | ✅ باستثناء نواة FP8 | ✅ |
| [EETQ](./eetq) | `eetq` | أثناء التحميل | 8 | CUDA | ✅ | ✅ | ❌ |
| [FBGEMM FP8](./fbgemm_fp8) | `fbgemm_fp8` | أثناء التحميل | 8 | CUDA (قدرة الحوسبة 9.0 أو أحدث)، XPU | ✅ | ❌ | ❌ |
| [FP8 الدقيق](./finegrained_fp8) | `fp8`, `mxfp8` | أثناء التحميل | 8 | CUDA (قدرة الحوسبة 8.9+), XPU | ✅ | ❌ | ✅ |
| [أربعة من ستة](./fouroversix) | `fouroversix` | أثناء التحميل | 4 | CUDA (الأسرع على Blackwell)، CPU | ✅ | فقط عند استخدام `keep_master_weights=True` | ❌ |
| [FP-Quant](./fp_quant) | `fp_quant` | أثناء التحميل | 4 | CUDA، XPU | ✅ | فقط عند استخدام `store_master_weights=True` | ❌ |
| [GGUF](./gguf) | `gguf` | مُسبَق التكميم فقط | 1–8 | CUDA، MPS، XPU، CPU | ❌ | ❌ | ✅ |
| [GPTQ](./gptq) | `gptq` | أثناء التحميل، مع المعايرة | 2, 3, 4, 8 | CUDA، ROCm، XPU، CPU | ✅ | ✅ | ❌ |
| [HIGGS](./higgs) | `higgs` | أثناء التحميل | 2, 3, 4 | CUDA | ✅ | ❌ | ❌ |
| [HQQ](./hqq) | `hqq` | أثناء التحميل | 1, 2, 3, 4, 8 | CUDA، XPU | ✅ | ✅ | ❌ |
| [ميتال](./metal) | `metal` | أثناء التحميل | 2, 4, 8 | MPS | ✅ | ❌ | ❌ |
| [MXFP4](./mxfp4) | `mxfp4` | أثناء التحميل | 4 | CUDA (قدرة الحوسبة 7.5 أو أحدث)، XPU، CPU | ✅ | ❌ | ❌ |
| [NVFP4](./nvfp4) | `nvfp4` | أثناء التحميل | 4 | وحدة معالجة رسومات واحدة من Blackwell | ❌ | ❌ | ✅ |
| [Quanto](./quanto) | `quanto` | أثناء التحميل | 2, 4, 8 | CUDA، MPS، XPU، CPU | ❌ | ✅ | ❌ |
| [Quark](./quark) | `quark` | مُسبَق التكميم فقط | تعيين بواسطة نقطة التفتيش | CUDA، ROCm، المعالج | ❌ | ❌ | ❌ |
| [SINQ](./sinq) | `sinq` | أثناء التحميل | 2, 3, 4, 6, 8 | وحدة معالجة رسومية واحدة من نوع CUDA، وحدة معالجة مركزية | ✅ | ✅ | ❌ |
| [SpQR](./spqr) | `spqr` | مُسبَق التكميم فقط | 3 | CUDA | ✅ | ❌ | ❌ |
| [torchao](./torchao) | `torchao` | أثناء التحميل | 4, 8 | CUDA، XPU، CPU | ✅ | مخططات 8 بت فقط | ✅ |
| [VPTQ](./vptq) | `vptq` | مُسبَق التكميم فقط | 1–8 | CUDA | ✅ | ❌ | ❌ |

## تحقق من الذاكرة باستخدام منتقي التكميم

يقوم [محدد التكميم](https://huggingface.co/spaces/stevhliu/quantization-picker) بتقدير ما إذا كان النموذج يتسع على عتادك عند كل دقة، بما في ذلك ذاكرة KV. اختر النموذج، وعتادك، وما تحتاج منه إلى أن يقوم به الأسلوب، ثم يعرض عرض **المقارنة** الأساليب المطابقة.

<iframe src="https://stevhliu-quantization-picker.hf.space" frameborder="0" width="100%" height="420"
>

## المعايير

تقارن المعايير أدناه عدة طرق على 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 حيث تدعم الطريقة ذلك.

<iframe src="https://huggingface.co/datasets/derekl35/quantization-benchmarks/embed/viewer/default/train" frameborder="0" width="100%" height="560px" title="مجموعة بيانات نتائج الاختبار"
>

تتوزّع النتائج إلى ثلاث نطاقات بتات.

| بت | الطرق التي تم تقييمها | الذاكرة مقابل 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 وقتاً طويلاً للكمّية. |

> [!TIP]
> قيِّس دقة الأداء وسرعته على مهمتك الخاصة وأجهزتك قبل اختيار طريقة للإنتاج.

