تكامل MLflow مع Ultralytics YOLO#
مقدمة#
يُعد تسجيل التجارب جانبًا أساسيًا من سير عمل تعلم الآلة، إذ يتيح تتبع مختلف المقاييس والمعاملات والملفات الناتجة. ويساعد ذلك على تعزيز قابلية إعادة إنتاج النموذج، وتصحيح المشكلات، وتحسين أداء النموذج. ويوفر Ultralytics YOLO، المعروف بقدراته على كشف الكائنات في الوقت الفعلي، الآن تكاملًا مع MLflow، وهي منصة مفتوحة المصدر لإدارة دورة حياة تعلم الآلة كاملةً.
تقدم صفحة الوثائق هذه دليلًا شاملًا لإعداد إمكانات التسجيل في MLflow واستخدامها في مشروع Ultralytics YOLO.
ما MLflow؟#
MLflow منصة مفتوحة المصدر طوّرتها Databricks لإدارة دورة حياة تعلم الآلة من البداية إلى النهاية. وتتضمن أدوات لتتبع التجارب، وتغليف الشيفرة في عمليات تشغيل قابلة لإعادة الإنتاج، ومشاركة النماذج ونشرها. صُممت MLflow للعمل مع أي مكتبة لتعلم الآلة وأي لغة برمجة.
الميزات#
- تسجيل المقاييس: يسجّل معدلات التعلم وخسائر التدريب ومقاييس التحقق في نهاية كل حقبة تدريب.
- تسجيل المعاملات: يسجّل جميع المعاملات المستخدمة في التدريب.
- تسجيل الملفات الناتجة: يسجّل ملفات النموذج الناتجة، بما فيها الأوزان وملفات الإعداد، في نهاية التدريب.
الإعداد والمتطلبات الأساسية#
تأكد من تثبيت MLflow. وإذا لم يكن مثبتًا، فثبّته باستخدام pip:
pip install mlflowتأكد من تفعيل تسجيل MLflow في إعدادات Ultralytics. ويُتحكم بذلك عادةً باستخدام المفتاح mlflow في الإعدادات. راجع صفحة الإعدادات لمزيد من المعلومات.
في بيئة Python، استدعِ الدالة update على الكائن settings لتغيير إعداداتك:
from ultralytics import settings
# تحديث أحد الإعدادات
settings.update({"mlflow": True})
# إعادة تعيين الإعدادات إلى القيم الافتراضية
settings.reset()طريقة الاستخدام#
الأوامر#
-
تعيين اسم المشروع: يمكنك تعيين اسم المشروع عبر متغير بيئة:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEأو استخدم الوسيطة
project=<project>عند تدريب نموذج YOLO، مثلyolo train project=my_project. -
تعيين اسم التشغيل: على غرار تعيين اسم المشروع، يمكنك تعيين اسم التشغيل عبر متغير بيئة:
export MLFLOW_RUN=YOUR_RUN_NAMEأو استخدم الوسيطة
name=<name>عند تدريب نموذج YOLO، مثلyolo train project=my_project name=my_name. -
بدء خادم MLflow محلي: لبدء التتبع، استخدم:
mlflow server --backend-store-uri runs/mlflowسيبدأ هذا خادمًا محليًا على
http://127.0.0.1:5000افتراضيًا، وسيحفظ جميع سجلات mlflow في المجلد 'runs/mlflow'. لتوجيه عمليات التدريب إلى خادم تتبع مختلف، صدّرMLFLOW_TRACKING_URIقبل التدريب:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
إبقاء تشغيل MLflow نشطًا بعد التدريب: تنهي Ultralytics تشغيل MLflow تلقائيًا عند انتهاء التدريب افتراضيًا. لإبقاء التشغيل مفتوحًا (مثلًا، لتسجيل مقاييس أو ملفات ناتجة إضافية من دفتر الملاحظات نفسه)، عيّن
MLFLOW_KEEP_RUN_ACTIVEإلىTrueقبل التدريب:export MLFLOW_KEEP_RUN_ACTIVE=Trueتتيح القيم
1وtrueوyesوonوyوtهذا السلوك (مع تجاهل حالة الأحرف). وأي قيمة أخرى، بما فيها عدم تعيين المتغير، تُبقي السلوك الافتراضي المتمثل في إغلاق التشغيل. تذكّر إغلاقه يدويًا بعد ذلك باستخدامmlflow.end_run().
التسجيل#
تتولى دوال الاستدعاء on_pretrain_routine_end وon_train_epoch_end وon_fit_epoch_end وon_train_end وظيفة التسجيل. وتُستدعى هذه الدوال تلقائيًا أثناء المراحل المعنية من عملية التدريب، وتتولى تسجيل المعلمات والمقاييس والعناصر الأثرية.
أمثلة#
-
تسجيل المقاييس المخصصة: يمكنك إضافة مقاييس مخصصة لتسجيلها من خلال تعديل القاموس
trainer.metricsقبل استدعاءon_fit_epoch_end. -
عرض التجربة: لعرض السجلات، انتقل إلى خادم MLflow (عادةً
http://127.0.0.1:5000) وحدد التجربة والتشغيل.
-
عرض التشغيل: عمليات التشغيل هي نماذج فردية ضمن تجربة. انقر على تشغيل للاطلاع على تفاصيله، بما في ذلك العناصر الأثرية المرفوعة وأوزان النموذج.

تعطيل MLflow#
لإيقاف تسجيل MLflow:
yolo settings mlflow=Falseالخلاصة#
يوفر تكامل تسجيل MLflow مع Ultralytics YOLO طريقة مبسطة لتتبّع تجارب تعلّم الآلة. ويتيح لك مراقبة مقاييس الأداء وإدارة العناصر الأثرية بفاعلية، مما يساعد على تطوير النماذج ونشرها بصورة موثوقة. لمزيد من التفاصيل، يُرجى زيارة الوثائق الرسمية لـ MLflow.
الأسئلة الشائعة#
لإعداد تسجيل MLflow مع Ultralytics YOLO، عليك أولًا التأكد من تثبيت MLflow. يمكنك تثبيته باستخدام pip:
pip install mlflowبعد ذلك، فعّل تسجيل MLflow في إعدادات Ultralytics. ويمكن التحكم بذلك باستخدام المفتاح
mlflow. لمزيد من المعلومات، راجع دليل الإعدادات.تحديث إعدادات MLflow في Ultralyticsfrom ultralytics import settings # تحديث أحد الإعدادات settings.update({"mlflow": True}) # إعادة تعيين الإعدادات إلى القيم الافتراضية settings.reset()أخيرًا، ابدأ خادم MLflow محليًا للتتبّع:
mlflow server --backend-store-uri runs/mlflowيدعم Ultralytics YOLO مع MLflow تسجيل مقاييس ومعلمات وعناصر أثرية متنوعة طوال عملية التدريب:
- تسجيل المقاييس: يتتبّع المقاييس في نهاية كل حقبة وعند اكتمال التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في عملية التدريب.
- تسجيل العناصر الأثرية: يحفظ عناصر النموذج الأثرية، مثل الأوزان وملفات الإعدادات، بعد التدريب.
لمزيد من المعلومات التفصيلية، تفضل بزيارة وثائق تتبّع Ultralytics YOLO.
نعم، يمكنك تعطيل تسجيل MLflow في Ultralytics YOLO من خلال تحديث الإعدادات. إليك طريقة تنفيذ ذلك باستخدام CLI:
yolo settings mlflow=Falseلمزيد من التخصيص وإعادة ضبط الإعدادات، راجع دليل الإعدادات.
لبدء تشغيل خادم MLflow لتتبّع تجاربك في Ultralytics YOLO، استخدم الأمر التالي:
mlflow server --backend-store-uri runs/mlflowيبدأ هذا الأمر خادمًا محليًا على
http://127.0.0.1:5000افتراضيًا. اضغطCtrl+Cفي تلك الطرفية لإيقافه.راجع قسم الأوامر للاطلاع على مزيد من خيارات الأوامر.
عيّن متغير البيئة
MLFLOW_KEEP_RUN_ACTIVEإلىTrueقبل التدريب:export MLFLOW_KEEP_RUN_ACTIVE=Trueالقيمة الافتراضية هي
False، لذا يستدعي Ultralyticsmlflow.end_run()عند اكتمال التدريب. أما باستخدامMLFLOW_KEEP_RUN_ACTIVE=True، فيظل التشغيل مفتوحًا لتتمكن من تسجيل مقاييس أو معلمات أو عناصر أثرية إضافية من جلسة Python نفسها — وأغلقه بنفسك باستخدامmlflow.end_run()عند الانتهاء. تتيح القيم1وtrueوyesوonوyوtهذا السلوك (مع تجاهل حالة الأحرف).يوفر دمج MLflow مع Ultralytics YOLO فوائد عديدة لإدارة تجارب تعلّم الآلة:
- تعزيز تتبّع التجارب: تتبّع عمليات التشغيل المختلفة ونتائجها وقارن بينها بسهولة.
- تحسين قابلية إعادة إنتاج النماذج: تأكد من إمكانية إعادة إنتاج تجاربك بتسجيل جميع المعلمات والعناصر الأثرية.
- مراقبة الأداء: اعرض مقاييس الأداء بمرور الوقت لاتخاذ قرارات مستندة إلى البيانات لتحسين النماذج.
- تبسيط سير العمل: أتمت تسجيل البيانات للتركيز أكثر على تطوير النماذج بدلًا من التتبّع اليدوي.
- التطوير التعاوني: شارك نتائج التجارب مع أعضاء الفريق لتعزيز التعاون وتبادل المعرفة.
للاطلاع المتعمق على إعداد MLflow واستخدامه مع Ultralytics YOLO، استكشف وثائق تكامل MLflow مع Ultralytics YOLO.