تعرف على كيفية تأثير حجم الدفعة على سرعة ودقة تدريب التعلم الآلي. استكشف قيود الأجهزة وحسّن Ultralytics باستخدام AutoBatch.
في مجال التعلم الآلي و خاصة التعلم العميق، يشير حجم الدفعة إلى عدد أمثلة التدريب المستخدمة في تكرار واحد من تدريب النموذج. بدلاً من إدخال بيانات التدريب بالكامل في الشبكة العصبية دفعة واحدة — وهو أمر مستحيل حسابياً في كثير من الأحيان بسبب قيود الذاكرة — يتم تقسيم مجموعة البيانات إلى مجموعات فرعية أصغر تسمى الدفعات. يقوم النموذج بمعالجة دفعة واحدة، وحساب الخطأ، وتحديث أوزان النموذج الداخلية عبر الانتشار العكسي قبل الانتقال إلى الدفعة التالية. يلعب هذا المعامل الفائق دورًا محوريًا في تحديد سرعة التدريب واستقرار عملية التعلم .
يؤدي اختيار حجم الدفعة إلى تغيير جذري في كيفية قيام خوارزمية التحسين، التي عادة ما تكون نوعًا من الانحدار العشوائي التدرجي، بالتنقل في مشهد الخسارة.
غالبًا ما يتعين على الممارسين اختيار حجم الدفعة بناءً على قيود الأجهزة بدلاً من التفضيل النظري البحت. يتم تخزين نماذج التعلم العميق، خاصةً البنى الكبيرة مثل المحولات أو الشبكات التلافيفية المتقدمة، في ذاكرة VRAM الخاصة بـ GPU.
عند استخدام NVIDIA CUDA للتسريع، يجب أن تحتفظ ذاكرة VRAM بمعلمات النموذج ومجموعة بيانات الإدخال ومخرجات التنشيط الوسيطة اللازمة لحساب التدرج. إذا تجاوز حجم المجموعة الذاكرة المتاحة، فسوف يتعطل التدريب مع ظهور خطأ "نفاد الذاكرة" (OOM). غالبًا ما يتم استخدام تقنيات مثل التدريب بالدقة المختلطة لتقليل استخدام الذاكرة، مما يسمح بأحجام مجموعات أكبر على نفس الأجهزة.
لتكوين التدريب بشكل فعال، من الضروري التمييز بين حجم الدفعة والمصطلحات الزمنية الأخرى في حلقة التدريب .
يعد تعديل حجم الدفعة ضرورة روتينية عند نشر حلول الرؤية الحاسوبية في مختلف الصناعات.
عند استخدام حزمة 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 بيئة شاملة لتسجيل ومقارنة عمليات التشغيل. غالبًا ما يكون ضبط المعلمات الفائقة لحجم الدُفعة الخطوة الأخيرة في الحصول على أفضل أداء من النموذج.
ابدأ رحلتك مع مستقبل تعلم الآلة