Ultralytics YOLO27:

تكامل MLflow مع Ultralytics YOLO#

MLflow experiment tracking with Ultralytics YOLO

مقدمة#

يُعد تسجيل التجارب جانبًا أساسيًا من سير عمل تعلم الآلة، إذ يتيح تتبع مختلف المقاييس والمعاملات والملفات الناتجة. ويساعد ذلك على تعزيز قابلية إعادة إنتاج النموذج، وتصحيح المشكلات، وتحسين أداء النموذج. ويوفر Ultralytics YOLO، المعروف بقدراته على كشف الكائنات في الوقت الفعلي، الآن تكاملًا مع MLflow، وهي منصة مفتوحة المصدر لإدارة دورة حياة تعلم الآلة كاملةً.

تقدم صفحة الوثائق هذه دليلًا شاملًا لإعداد إمكانات التسجيل في MLflow واستخدامها في مشروع Ultralytics YOLO.

ما MLflow؟#

MLflow منصة مفتوحة المصدر طوّرتها Databricks لإدارة دورة حياة تعلم الآلة من البداية إلى النهاية. وتتضمن أدوات لتتبع التجارب، وتغليف الشيفرة في عمليات تشغيل قابلة لإعادة الإنتاج، ومشاركة النماذج ونشرها. صُممت MLflow للعمل مع أي مكتبة لتعلم الآلة وأي لغة برمجة.

الميزات#

  • تسجيل المقاييس: يسجّل معدلات التعلم وخسائر التدريب ومقاييس التحقق في نهاية كل حقبة تدريب.
  • تسجيل المعاملات: يسجّل جميع المعاملات المستخدمة في التدريب.
  • تسجيل الملفات الناتجة: يسجّل ملفات النموذج الناتجة، بما فيها الأوزان وملفات الإعداد، في نهاية التدريب.

الإعداد والمتطلبات الأساسية#

تأكد من تثبيت MLflow. وإذا لم يكن مثبتًا، فثبّته باستخدام pip:

pip install mlflow

تأكد من تفعيل تسجيل MLflow في إعدادات Ultralytics. ويُتحكم بذلك عادةً باستخدام المفتاح mlflow في الإعدادات. راجع صفحة الإعدادات لمزيد من المعلومات.

تحديث إعدادات MLflow في Ultralytics

في بيئة Python، استدعِ الدالة update على الكائن settings لتغيير إعداداتك:

from ultralytics import settings

# ⁨تحديث أحد الإعدادات⁩
settings.update({"mlflow": True})

# ⁨إعادة تعيين الإعدادات إلى القيم الافتراضية⁩
settings.reset()

طريقة الاستخدام#

الأوامر#

  1. تعيين اسم المشروع: يمكنك تعيين اسم المشروع عبر متغير بيئة:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME

    أو استخدم الوسيطة project=<project> عند تدريب نموذج YOLO، مثل yolo train project=my_project.

  2. تعيين اسم التشغيل: على غرار تعيين اسم المشروع، يمكنك تعيين اسم التشغيل عبر متغير بيئة:

    export MLFLOW_RUN=YOUR_RUN_NAME

    أو استخدم الوسيطة name=<name> عند تدريب نموذج YOLO، مثل yolo train project=my_project name=my_name.

  3. بدء خادم 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
  4. إبقاء تشغيل 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 وظيفة التسجيل. وتُستدعى هذه الدوال تلقائيًا أثناء المراحل المعنية من عملية التدريب، وتتولى تسجيل المعلمات والمقاييس والعناصر الأثرية.

أمثلة#

  1. تسجيل المقاييس المخصصة: يمكنك إضافة مقاييس مخصصة لتسجيلها من خلال تعديل القاموس trainer.metrics قبل استدعاء on_fit_epoch_end.

  2. عرض التجربة: لعرض السجلات، انتقل إلى خادم MLflow (عادةً http://127.0.0.1:5000) وحدد التجربة والتشغيل. MLflow experiment tracking interface for YOLO

  3. عرض التشغيل: عمليات التشغيل هي نماذج فردية ضمن تجربة. انقر على تشغيل للاطلاع على تفاصيله، بما في ذلك العناصر الأثرية المرفوعة وأوزان النموذج. MLflow run details with YOLO artifacts

تعطيل MLflow#

لإيقاف تسجيل MLflow:

yolo settings mlflow=False

الخلاصة#

يوفر تكامل تسجيل MLflow مع Ultralytics YOLO طريقة مبسطة لتتبّع تجارب تعلّم الآلة. ويتيح لك مراقبة مقاييس الأداء وإدارة العناصر الأثرية بفاعلية، مما يساعد على تطوير النماذج ونشرها بصورة موثوقة. لمزيد من التفاصيل، يُرجى زيارة الوثائق الرسمية لـ MLflow.

الأسئلة الشائعة#

  • لإعداد تسجيل MLflow مع Ultralytics YOLO، عليك أولًا التأكد من تثبيت MLflow. يمكنك تثبيته باستخدام pip:

    pip install mlflow

    بعد ذلك، فعّل تسجيل MLflow في إعدادات Ultralytics. ويمكن التحكم بذلك باستخدام المفتاح mlflow. لمزيد من المعلومات، راجع دليل الإعدادات.

    تحديث إعدادات MLflow في Ultralytics
    from 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، لذا يستدعي Ultralytics mlflow.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.

التعليقات