رؤية YOLO 2026:

تكامل 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. راجع صفحة الإعدادات لمزيد من المعلومات.

تحديث إعدادات 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. تعيين اسم لعملية التشغيل (Run): على غرار تعيين اسم المشروع، يمكنك تعيين اسم عملية التشغيل عبر متغير بيئة:

    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 تسجيل مختلف المقاييس والمعلمات والنتائج طوال عملية التدريب:

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

    لمزيد من المعلومات التفصيلية، تفضل بزيارة توثيق تتبع 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.

التعليقات