إيه هو الـ Gradient Accumulation؟ | تجميع التدرجات

باختصار

الـ Gradient Accumulation هو تقنية بتجمع التدرجات من عدة دفعات صغيرة قبل ما تعدّل الأوزان. الفكرة إنك تقدر تحاكي تأثير دفعة كبيرة (Batch Size) حتى لو الذاكرة عندك محدودة ومش قادر تشغّل دفعة كبيرة مرة واحدة.

بالتفصيل

تخيل إنك عايز تنقل 100 كيلو رمل من مكان لمكان، بس العربية بتاعتك تشيل 25 كيلو بس. مش محتاج تشتري عربية أكبر — ممكن تعمل 4 رحلات وفي الآخر تكون نقلت الـ 100 كيلو كلهم. الـ Gradient Accumulation بيعمل نفس الفكرة مع تدريب النماذج.

في الوضع العادي، النموذج بيشوف دفعة من البيانات (Batch)، بيحسب التدرجات (Gradients)، وبيعدّل الأوزان فوراً. بس لو عايز تستخدم Batch Size = 64 والـ GPU بتاعتك تشيل 16 بس، هتواجه مشكلة نفاد الذاكرة (Out of Memory).

هنا بييجي دور الـ Gradient Accumulation. بدل ما تعدّل الأوزان بعد كل دفعة صغيرة (16)، بتجمّع التدرجات من 4 دفعات صغيرة (4 × 16 = 64) وبعدين تعدّل الأوزان مرة واحدة. النتيجة رياضياً بتكون شبه إنك استخدمت دفعة كبيرة من الأول.

الخطوات بتكون كده:

  • بتشغّل دفعة صغيرة (16 مثال) وتحسب التدرجات بس من غير ما تعدّل الأوزان
  • بتشغّل دفعة تانية (16 مثال تاني) وتجمع تدرجاتها على اللي قبلها
  • بتكرر لحد ما توصل للعدد المطلوب (4 مرات مثلاً)
  • بتعدّل الأوزان مرة واحدة باستخدام التدرجات المجمّعة

الميزة الكبيرة إنك مش محتاج GPU غالية بذاكرة كبيرة عشان تدرب نماذج ضخمة. العيب الوحيد إن التدريب بياخد وقت أطول شوية لأنك بتعمل رحلات أكتر، بس النتيجة النهائية بتكون نفسها تقريباً.

مثال عملي

لو عايز تعمل Fine-tuning لنموذج لغوي كبير زي LLaMA على GPU عندها 8GB ذاكرة بس. الـ Batch Size المثالي هو 32 بس الذاكرة تشيل 4 بس. باستخدام Gradient Accumulation بـ 8 خطوات (4 × 8 = 32)، بتحقق نفس نتيجة الدفعة الكبيرة على كارت شاشة متواضع.

مصطلحات مرتبطة

شاهد أيضاً

إيه هو الـ Mixture of Experts (MoE)؟ | مزيج الخبراء

باختصار الـ Mixture of Experts (MoE) (مزيج الخبراء) — بنية نموذج فيها عدة شبكات “خبيرة” …

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *