# DeepSpeed

[DeepSpeed](https://github.com/deepspeedai/DeepSpeed)، المدعوم بواسطة Zero Redundancy Optimizer (ZeRO)، هو مكتبة تحسين لتدريب نماذج ضخمة جداً وتجهيزها على وحدة معالجة رسومية (GPU). يتوفر في عدة مراحل ZeRO، حيث توفر كل مرحلة ذاكرة GPU أكثر بشكل تدريجي من خلال تقسيم حالة المُحسِّن (optimizer state) والتدرجات (gradients) والمعلمات (parameters)، وتمكين التفريغ (offloading) إلى وحدة المعالجة المركزية (CPU) أو NVMe. يتم دمج DeepSpeed مع فئة [Trainer](/docs/transformers/main/ar/main_classes/trainer#transformers.Trainer)، ويتم التعامل مع معظم الإعداد تلقائياً من أجلك.

ومع ذلك، إذا كنت ترغب في استخدام DeepSpeed دون [Trainer](/docs/transformers/main/ar/main_classes/trainer#transformers.Trainer)، فإن Transformers يوفر فئة `HfDeepSpeedConfig`.

تعرّف على المزيد حول استخدام DeepSpeed مع [Trainer](/docs/transformers/main/ar/main_classes/trainer#transformers.Trainer) في دليل [DeepSpeed](../deepspeed).

## HfDeepSpeedConfig[[transformers.integrations.HfDeepSpeedConfig]]

#### transformers.integrations.HfDeepSpeedConfig[[transformers.integrations.HfDeepSpeedConfig]]

```python
transformers.integrations.HfDeepSpeedConfig(config_file_or_dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/integrations/deepspeed.py#L60)

**المعاملات:**

config_file_or_dict (`Union[str, Dict]`) : مسار ملف إعدادات DeepSpeed أو قاموس.

تحتوي هذه الكائن على قاموس إعدادات DeepSpeed ويمكن الاستعلام عنه بسرعة عن أشياء مثل مرحلة zero.

يُخزَّن `weakref` لهذا الكائن في متغيرات الوحدة العامة (globals) حتى يمكن الوصول إلى الإعداد (config) من المناطق التي لا يتوفر فيها كائن Trainer مثلًا (مثل `from_pretrained` و`_get_resized_embeddings`). لذلك من المهم أن يبقى هذا الكائن حيًا طالما أن البرنامج ما زال قيد التشغيل.

يستخدم [Trainer](/docs/transformers/main/ar/main_classes/trainer#transformers.Trainer) الفئة الفرعية `HfTrainerDeepSpeedConfig` بدلاً من ذلك. تحتوي هذه الفئة الفرعية على منطق لمزامنة الإعدادات مع قيم [TrainingArguments](/docs/transformers/main/ar/main_classes/trainer#transformers.TrainingArguments) عن طريق استبدال قيم العناوين الوهمية الخاصة: `"auto"`. بدون هذا المنطق الخاص، لا يتم تعديل إعدادات DeepSpeed بأي شكل من الأشكال.

