Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

حجم الدفعة

تعرف على كيفية تأثير حجم الدفعة على سرعة ودقة تدريب التعلم الآلي. استكشف قيود الأجهزة وحسّن Ultralytics باستخدام AutoBatch.

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

ديناميكيات التدريب باستخدام الدفعات

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

  • أحجام الدفعات الصغيرة: يؤدي استخدام عدد صغير (على سبيل المثال، 8 أو 16) إلى تحديثات "مضطربة". في حين أن تقدير التدرج أقل دقة بالنسبة لمجموعة البيانات ككل، إلا أن هذا الاضطراب يمكن أن يساعد النموذج في بعض الأحيان على تجنب الحد الأدنى المحلي، مما قد يؤدي إلى تعميم أفضل. ومع ذلك، تتطلب الدفعات الأصغر المزيد من التحديثات لكل حقبة، مما قد يؤدي إلى إبطاء التدريب من حيث الوقت الفعلي بسبب العبء الإضافي.
  • أحجام الدُفعات الكبيرة: توفر الدُفعة الأكبر (على سبيل المثال، 128 أو 256) تقديرًا أكثر دقة للمنحدر ، مما يؤدي إلى تقارب أكثر سلاسة لوظيفة الخسارة. وهي تسمح بالتوازي الهائل على الأجهزة الحديثة، مما يسرع الحساب بشكل كبير. ومع ذلك، إذا كانت الدفعة كبيرة جدًا، فقد يستقر النموذج عند أدنى مستويات حادة دون المستوى الأمثل، مما يؤدي إلى التكيف المفرط وتقليل القدرة على التعميم على البيانات الجديدة .

تأثيرات الأجهزة والذاكرة

غالبًا ما يتعين على الممارسين اختيار حجم الدفعة بناءً على قيود الأجهزة بدلاً من التفضيل النظري البحت. يتم تخزين نماذج التعلم العميق، خاصةً البنى الكبيرة مثل المحولات أو الشبكات التلافيفية المتقدمة، في ذاكرة VRAM الخاصة بـ GPU.

عند استخدام NVIDIA CUDA للتسريع، يجب أن تحتفظ ذاكرة VRAM بمعلمات النموذج ومجموعة بيانات الإدخال ومخرجات التنشيط الوسيطة اللازمة لحساب التدرج. إذا تجاوز حجم المجموعة الذاكرة المتاحة، فسوف يتعطل التدريب مع ظهور خطأ "نفاد الذاكرة" (OOM). غالبًا ما يتم استخدام تقنيات مثل التدريب بالدقة المختلطة لتقليل استخدام الذاكرة، مما يسمح بأحجام مجموعات أكبر على نفس الأجهزة.

التمييز بين المفاهيم ذات الصلة

لتكوين التدريب بشكل فعال، من الضروري التمييز بين حجم الدفعة والمصطلحات الزمنية الأخرى في حلقة التدريب .

  • حجم الدفعة مقابل الحقبة: تمثل الحقبة مرورًا كاملاً عبر مجموعة بيانات التدريب بأكملها. يحدد حجم الدفعة عدد الأجزاء التي يتم تقسيم البيانات إليها داخل تلك الحقبة. على سبيل المثال، إذا كان لديك 1000 صورة وحجم دفعة 100، فسوف يستغرق الأمر 10 تكرارات لإكمال حقبة واحدة.
  • حجم الدفعة مقابل التكرار: التكرار (أو الخطوة) هو عملية معالجة دفعة واحدة وتحديث الأوزان. العدد الإجمالي للتكرارات في التدريب هو عدد الدفعات لكل حقبة مضروبًا في العدد الإجمالي للحقبة.
  • حجم الدفعة مقابل تطبيع الدفعة: على الرغم من تشابه الاسمين، فإن تطبيع الدفعة هو نوع محدد من الطبقات يعمل على تطبيع مدخلات الطبقة بناءً على المتوسط والتباين للدفعة الحالية. تعتمد هذه التقنية بشكل كبير على حجم الدفعة؛ فإذا كان حجم الدفعة صغيرًا جدًا (على سبيل المثال، 2)، تصبح التقديرات الإحصائية غير موثوقة، مما قد يؤدي إلى تدهور الأداء.

تطبيقات واقعية

يعد تعديل حجم الدفعة ضرورة روتينية عند نشر حلول الرؤية الحاسوبية في مختلف الصناعات.

  1. التصوير الطبي عالي الدقة: في مجال الذكاء الاصطناعي في الرعاية الصحية، غالبًا ما يعمل الممارسون مع بيانات حجمية ثلاثية الأبعاد مثل التصوير بالرنين المغناطيسي أو الأشعة المقطعية. هذه الملفات كثيفة للغاية وتستهلك الكثير من الذاكرة. للقيام بمهام مثل تحليل الصور الطبية أو تقسيم الصور المعقدة دون تعطل النظام، غالبًا ما يقلل المهندسون حجم الدفعة إلى عدد صغير جدًا، وأحيانًا إلى دفعة واحدة. هنا، تكون الأولوية هي معالجة التفاصيل عالية الدقة بدلاً من سرعة التدريب الأولية.
  2. مراقبة الجودة الصناعية: على العكس من ذلك، في الذكاء الاصطناعي في التصنيع، السرعة هي الأهم. تحتاج الأنظمة الآلية التي تفحص المنتجات على حزام ناقل إلى معالجة آلاف الصور في الساعة. أثناء الاستدلال، قد يقوم المهندسون بتجميع موجات الكاميرا الواردة في مجموعات أكبر لتعظيم الاستفادة من أجهزة الذكاء الاصطناعي المتطورة، مما يضمن إنتاجية عالية للكشف عن العيوب في الوقت الفعلي .

تكوين حجم الدفعة في Python

عند استخدام حزمة Ultralytics Python، فإن تعيين حجم الدفعة أمر بسيط. يمكنك تحديد عدد صحيح ثابت أو استخدام batch=-1 الإعداد، الذي يستخدم ال ميزة الدُفعات التلقائية لحساب الحجم الأقصى للدفعة التي يمكن لأجهزتك التعامل معها بأمان.

يوضح المثال التالي كيفية تدريب نموذج YOLO26— أحدث معيار للسرعة والدقة — باستخدام إعداد دفعة محدد.

from ultralytics import YOLO

# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")

# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)

لإدارة التجارب واسعة النطاق وتصور كيفية تأثير أحجام الدُفعات المختلفة على مقاييس التدريب، توفر أدوات مثل Ultralytics بيئة شاملة لتسجيل ومقارنة عمليات التشغيل. غالبًا ما يكون ضبط المعلمات الفائقة لحجم الدُفعة الخطوة الأخيرة في الحصول على أفضل أداء من النموذج.

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن