باختصار
الـ Batch Size هو عدد الأمثلة اللي النموذج بيشوفها مع بعض قبل ما يعدّل أوزانه مرة واحدة. يعني بدل ما يتعلم من مثال واحد بس كل مرة، بيتعلم من مجموعة أمثلة في نفس الخطوة، وده بيأثر على سرعة واستقرار التدريب.
بالتفصيل
تخيل إنك مدرّس بتصحح امتحانات. ممكن تصحح ورقة ورقة وتغيّر طريقة شرحك بعد كل ورقة — ده هيخليك تتأثر بكل طالب لوحده وتغيّر رأيك كتير. أو ممكن تصحح 32 ورقة مع بعض وبعدين تاخد فكرة عامة عن مستوى الطلاب وتعدّل أسلوبك مرة واحدة. الطريقة التانية أكتر استقراراً — وده بالظبط فكرة الـ Batch Size.
في تدريب نماذج الـ Machine Learning، النموذج بيمر على بيانات التدريب ويتعلم منها. الـ Batch Size بيحدد كام مثال النموذج بيشوفهم مع بعض قبل ما يعمل تحديث للأوزان. لو الـ Batch Size = 1، ده اسمه Stochastic Gradient Descent — كل مثال بيعمل تحديث لوحده. لو الـ Batch Size = حجم كل البيانات، ده اسمه Full Batch Gradient Descent. والأغلب بيستخدم حاجة في النص زي 16 أو 32 أو 64.
حجم الدفعة بيأثر على حاجات كتير:
- دفعة كبيرة = تدريب أسرع (بيستغل الـ GPU أحسن) بس محتاج ذاكرة أكتر
- دفعة صغيرة = ذاكرة أقل بس التدريب أبطأ وممكن يكون أقل استقراراً
- دفعة كبيرة أوي ممكن تخلي النموذج يعمّم بشكل أقل على بيانات جديدة
عشان كده، اختيار الـ Batch Size بيعتمد على حجم الذاكرة المتاحة في الـ GPU وطبيعة المشكلة. ولو الذاكرة مش كفاية لدفعة كبيرة، ممكن تستخدم تقنية Gradient Accumulation عشان تحقق نفس التأثير.
مثال عملي
لو عندك 10,000 صورة وبتدرّب نموذج تصنيف، وحطيت Batch Size = 32، النموذج هيشوف 32 صورة مع بعض، يحسب الخطأ، يعدّل الأوزان، وبعدين يشوف الـ 32 اللي بعدهم. يعني في كل Epoch هيعمل حوالي 312 تحديث (10,000 ÷ 32). لو كبّرت الدفعة لـ 128، التحديثات هتقل لـ 78 بس كل تحديث هيكون أدق.
مصطلحات مرتبطة
- الحقبة (Epoch)
- معدل التعلم (Learning Rate)
- تجميع التدرجات (Gradient Accumulation)
- المُحسّن (Optimizer)
قرمصيص للأخبار أخبار الذكاء الاصطناعي بالعربي