# FBGEMM

[FBGEMM (Facebook GEneral Matrix Multiplication)](https://github.com/pytorch/FBGEMM) هو مكتبة لضرب المصفوفات بدقة منخفضة مصممة لحجم دفعات صغير، وتدعم تقنيات تهدف إلى تقليل فقدان الدقة مثل التكميم على مستوى الصفوف والتكميم الواعي بالقيم الشاذة. باستخدام FBGEMM، يمكنك تكميم أوزان النموذج إلى 8 بتات لكل قناة، وتكميم التنشيطات إلى 8 بتات لكل رمز (ويُعرف أيضاً بـ fp8 أو w8a8).

> [!TIP]
> تحتاج إلى وحدة معالجة رسومية (GPU) تملك [قدرة حوسبة 9+](https://developer.nvidia.com/cuda-gpus#collapseOne) مثل H100.

قم بتثبيت حزمة FBGEMM_GPU باستخدام الأمر أدناه للتأكد من أنك تمتلك أحدث إصدار.

```bash
pip install --upgrade accelerate fbgemm-gpu torch
```

إذا كنت تواجه مشاكل في التثبيت، فحاول تثبيت [الإصدار الليلي](https://pytorch.org/FBGEMM/fbgemm_gpu-development/InstallationInstructions.html#fbgemm-gpu-install-libraries:~:text=found%20here.-,Install%20the%20FBGEMM_GPU%20Package,-Install%20through%20PyTorch).

أنشئ [FbgemmFp8Config](/docs/transformers/main/ar/main_classes/quantization#transformers.FbgemmFp8Config) وقم بتمريره إلى [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتكميم النموذج إلى fp8.

```py
from transformers import FbgemmFp8Config, AutoModelForCausalLM

quantization_config = FbgemmFp8Config()
quantized_model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Meta-Llama-3-8B",
    dtype="auto",
    device_map="auto",
    quantization_config=quantization_config
)
```

يتيح [save_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.save_pretrained) و[from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) حفظ نموذج مُكمَّم وتحميله.

```py
quant_path = "/path/to/save/quantized/model"
quantized_model.save_pretrained(quant_path)
model = AutoModelForCausalLM.from_pretrained(quant_path, device_map="auto")
```

## الموارد

اقرأ منشور المدونة [فتح مصدر FBGEMM للاستدلال الخادمي المتطور](https://engineering.fb.com/2018/11/07/ml-applications/fbgemm/) لمزيد من التفاصيل حول FBGEMM.

