Transformers documentation
DeepSpeed
DeepSpeed
DeepSpeed، المدعوم بواسطة Zero Redundancy Optimizer (ZeRO)، هو مكتبة تحسين لتدريب نماذج ضخمة جداً وتجهيزها على وحدة معالجة رسومية (GPU). يتوفر في عدة مراحل ZeRO، حيث توفر كل مرحلة ذاكرة GPU أكثر بشكل تدريجي من خلال تقسيم حالة المُحسِّن (optimizer state) والتدرجات (gradients) والمعلمات (parameters)، وتمكين التفريغ (offloading) إلى وحدة المعالجة المركزية (CPU) أو NVMe. يتم دمج DeepSpeed مع فئة Trainer، ويتم التعامل مع معظم الإعداد تلقائياً من أجلك.
ومع ذلك، إذا كنت ترغب في استخدام DeepSpeed دون Trainer، فإن Transformers يوفر فئة HfDeepSpeedConfig.
تعرّف على المزيد حول استخدام DeepSpeed مع Trainer في دليل DeepSpeed.
HfDeepSpeedConfig
فئة transformers.integrations.HfDeepSpeedConfig
< source >( config_file_or_dict )
تحتوي هذه الكائن على قاموس إعدادات DeepSpeed ويمكن الاستعلام عنه بسرعة عن أشياء مثل مرحلة zero.
يُخزَّن weakref لهذا الكائن في متغيرات الوحدة العامة (globals) حتى يمكن الوصول إلى الإعداد (config) من المناطق التي لا يتوفر فيها كائن Trainer مثلًا (مثل from_pretrained و_get_resized_embeddings). لذلك من المهم أن يبقى هذا الكائن حيًا طالما أن البرنامج لا يزال قيد التشغيل.
يستخدم Trainer الفئة الفرعية HfTrainerDeepSpeedConfig بدلاً من ذلك. تحتوي هذه الفئة الفرعية على منطق لمزامنة الإعدادات مع قيم TrainingArguments عن طريق استبدال قيم العناوين الوهمية الخاصة: "auto". بدون هذا المنطق الخاص، لا يتم تعديل إعدادات DeepSpeed بأي شكل من الأشكال.