تكامل MLflow لـ Ultralytics YOLO
مقدمة
يعد تسجيل التجارب جانبًا حاسمًا في مهام سير عمل تعلم الآلة الذي يتيح تتبع المقاييس والمعلمات والنتائج المختلفة. فهو يساعد على تحسين إمكانية إعادة إنتاج النموذج وتصحيح المشكلات وتحسين أداء النموذج. تقدم Ultralytics YOLO، المعروفة بقدرات اكتشاف الكائنات في الوقت الفعلي، الآن تكاملًا مع MLflow، وهي منصة مفتوحة المصدر لإدارة دورة حياة تعلم الآلة الكاملة.
صفحة الوثائق هذه هي دليل شامل لإعداد واستخدام إمكانات تسجيل MLflow لمشروع Ultralytics YOLO الخاص بك.
ما هو MLflow؟
MLflow عبارة عن نظام أساسي مفتوح المصدر تم تطويره بواسطة Databricks لإدارة دورة حياة تعلم الآلة الشاملة. يتضمن أدوات لتتبع التجارب وتعبئة التعليمات البرمجية في عمليات تشغيل قابلة للتكرار ومشاركة ونشر النماذج. تم تصميم MLflow للعمل مع أي مكتبة لتعلم الآلة ولغة برمجة.
الميزات
- تسجيل المقاييس: يسجل المقاييس في نهاية كل حقبة وفي نهاية التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في التدريب.
- تسجيل النتائج: يسجل نتائج النموذج، بما في ذلك الأوزان وملفات التكوين، في نهاية التدريب.
الإعداد والمتطلبات الأساسية
تأكد من تثبيت 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()
إذا كنت تفضل استخدام واجهة سطر الأوامر، فستسمح لك الأوامر التالية بتعديل إعداداتك:
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo 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'. لتحديد URI مختلف، قم بتعيينMLFLOW_TRACKING_URI
متغير البيئة. -
إيقاف مثيلات خادم MLflow: لإيقاف جميع مثيلات MLflow قيد التشغيل، قم بتشغيل:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
تسجيل البيانات
تتولى وظائف on_pretrain_routine_end
, on_fit_epoch_end
، و on_train_end
دوال الاستدعاء. يتم استدعاء هذه الدوال تلقائيًا خلال المراحل الخاصة بعملية التدريب، وهي تعالج تسجيل المعلمات والمقاييس والنتائج.
أمثلة
-
تسجيل المقاييس المخصصة: يمكنك إضافة مقاييس مخصصة ليتم تسجيلها عن طريق تعديل قاموس
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
للمزيد من المعلومات، راجع دليل الإعدادات.
تحديث إعدادات Ultralytics MLflow
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
أخيرًا، ابدأ خادم MLflow محلي للتتبع:
mlflow server --backend-store-uri runs/mlflow
ما هي المقاييس والمعلمات التي يمكنني تسجيلها باستخدام MLflow مع Ultralytics YOLO؟
يدعم Ultralytics YOLO مع MLflow تسجيل مختلف المقاييس والمعلمات والنتائج طوال عملية التدريب:
- تسجيل المقاييس: يتتبع المقاييس في نهاية كل حقبة (epoch) وعند الانتهاء من التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في عملية التدريب.
- تسجيل النتائج: يحفظ نتائج النموذج مثل الأوزان وملفات التكوين بعد التدريب.
لمزيد من المعلومات التفصيلية، قم بزيارة وثائق تتبع 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.