تكامل MLflow مع Ultralytics YOLO
مقدمة
يعد تسجيل التجارب جانبًا حيويًا في سير عمل تعلم الآلة الذي يتيح تتبع المقاييس والمعاملات والأدوات المختلفة. فهو يساعد في تعزيز قابلية تكرار النموذج، وتصحيح المشكلات، وتحسين أداء النموذج. يوفر Ultralytics YOLO، المعروف بقدراته على اكتشاف الكائنات في الوقت الفعلي، الآن تكاملاً مع MLflow، وهي منصة مفتوحة المصدر لإدارة دورة حياة تعلم الآلة بشكل كامل.
صفحة التوثيق هذه هي دليل شامل لإعداد واستخدام إمكانيات تسجيل MLflow لمشروع Ultralytics YOLO الخاص بك.
ما هو MLflow؟
MLflow هي منصة مفتوحة المصدر طورتها Databricks لإدارة دورة حياة تعلم الآلة من البداية إلى النهاية. وهي تتضمن أدوات لتتبع التجارب، وتعبئة التعليمات البرمجية في عمليات تشغيل قابلة للتكرار، ومشاركة النماذج ونشرها. صُممت MLflow للعمل مع أي مكتبة تعلم آلة ولغة برمجة.
الميزات
- تسجيل المقاييس: يسجل المقاييس في نهاية كل حقبة (epoch) وفي نهاية التدريب.
- تسجيل المعاملات: يسجل جميع المعاملات المستخدمة في التدريب.
- تسجيل الأدوات: يسجل أدوات النموذج، بما في ذلك ملفات الأوزان والتكوين، في نهاية التدريب.
الإعداد والمتطلبات الأساسية
تأكد من تثبيت MLflow. إذا لم يكن كذلك، قم بتثبيته باستخدام pip:
pip install mlflowتأكد من تمكين تسجيل MLflow في إعدادات Ultralytics. عادةً ما يتم التحكم في هذا بواسطة مفتاح الإعدادات mlflow. راجع صفحة الإعدادات لمزيد من المعلومات.
داخل بيئة Python، قم باستدعاء الأسلوب update على كائن settings لتغيير إعداداتك:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
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: لإيقاف جميع مثيلات MLflow قيد التشغيل، قم بتشغيل:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
التسجيل (Logging)
The logging is taken care of by the on_pretrain_routine_end, on_fit_epoch_end, and on_train_end callback functions. These functions are automatically called during the respective stages of the training process, and they handle the logging of parameters, metrics, and artifacts.
أمثلة
-
تسجيل مقاييس مخصصة: يمكنك إضافة مقاييس مخصصة ليتم تسجيلها عن طريق تعديل قاموس
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 مع Ultralytics YOLO، تحتاج أولاً إلى التأكد من تثبيت MLflow. يمكنك تثبيته باستخدام pip:
pip install mlflowبعد ذلك، قم بتمكين تسجيل MLflow في إعدادات Ultralytics. يمكن التحكم في هذا باستخدام مفتاح mlflow. لمزيد من المعلومات، راجع دليل الإعدادات.
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()أخيرًا، ابدأ خادم MLflow محلي للتتبع:
mlflow server --backend-store-uri runs/mlflowما هي المقاييس والمعاملات التي يمكنني تسجيلها باستخدام MLflow مع Ultralytics YOLO؟
يدعم Ultralytics YOLO مع MLflow تسجيل مقاييس ومعاملات وأدوات متنوعة خلال عملية التدريب:
- تسجيل المقاييس: يتتبع المقاييس في نهاية كل حقبة وعند اكتمال التدريب.
- تسجيل المعاملات: يسجل جميع المعاملات المستخدمة في عملية التدريب.
- تسجيل الأدوات: يحفظ أدوات النموذج مثل الأوزان وملفات التكوين بعد التدريب.
لمزيد من المعلومات التفصيلية، تفضل بزيارة توثيق تتبع Ultralytics YOLO.
هل يمكنني تعطيل تسجيل MLflow بمجرد تمكينه؟
نعم، يمكنك تعطيل تسجيل MLflow لـ Ultralytics YOLO عن طريق تحديث الإعدادات. إليك كيفية القيام بذلك باستخدام CLI:
yolo settings mlflow=Falseلمزيد من التخصيص وإعادة تعيين الإعدادات، راجع دليل الإعدادات.
كيف يمكنني بدء وإيقاف خادم MLflow لتتبع Ultralytics YOLO؟
لبدء خادم MLflow لتتبع تجاربك في Ultralytics YOLO، استخدم الأمر التالي:
mlflow server --backend-store-uri runs/mlflowيبدأ هذا الأمر خادمًا محليًا على http://127.0.0.1:5000 افتراضيًا. إذا كنت بحاجة إلى إيقاف مثيلات خادم MLflow قيد التشغيل، فاستخدم أمر bash التالي:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9راجع قسم الأوامر لمزيد من خيارات الأوامر.
ما هي فوائد دمج MLflow مع Ultralytics YOLO لتتبع التجارب؟
يوفر دمج MLflow مع Ultralytics YOLO العديد من الفوائد لإدارة تجارب تعلم الآلة الخاصة بك:
- تتبع محسّن للتجارب: تتبع ومقارنة عمليات التشغيل المختلفة ونتائجها بسهولة.
- تحسين قابلية تكرار النموذج: تأكد من أن تجاربك قابلة للتكرار عن طريق تسجيل جميع المعاملات والأدوات.
- مراقبة الأداء: تصور مقاييس الأداء بمرور الوقت لاتخاذ قرارات مبنية على البيانات لتحسين النموذج.
- سير عمل مبسط: أتمتة عملية التسجيل للتركيز أكثر على تطوير النموذج بدلاً من التتبع اليدوي.
- تطوير تعاوني: شارك نتائج التجارب مع أعضاء الفريق لتعاون أفضل ومشاركة المعرفة.
للحصول على نظرة متعمقة حول إعداد والاستفادة من MLflow مع Ultralytics YOLO، استكشف توثيق تكامل MLflow مع Ultralytics YOLO.