تكامل MLflow مع Ultralytics YOLO#
مقدمة#
يُعد تسجيل التجارب جانباً حيوياً في سير عمل تعلُّم الآلة والذي يتيح تتبع مختلف المقاييس والمؤشرات والمعلمات والعناصر. فهو يساعد في تعزيز إمكانية إعادة إنتاج النماذج، وتصحيح الأخطاء، وتحسين أداء النموذج. يقدم Ultralytics YOLO، المعروف بقدراته على اكتشاف الكائنات في الوقت الفعلي، تكاملاً الآن مع MLflow، وهي منصة مفتوحة المصدر للإدارة الشاملة لدورة حياة تعلُّم الآلة.
صفحة التوثيق هذه هي دليل شامل لإعداد واستخدام قدرات التسجيل في MLflow لمشروع Ultralytics YOLO الخاص بك.
ما هو MLflow؟#
MLflow هي منصة مفتوحة المصدر تم تطويرها بواسطة Databricks لإدارة دورة حياة تعلُّم الآلة من البداية إلى النهاية. وهي تتضمن أدوات لتتبع التجارب، وتغليف الكود في عمليات تشغيل قابلة لإعادة الإنتاج، ومشاركة النماذج ونشرها. تم تصميم MLflow لتعمل مع أي مكتبة لتعلُّم الآلة ولغة برمجة.
المميزات#
- تسجيل المقاييس: يسجل المقاييس في نهاية كل حقبة (epoch) وفي نهاية التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في التدريب.
- تسجيل النتائج: يسجل نتائج النموذج، بما في ذلك الأوزان وملفات التكوين، في نهاية التدريب.
الإعداد والمتطلبات الأساسية#
تأكد من تثبيت MLflow. إذا لم يكن مثبتًا، فقم بتثبيته باستخدام pip:
pip install mlflowتأكد من تمكين تسجيل MLflow في إعدادات Ultralytics. عادةً ما يتم التحكم في ذلك بواسطة مفتاح الإعدادات mlflow. راجع صفحة الإعدادات لمزيد من المعلومات.
داخل بيئة Python، استدعِ الطريقة update على الكائن settings لتغيير إعداداتك:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()كيفية الاستخدام#
الأوامر#
-
تعيين اسم للمشروع: يمكنك تعيين اسم المشروع عبر متغير بيئة:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEأو استخدم الوسيط
project=<project>عند تدريب نموذج YOLO، أيyolo train project=my_project. -
تعيين اسم لعملية التشغيل (Run): على غرار تعيين اسم المشروع، يمكنك تعيين اسم عملية التشغيل عبر متغير بيئة:
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'. لتوجيه عمليات التدريب الخاصة بك إلى خادم تتبع مختلف، قم بتصديرMLFLOW_TRACKING_URIقبل التدريب:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
إبقاء تشغيل 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. يتم استدعاء هذه الدوال تلقائياً خلال المراحل المقابلة لعملية التدريب، وهي تتعامل مع تسجيل المعلمات والمقاييس والعناصر.
أمثلة#
-
تسجيل المقاييس المخصصة: يمكنك إضافة مقاييس مخصصة ليتم تسجيلها عن طريق تعديل القاموس
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. يمكنك تثبيته باستخدام pip:
pip install mlflowبعد ذلك، قم بتفعيل تسجيل MLflow في إعدادات Ultralytics. يمكن التحكم في ذلك باستخدام المفتاح
mlflow. لمزيد من المعلومات، راجع دليل الإعدادات.تحديث إعدادات MLflow في Ultralyticsfrom 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، لذا تستدعي Ultralyticsmlflow.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.