اكتشف كيف تعمل عمليات الاستدعاء على تحسين تدريب Ultralytics . تعلم كيفية تنفيذ الإيقاف المبكر والتحقق من النقاط المرجعية والتسجيل المخصص لتحسين سير عمل الذكاء الاصطناعي لديك.
في مجال هندسة البرمجيات والذكاء الاصطناعي الذكاء الاصطناعي (AI)، فإن الاستدعاء هو جزء من التعليمات البرمجية القابلة للتنفيذ يتم تمريره كحجة إلى تعليمات برمجية أخرى، والتي من المتوقع أن تنفذ (تستدعي) الحجة في وقت معين. في السياق المحدد أطر عمل التعلم العميق (DL) ، تعد عمليات الاستدعاء أدوات أساسية تسمح للمطورين بتخصيص سلوك تدريب النموذج دورة التدريب دون تعديل رمز التدريب الأساسي نفسه. وهي تعمل كمحفزات آلية تؤدي إجراءات محددة في مراحل مختلفة من عملية التدريب، مثل بداية أو نهاية حقبة، أو دفعة تدريب، أو جلسة التدريب بأكملها.
تدريب شبكة عصبية معقدة شبكة عصبية قد يستغرق ساعات أو حتى أيام. بدون عمليات الاستدعاء، تكون عملية التدريب في الأساس "صندوقًا أسود" يعمل حتى اكتماله، وغالبًا ما يتطلب إشرافًا يدويًا. توفر عمليات الاستدعاء إمكانية المراقبة والتحكم، مما يسمح للنظام بالتنظيم الذاتي بناءً على مقاييس الأداء في الوقت الفعلي.
عند استخدام مكتبات عالية المستوى مثل PyTorch أو TensorFlow، توفر عمليات الاستدعاء طريقة لإدخال المنطق في خوارزمية التحسين. على سبيل المثال، إذا كان النموذج يتعلم جيدًا، فقد يحفظ الاستدعاء الحالة الحالية؛ وإذا توقف عن التعلم، فقد يوقف الاستدعاء العملية لتوفير الموارد. وهذا يجعل عملية التعلم الآلي (ML) أكثر كفاءة وقوة. وقد تم تضمين استدعاءات الرجوع في
الاستدعاءات متعددة الاستخدامات ويمكن استخدامها في مجموعة واسعة من المهام أثناء مراقبة النموذج و التحسين.
تدعم Ultralytics نظام رد اتصال قويًا، مما يسمح للمستخدمين بالارتباط بالأحداث أثناء تدريب نماذج مثل YOLO26. وهذا مفيد بشكل خاص للمستخدمين الذين يديرون سير العمل على Ultralytics الذين يحتاجون إلى تسجيل مخصص أو منطق تحكم.
فيما يلي مثال موجز لكيفية تعريف وتسجيل استدعاء مخصص يقوم بطباعة رسالة في نهاية كل فترة تدريب باستخدام Python :
from ultralytics import YOLO
# Define a custom callback function
def on_train_epoch_end(trainer):
"""Callback function to execute at the end of each training epoch."""
print(f"Epoch {trainer.epoch + 1} complete. Current Fitness: {trainer.fitness}")
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Register the custom callback to the model
model.add_callback("on_train_epoch_end", on_train_epoch_end)
# Train the model with the callback active
model.train(data="coco8.yaml", epochs=3)
على الرغم من الصلة بينهما، من المفيد التمييز بين عمليات الاستدعاء المرتدة وعمليات الاستدعاء الخطافات. في أطر عمل مثل PyTorch تعتبر الخطافات عمومًا وظائف منخفضة المستوى مرتبطة بـ tensor أو طبقات الشبكة العصبية لفحص أو تعديل التدرجات والمخرجات أثناء التمرير الأمامي أو الخلفي. في المقابل، تعتبر عمليات الاستدعاء عادةً تجريدات أعلى مستوى مرتبطة بـ حلقة التدريب أحداث (البدء، النهاية، المعالجة الدفعية) بدلاً من الرسم البياني الحسابي الرياضي نفسه.
بالنسبة لأولئك الذين يرغبون في تعميق فهمهم لكيفية تحسين سير عمل التدريب، فإن استكشاف ضبط المعلمات الفائقة هو الخطوة المنطقية التالية. بالإضافة إلى ذلك، فإن فهم مهام الرؤية الحاسوبية (CV) الأساسية مثل الكشف عن الأشياء و تجزئة المثيلات ستوفر سياقًا حول سبب ضرورة التحكم الدقيق في التدريب عبر عمليات الاستدعاء. لإدارة هذه العمليات على مستوى المؤسسات ، فإن Ultralytics حلولاً متكاملة تعمل على أتمتة العديد من هذه السلوكيات التي تعتمد على عمليات الاستدعاء.