استكشف الدور الأساسي لـ callbacks في تعلم الآلة - وهي أدوات تراقب وتتحكم وتؤتمت تدريب النموذج لتحسين الدقة والمرونة والكفاءة.
في التعلّم الآلي (ML)، رد الاتصال هو دالة متعددة الاستخدامات أو كتلة من التعليمات البرمجية المصممة للتشغيل تلقائيًا في مراحل محددة من عملية الحوسبة. ضمن سياق تدريب الشبكات العصبية (NN), تعمل عمليات إعادة الاستدعاء ك "خطافات" تتفاعل مع دورة حياة التدريب لتنفيذ إجراءات مثل تسجيل المقاييس أو حفظ النتائج الوسيطة أو ضبط معلمات التحكم. من خلال فصل هذه المهام المساعدة عن حلقة التدريب الرئيسية الرئيسية، يمكن للمطورين إنشاء مهام سير عمل معيارية وقابلة للقراءة وقابلة للتخصيص بشكل كبير دون تعديل الخوارزمية الأساسية.
تكرر عملية التدريب النموذجية على مجموعة بيانات لمجموعة من من التمريرات، والمعروفة باسم الحقب الزمنية. خلال هذه الدورة، يقوم النظام يقوم النظام بتمريرات أمامية لعمل تنبؤات و والترحيل العكسي لتحديث أوزان النموذج. تتدخل عمليات الاستدعاء عند "أحداث" محددة مسبقًا "الأحداث" المحددة مسبقًا ضمن هذه الحلقة - مثل بداية التدريب، أو نهاية الدفعة أو اكتمال حقبة زمنية.
يقوم كائن المدرب في أطر مثل Ultralytics يدير هذه الأحداث. عند وقوع حدث معين، يقوم المدرّب بتنفيذ أي دوال رد استدعاء مسجّلة، ويمرر لهم الحالة الحالية للنموذج. هذه الآلية أساسية في الحديثة، مما يتيح إمكانية إمكانية المراقبة والتدخل الآلي.
لا يمكن الاستغناء عن عمليات الاسترجاع لتحسين الأداء واستخدام الموارد في التعلم العميق (DL).
إن ultralytics واجهة برمجة تطبيقات مباشرة لإرفاق عمليات الاسترجاع المخصصة بنماذج مثل
YOLO11. يسمح ذلك للمستخدمين بإدخال منطق محدد، مثل
طباعة تحديثات الحالة أو التفاعل مع واجهات برمجة التطبيقات الخارجية، مباشرةً في خط أنابيب التدريب.
يوضح المثال التالي كيفية إضافة رد استدعاء بسيط يطبع رسالة تأكيد في نهاية كل حقبة تدريبية:
from ultralytics import YOLO
def on_train_epoch_end(trainer):
"""Callback function to print the current epoch number after it finishes."""
print(f"Custom Callback: Epoch {trainer.epoch + 1} completed successfully.")
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Register the custom callback for the 'on_train_epoch_end' event
model.add_callback("on_train_epoch_end", on_train_epoch_end)
# Train the model with the registered callback
model.train(data="coco8.yaml", epochs=2)
لاستخدام عمليات الاستدعاء بفعالية، من المفيد تمييزها عن المصطلحات المماثلة في هندسة البرمجيات و وعلم البيانات.
يُترجم استخدام عمليات إعادة الاستدعاء مباشرةً إلى المزيد من القوة والفعالية وكلاء وتطبيقات الذكاء الاصطناعي. على سبيل المثال، في المركبات ذاتية القيادة، تتطلب نماذج التدريب معالجة كميات هائلة من بيانات المستشعرات. تسمح عمليات الاستدعاء للمهندسين بالتقاط النماذج التي تحقق أفضل أداء تلقائيًا في حالات الحافة الصعبة دون مراقبة يدوية. وبالمثل، في تحليل الصور الطبية، يمكن لعمليات الاستدعاء إطلاق تنبيهات أو تسجيل مكثف إذا بدأ النموذج في حفظ بيانات المريض (الإفراط في التهيئة) بدلاً من تعلم ميزات قابلة للتعميم، مما يضمن موثوقية عالية للنشر السريري.
من خلال الاستفادة من عمليات الاسترداد، يمكن للمطورين الذين يستخدمون أطر عمل مثل PyTorch أو TensorFlow بناء أنظمة ذاتية التنظيم توفر الوقت، وتقليل الأخطاء، وتعظيم أداء حلول الرؤية الحاسوبية (CV).