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

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
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_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
    
    # Update a setting
    settings.update({"mlflow": True})
    
    # Reset settings to default values
    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.

التعليقات