TRL documentation
تكامل DeepSpeed
تكامل DeepSpeed
يدعم TRL التدريب باستخدام DeepSpeed، وهي مكتبة تنفّذ تقنيات تحسين متقدمة للتدريب. وتشمل هذه التقنيات تقسيم حالة المُحسِّن، والتفريغ، وتقسيم التدرّجات، وغيرها.
تدمج DeepSpeed محسّن Zero Redundancy Optimizer (ZeRO) الذي يتيح لك توسيع حجم النموذج بشكل متناسب مع عدد الأجهزة مع الحفاظ على كفاءة عالية مستدامة.

التثبيت
للاستخدام DeepSpeed مع TRL، قم بتثبيته باستخدام الأمر التالي:
pip install deepspeed
تشغيل سكربتات التدريب مع DeepSpeed
لا يلزم إجراء أي تعديلات على سكربت التدريب الخاص بك. يتم تفعيل DeepSpeed من خلال حُجج التدريب، تمامًا كما هو الحال مع أي Trainer: اضبط deepspeed على مسار ملف إعدادات DeepSpeed، ثم أطلق التدريب باستخدام torchrun.
training_args = SFTConfig(..., deepspeed="<DEEPSPEED_CONFIG_FILE.json>")torchrun --nproc_per_node 8 train.py
تأخذ السكربتات التي تحلل حُججها باستخدام TrlParser، مثل تلك الموجودة خلف واجهة trl السطرية، هذه الحُجج من سطر الأوامر:
trl sft ... --deepspeed <DEEPSPEED_CONFIG_FILE.json>
نوفر ملفات إعداد DeepSpeed جاهزة للاستخدام في مجلد examples/deepspeed_configs. على سبيل المثال، لتشغيل التدريب مع ZeRO Stage 2:
trl sft ... --deepspeed examples/deepspeed_configs/zero2.json
القيم المُعيّنة على "auto" في هذه الملفات (حجم الدفعة، تراكم التدرّجات، الدقّة، …) تُستكمل من حُجج التدريب.
موارد إضافية
راجع وثائق DeepSpeed في 🤗 Transformers لمزيد من المعلومات حول تكامل DeepSpeed.
Update on GitHub