Link to this sectionتكامل MLflow مع Ultralytics YOLO#
Link to this sectionمقدمة#
يعد تسجيل التجارب جانبًا حيويًا في مسارات عمل تعلم الآلة التي تتيح تتبع مختلف المقاييس والمعلمات والنتائج (artifacts). كما يساعد في تعزيز قابلية تكرار النماذج، وتصحيح المشكلات، وتحسين أداء النموذج. يوفر الآن Ultralytics YOLO، المعروف بقدراته على اكتشاف الأجسام في الوقت الفعلي، تكاملاً مع MLflow، وهي منصة مفتوحة المصدر لإدارة دورة حياة تعلم الآلة بالكامل.
صفحة التوثيق هذه هي دليل شامل لإعداد واستخدام قدرات التسجيل في MLflow لمشروع Ultralytics YOLO الخاص بك.
Link to this sectionما هو MLflow؟#
MLflow هي منصة مفتوحة المصدر طورتها Databricks لإدارة دورة حياة تعلم الآلة من البداية إلى النهاية. تتضمن أدوات لتتبع التجارب، وتعبئة التعليمات البرمجية في عمليات تشغيل قابلة للتكرار، ومشاركة النماذج ونشرها. تم تصميم MLflow للعمل مع أي مكتبة تعلم آلة ولغة برمجة.
Link to this sectionالمميزات#
- تسجيل المقاييس: يسجل المقاييس في نهاية كل حقبة (epoch) وفي نهاية التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في التدريب.
- تسجيل النتائج: يسجل نتائج النموذج، بما في ذلك الأوزان وملفات التكوين، في نهاية التدريب.
Link to this sectionالإعداد والمتطلبات الأساسية#
تأكد من تثبيت 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()Link to this sectionكيفية الاستخدام#
Link to this sectionالأوامر#
-
تعيين اسم للمشروع: يمكنك تعيين اسم المشروع عبر متغير بيئة:
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تتم معالجة القيمة دون مراعاة حالة الأحرف؛ فقط السلسلة
trueهي التي تمكّن هذا السلوك، وأي قيمة أخرى (بما في ذلك عدم التعيين) تحافظ على الإعداد الافتراضي بإغلاق العملية. تذكر إغلاقها يدويًا بعد ذلك باستخدامmlflow.end_run(). -
إيقاف مثيلات خادم MLflow: لإيقاف جميع مثيلات MLflow قيد التشغيل، قم بتشغيل:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Link to this sectionالتسجيل#
يتم التعامل مع التسجيل بواسطة دوال الاستدعاء (callback functions) on_pretrain_routine_end وon_fit_epoch_end وon_train_end الموجودة هنا. يتم استدعاء هذه الدوال تلقائيًا خلال المراحل المقابلة لعملية التدريب، وهي تتولى تسجيل المعلمات والمقاييس والنتائج.
Link to this sectionأمثلة#
-
تسجيل مقاييس مخصصة: يمكنك إضافة مقاييس مخصصة ليتم تسجيلها عن طريق تعديل قاموس
trainer.metricsقبل استدعاءon_fit_epoch_end. -
عرض التجربة: لعرض سجلاتك، انتقل إلى خادم MLflow الخاص بك (عادة
http://127.0.0.1:5000) وحدد تجربتك وعملية التشغيل.
-
عرض عملية التشغيل (Run): عمليات التشغيل هي نماذج فردية داخل تجربة. انقر فوق عملية تشغيل واطلع على تفاصيلها، بما في ذلك النتائج التي تم تحميلها وأوزان النموذج.

Link to this sectionتعطيل MLflow#
لإيقاف تسجيل MLflow:
yolo settings mlflow=FalseLink to this sectionالخلاصة#
يوفر تكامل تسجيل MLflow مع Ultralytics YOLO طريقة مبسطة لتتبع تجارب تعلم الآلة. فهو يمنحك القدرة على مراقبة مقاييس الأداء وإدارة النتائج بفعالية، مما يساعد في تطوير ونشر نماذج قوية. لمزيد من التفاصيل، يرجى زيارة التوثيق الرسمي لـ MLflow.
Link to this sectionالأسئلة الشائعة#
Link to this sectionكيف أقوم بإعداد تسجيل MLflow مع Ultralytics YOLO؟#
لإعداد تسجيل MLflow مع Ultralytics YOLO، تحتاج أولاً إلى التأكد من تثبيت MLflow. يمكنك تثبيته باستخدام pip:
pip install mlflowبعد ذلك، قم بتمكين تسجيل 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/mlflowLink to this sectionما هي المقاييس والمعلمات التي يمكنني تسجيلها باستخدام MLflow مع Ultralytics YOLO؟#
يدعم Ultralytics YOLO مع MLflow تسجيل مختلف المقاييس والمعلمات والنتائج طوال عملية التدريب:
- تسجيل المقاييس: يتتبع المقاييس في نهاية كل حقبة وعند اكتمال التدريب.
- تسجيل المعلمات: يسجل جميع المعلمات المستخدمة في عملية التدريب.
- تسجيل النتائج: يحفظ نتائج النموذج مثل الأوزان وملفات التكوين بعد التدريب.
لمزيد من المعلومات التفصيلية، تفضل بزيارة توثيق تتبع Ultralytics YOLO.
Link to this sectionهل يمكنني تعطيل تسجيل MLflow بمجرد تمكينه؟#
نعم، يمكنك تعطيل تسجيل MLflow لـ Ultralytics YOLO عن طريق تحديث الإعدادات. إليك كيفية القيام بذلك باستخدام CLI:
yolo settings mlflow=Falseلمزيد من التخصيص وإعادة تعيين الإعدادات، راجع دليل الإعدادات.
Link to this sectionكيف يمكنني بدء وإيقاف خادم 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ارجع إلى قسم الأوامر لمزيد من خيارات الأوامر.
Link to this sectionكيف أبقي عملية MLflow نشطة بعد انتهاء التدريب؟#
قم بتعيين متغير البيئة 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() عند الانتهاء. تتم معالجة القيمة دون مراعاة حالة الأحرف؛ فقط true هي التي تمكّن هذا السلوك.
Link to this sectionما هي فوائد دمج MLflow مع Ultralytics YOLO لتتبع التجارب؟#
يوفر دمج MLflow مع Ultralytics YOLO العديد من الفوائد لإدارة تجارب تعلم الآلة الخاصة بك:
- تعزيز تتبع التجارب: تتبع ومقارنة عمليات التشغيل المختلفة ونتائجها بسهولة.
- تحسين قابلية تكرار النماذج: تأكد من أن تجاربك قابلة للتكرار عن طريق تسجيل جميع المعلمات والنتائج.
- مراقبة الأداء: تصور مقاييس الأداء بمرور الوقت لاتخاذ قرارات مستنيرة بالبيانات لتحسين النماذج.
- تبسيط سير العمل: أتمتة عملية التسجيل للتركيز أكثر على تطوير النموذج بدلاً من التتبع اليدوي.
- التطوير التعاوني: شارك نتائج التجارب مع أعضاء الفريق لتعزيز التعاون وتبادل المعرفة.
لإلقاء نظرة متعمقة على إعداد والاستفادة من MLflow مع Ultralytics YOLO، استكشف توثيق تكامل MLflow مع Ultralytics YOLO.