تكامل MLflow مع Ultralytics YOLO

MLflow experiment tracking with Ultralytics YOLO

مقدمة

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

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

ما هو MLflow؟

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

الميزات

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

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

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

pip install mlflow

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

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

داخل بيئة 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: لإيقاف جميع مثيلات 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.

أمثلة

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

  2. عرض التجربة: لعرض سجلاتك، انتقل إلى خادم MLflow الخاص بك (عادة http://127.0.0.1:5000) وحدد تجربتك وتشغيلك. واجهة تتبع تجارب MLflow لـ YOLO

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

تعطيل MLflow

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

yolo settings mlflow=False

خاتمة

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

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

كيف يمكنني إعداد تسجيل MLflow مع Ultralytics YOLO؟

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

pip install mlflow

بعد ذلك، قم بتمكين تسجيل MLflow في إعدادات Ultralytics. يمكن التحكم في هذا باستخدام مفتاح 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.

التعليقات