حجم الدفعة
اكتشف تأثير حجم الدفعة على التعلم العميق. قم بتحسين سرعة التدريب واستخدام الذاكرة وأداء النموذج بكفاءة.
حجم الدُفعة هو معامل فائق أساسي في التعلم الآلي يحدد عدد عينات التدريب التي تتم معالجتها قبل تحديث المعلمات الداخلية للنموذج. بدلاً من معالجة مجموعة بيانات التدريب بأكملها مرة واحدة، وهو ما قد يكون باهظ التكلفة من الناحية الحسابية، يتم تقسيم البيانات إلى مجموعات فرعية أصغر أو "دُفعات". يعد اختيار حجم الدُفعة قرارًا حاسمًا يؤثر بشكل مباشر على ديناميكيات تعلم النموذج وسرعة التدريب والأداء النهائي. إنه يمثل مفاضلة بين الكفاءة الحسابية ودقة تقدير التدرج المستخدم لتحديث أوزان النموذج.
دور حجم الدُفعة في تدريب النماذج
أثناء التدريب، تتعلم الشبكة العصبية (NN) عن طريق تعديل أوزانها بناءً على الخطأ الذي ترتكبه. يتم توجيه هذا التعديل بواسطة خوارزمية تحسين مثل تدرج النزول. يحدد حجم الدفعة عدد الأمثلة التي "يراها" النموذج قبل أن يحسب التدرج ويقوم بتحديث الوزن.
- تدرج تنازلي تصادمي (SGD): عندما يكون حجم الدفعة 1، تسمى العملية تدرج تنازلي تصادمي. يتم حساب التدرج لكل عينة فردية، مما يؤدي إلى تحديثات متكررة ولكنها مشوشة.
- انحدار التدرج الدفعي: عندما يساوي حجم الدفعة العدد الإجمالي للعينات في مجموعة بيانات التدريب، يُعرف باسم انحدار التدرج الدفعي. يوفر هذا تقديرًا دقيقًا للغاية للتدرج ولكنه مكلف حسابيًا ويستهلك الكثير من الذاكرة.
- النزول التدريجي المصغر للدُفعة: هذا هو النهج الأكثر شيوعًا، حيث يتم تعيين حجم الدُفعة إلى قيمة بين 1 وإجمالي حجم مجموعة البيانات (على سبيل المثال، 32، 64، 128). إنه يوفر توازنًا بين استقرار النزول التدريجي للدُفعة وكفاءة النزول التدريجي العشوائي.
يؤثر اختيار حجم الدُفعة على عملية التدريب بشكل كبير. يوفر حجم الدُفعة الأكبر تقديرًا أكثر دقة للتدرج، ولكن التكلفة الحسابية لكل تحديث أعلى. وعلى العكس من ذلك، يؤدي حجم الدُفعة الأصغر إلى تقديرات أقل دقة للتدرج ولكنه يسمح بتحديثات أسرع.
اختيار حجم الدفعة المناسب
يعد العثور على حجم الدفعة الأمثل جزءًا أساسيًا من ضبط المعلمات الفائقة ويعتمد على مجموعة البيانات وهندسة النموذج والأجهزة المتاحة.
- أحجام الدُفعات الكبيرة: يمكن لمعالجة المزيد من البيانات في وقت واحد الاستفادة الكاملة من إمكانات المعالجة المتوازية لـ وحدات معالجة الرسومات (GPUs)، مما يؤدي إلى أوقات تدريب أسرع لكل حقبة (epoch). ومع ذلك، فقد أظهرت الأبحاث أن الدُفعات الكبيرة جدًا يمكن أن تؤدي أحيانًا إلى "فجوة في التعميم"، حيث يكون أداء النموذج جيدًا على بيانات التدريب ولكنه ضعيف على البيانات غير المرئية. كما أنها تتطلب ذاكرة كبيرة، مما قد يكون عاملاً مقيدًا.
- أحجام الدُفعات الصغيرة: تتطلب هذه أحجام ذاكرة أقل وغالبًا ما تؤدي إلى تعميم أفضل للنموذج، حيث يمكن أن يساعد التشويش في تحديثات التدرج النموذج على الهروب من الحدود الدنيا المحلية وإيجاد حل أكثر قوة. يمكن أن يساعد ذلك في منع التخصيص الزائد. الجانب السلبي الرئيسي هو أن التدريب أبطأ لأن تحديثات الوزن أكثر تكرارًا ويتم معالجة بيانات أقل بالتوازي.
بالنسبة للعديد من التطبيقات، يوصى بأحجام الدُفعات التي هي قوى للرقم اثنين (مثل 32 و 64 و 128 و 256) لأنها غالبًا ما تتماشى جيدًا مع بنى ذاكرة وحدة معالجة الرسومات (GPU). تسمح أدوات مثل Ultralytics HUB بإجراء تجارب سهلة بأحجام دفعات مختلفة عند تدريب النماذج.
حجم الدُفعة في التدريب مقابل الاستدلال
في حين أن حجم الدفعة هو مفهوم أساسي في التدريب، إلا أنه ينطبق أيضًا على الاستدلال، ولكن لغرض مختلف. أثناء الاستدلال، يتم استخدام التجميع لمعالجة مدخلات متعددة (مثل الصور أو الجمل) في وقت واحد لزيادة الإنتاجية إلى أقصى حد. يشار إلى هذا غالبًا باسم الاستدلال الدفعي.
بالنسبة إلى التطبيقات التي تتطلب نتائج فورية، مثل الاستدلال في الوقت الفعلي في مركبة ذاتية القيادة، يتم استخدام حجم دفعة 1 لتقليل زمن انتقال الاستدلال. في السيناريوهات غير المتصلة بالإنترنت، مثل معالجة مجموعة كبيرة من الصور طوال الليل، يمكن استخدام حجم دفعة أكبر لتحسين الكفاءة.
تطبيقات واقعية
- تحليل التصوير الطبي: عند تدريب نموذج YOLO11 للكشف عن الأورام في الصور الطبية، غالبًا ما تكون الصور عالية الدقة. نظرًا لقيود الذاكرة على وحدة معالجة الرسومات (GPU)، يتم استخدام حجم دفعة صغير (على سبيل المثال، 4 أو 8) بشكل عام. يسمح ذلك بتدريب النموذج على بيانات عالية التفاصيل دون تجاوز الذاكرة المتاحة، مما يضمن تدريبًا مستقرًا.
- مراقبة جودة التصنيع: في الذكاء الاصطناعي في التصنيع، يمكن تدريب نموذج لاكتشاف العيوب في خط تجميع. مع مجموعة بيانات كبيرة من ملايين صور المنتجات، يمكن استخدام حجم دفعة أكبر (على سبيل المثال، 256 أو 512) على مجموعة تدريب موزعة قوية. يؤدي ذلك إلى تسريع عملية التدريب، مما يسمح بتكرار النموذج ونشره بشكل أسرع.
حجم الدُفعة مقابل المصطلحات ذات الصلة
من المهم التمييز بين حجم الدُفعة والمفاهيم الأخرى ذات الصلة:
- حجم الدفعة مقابل الحقبة والتكرار (Batch Size vs. Epoch and Iteration): التكرار (iteration) هو تحديث واحد لأوزان النموذج. الحقبة (epoch) هي تمريرة كاملة واحدة على مجموعة بيانات التدريب بأكملها. عدد التكرارات في الحقبة هو العدد الإجمالي لعينات التدريب مقسومًا على حجم الدفعة.
- حجم الدفعة مقابل تطبيع الدفعة (Batch Normalization): تطبيع الدفعة (BatchNorm) هي تقنية تستخدم داخل طبقة الشبكة العصبية لتوحيد المدخلات لكل دفعة صغيرة. في حين أن فعاليته يمكن أن تتأثر بحجم الدفعة (إنه يعمل بشكل أفضل مع الدفعات الأكبر)، إلا أنه طبقة مميزة في بنية النموذج، وليس معلمة حلقة التدريب. توفر معظم أطر التعلم العميق الحديثة مثل PyTorch و TensorFlow عمليات تنفيذ قوية.