تكامل MLflow مع Ultralytics YOLO#
مقدمة#
يُعد تسجيل التجارب جانبًا بالغ الأهمية في سير عمل تعلّم الآلة، إذ يتيح تتبّع المقاييس والمعلمات والمصنوعات المختلفة. ويساعد ذلك على تعزيز قابلية إعادة إنتاج النماذج، وتصحيح الأخطاء، وتحسين أداء النماذج. ويقدم Ultralytics YOLO، المعروف بقدراته في اكتشاف الكائنات في الوقت الفعلي، تكاملًا مع MLflow، وهي منصة مفتوحة المصدر لإدارة دورة حياة تعلّم الآلة بالكامل.
تُعد صفحة التوثيق هذه دليلًا شاملًا لإعداد إمكانات التسجيل في MLflow لمشروع Ultralytics YOLO واستخدامها.
ما هو MLflow؟#
MLflow منصة مفتوحة المصدر طورتها Databricks لإدارة دورة حياة تعلّم الآلة من البداية إلى النهاية. وهي تتضمن أدوات لتتبّع التجارب، وتغليف التعليمات البرمجية في عمليات تشغيل قابلة لإعادة الإنتاج، ومشاركة النماذج ونشرها. وقد صُمم MLflow للعمل مع أي مكتبة لتعلّم الآلة وأي لغة برمجة.
الميزات#
- تسجيل المقاييس: يسجل المقاييس في نهاية كل حقبة وفي نهاية التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في التدريب.
- تسجيل المصنوعات: يسجل مصنوعات النموذج، بما في ذلك الأوزان وملفات الإعداد، في نهاية التدريب.
الإعداد والمتطلبات الأساسية#
تأكد من تثبيت 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. -
تعيين اسم عملية تشغيل: على غرار تعيين اسم مشروع، يمكنك تعيين اسم عملية التشغيل عبر متغير بيئة:
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 تسجيل مقاييس ومعلمات ومصنوعات متنوعة طوال عملية التدريب:
- تسجيل المقاييس: يتتبّع المقاييس في نهاية كل حقبة وعند اكتمال التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في عملية التدريب.
- تسجيل المصنوعات: يحفظ مصنوعات النموذج، مثل الأوزان وملفات الإعداد، بعد التدريب.
لمزيد من المعلومات التفصيلية، تفضل بزيارة توثيق تتبّع 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.