Meet YOLO26: next-gen vision AI.

Link to this sectionتكامل ClearML#

ClearML MLOps experiment tracking platform

Link to this sectionحول ClearML#

تعد ClearML منصة MLOps مفتوحة المصدر مصممة لتبسيط مهام سير عمل تعلم الآلة وتوفير الوقت الهندسي.

  • 🔨 تتبع كل تشغيل لتدريب YOLOv5 في مدير التجارب.
  • 🔧 قم بإنشاء إصدارات والوصول إلى بيانات التدريب المخصصة الخاصة بك باستخدام أداة إصدار البيانات المدمجة في ClearML.
  • 🔦 قم بالتدريب والمراقبة عن بُعد لتشغيلات YOLOv5 باستخدام ClearML Agent.
  • 🔬 اعثر على أفضل mAP مع تحسين المعاملات التشعبية (hyperparameter optimization) في ClearML.
  • 🔭 حوّل نموذج YOLOv5 المُدرب الخاص بك إلى API ببضعة أوامر باستخدام ClearML Serving.

استخدم ما تحتاجه فقط من هذه الأدوات - ابدأ بمدير التجارب وحده، أو اربط كل شيء معًا في خط أنابيب (pipeline) كامل.

لوحة معلومات القيم القياسية لـ ClearML التي تعرض مقاييس تدريب YOLOv5

Link to this section🦾 إعداد الأمور#

تحتاج ClearML إلى التواصل مع خادم لتتبع تجاربك وبياناتك. لديك خياران:

  • سجل للحصول على خدمة ClearML المستضافة المجانية، أو
  • قم بنشر خادم ClearML الخاص بك — فهو مفتوح المصدر، لذا يظل خيارًا قابلاً للتطبيق حتى بالنسبة للبيانات الحساسة.

ثم قم بتثبيت حزمة clearml في Python وقم بتوصيل SDK بالخادم الخاص بك:

pip install clearml

قم بإنشاء بيانات الاعتماد في Settings → Workspace → Create new credentials (أعلى يمين واجهة ClearML)، ثم قم بتشغيل:

clearml-init

اتبع التعليمات. هذا كل شيء - اكتمل الإعداد.

Link to this section🚀 تدريب YOLOv5 باستخدام ClearML#

لتمكين تتبع التجارب، قم بتثبيت حزمة ClearML عبر pip إذا لم تقم بذلك بالفعل:

pip install clearml

سيؤدي هذا إلى تمكين التكامل مع نص تدريب YOLOv5. سيتم التقاط وتخزين كل تشغيل تدريبي من الآن فصاعدًا بواسطة مدير التجارب في ClearML.

لتخصيص أسماء المشروع والمهمة، مرر --project و --name إلى train.py. القيم الافتراضية هي YOLOv5 و Training. تستخدم ClearML / كفاصل للمشاريع الفرعية، لذا تجنب / في أسماء المشاريع المخصصة.

python train.py --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

أو بأسماء مخصصة:

python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

يلتقط كل تشغيل ما يلي:

  • الكود المصدري وأي تغييرات لم يتم الالتزام بها (uncommitted changes)
  • الحزم المثبتة
  • المعاملات التشعبية (Hyperparameters)
  • نقاط حفظ النموذج (استخدم --save-period n للحفظ كل n حقبة)
  • مخرجات وحدة التحكم
  • القيم القياسية (mAP_0.5, mAP_0.5:0.95, الدقة، الاستدعاء، الخسائر، معدلات التعلم)
  • تفاصيل الجهاز، وقت التشغيل، وتاريخ الإنشاء
  • المخططات المولدة مثل مخطط ارتباط الملصقات ومصفوفة الارتباك
  • صور مع صناديق الإحاطة (bounding boxes) لكل حقبة
  • تصورات الفسيفساء (Mosaic) لكل حقبة
  • صور التحقق من الصحة لكل حقبة

يظهر كل شيء في واجهة ClearML حتى تتمكن من مراقبة التدريب في مكان واحد. أضف أعمدة مخصصة (على سبيل المثال، mAP_0.5) للفرز حسب النموذج الأفضل أداءً، أو حدد تجارب متعددة لمقارنتها جنبًا إلى جنب.

استمر في القراءة لمعرفة المزيد عن تحسين المعاملات التشعبية والتنفيذ عن بُعد.

Link to this section🔗 إدارة إصدارات مجموعة البيانات#

إن إصدار البيانات بشكل منفصل عن الكود يجعل من السهل سحب أحدث إصدار ويضمن إمكانية إعادة الإنتاج الكاملة. يقبل هذا المستودع معرف إصدار مجموعة البيانات، ويجلب البيانات تلقائيًا إذا كانت مفقودة، ويسجل المعرف كمعامل للمهمة حتى تعرف دائمًا أي البيانات تم استخدامها في أي تجربة.

واجهة إدارة إصدار مجموعة بيانات ClearML

Link to this sectionجهز مجموعة البيانات الخاصة بك#

يدعم مستودع YOLOv5 العديد من مجموعات البيانات عبر ملفات تكوين YAML. افتراضيًا، يتم تنزيل مجموعات البيانات إلى مجلد ../datasets بالنسبة لجذر المستودع. بعد تنزيل coco128، يبدو هيكل المجلد كما يلي:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

أي مجموعة بيانات ستعمل، بشرط أن تحافظ على هذا الهيكل.

بعد ذلك، انسخ ملف YAML الخاص بمجموعة البيانات إلى المجلد الجذر لمجموعة البيانات — تقرأ ClearML هذا الملف لاستخدام مجموعة البيانات بشكل صحيح. يمكنك كتابة ملف YAML الخاص بك باتباع نموذج التخطيط، مع التأكد من تحديد path و train و test و val و nc و names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml  # <---- HERE
        |_ LICENSE
        |_ README.txt

Link to this sectionارفع مجموعة البيانات الخاصة بك#

لتسجيل مجموعة البيانات كمجموعة بيانات ClearML ذات إصدار، انتقل إلى مجلد الجذر الخاص بها وقم بتشغيل:

cd ../datasets/coco128
clearml-data sync --project YOLOv5 --name coco128 --folder .

clearml-data sync هو اختصار للتسلسل التالي، والذي يمكنك تشغيله أيضًا بشكل صريح:

# Add --parent <parent_dataset_id> to base this version on a previous one.
# Duplicate files are not re-uploaded.
clearml-data create --name coco128 --project YOLOv5
clearml-data add --files .
clearml-data close

Link to this sectionالتدريب على مجموعة بيانات ClearML#

مع تسجيل مجموعة البيانات، وجّه التدريب إليها باستخدام المعرف:

python train.py --img 640 --batch 16 --epochs 3 --data clearml://YOUR_DATASET_ID --weights yolov5s.pt --cache

Link to this section👀 تحسين المعاملات التشعبية (Hyperparameter Optimization)#

مع وجود التجارب والبيانات ذات إصدار، يمكنك البناء فوقها. نظرًا لأن كل تجربة يتم تتبعها تلتقط البيئة الكاملة - الكود، الحزم المثبتة، والتكوين - فإن التشغيلات تكون قابلة لإعادة الإنتاج بالكامل. تتيح لك ClearML استنساخ تجربة، وتغيير معاملاتها، وإعادة تشغيلها تلقائيًا، وهو ما يمثل أساس تحسين المعاملات التشعبية (HPO).

لتشغيل HPO محليًا، استخدم البرنامج النصي المرفق. تأكد أولاً من وجود مهمة تدريب في مدير التجارب - يقوم البرنامج النصي باستنساخها وتغيير معاملاتها التشعبية.

املأ معرف المهمة القالب في utils/loggers/clearml/hpo.py، ثم قم بتشغيل:

# Install Optuna or change the optimizer to RandomSearch.
pip install optuna
python utils/loggers/clearml/hpo.py

قم بتبديل task.execute_locally() إلى task.execute() لدفع المهمة إلى طابور ClearML ليقوم عامل عن بُعد بالتقاطها.

لوحة معلومات HPO لـ ClearML مع مقاييس YOLOv5

Link to this section🤯 التنفيذ عن بُعد (متقدم)#

يعد تشغيل HPO محليًا أمرًا مريحًا، ولكنك غالبًا ما سترغب في إجراء التجارب على أجهزة أقوى - جهاز GPU محلي (on-prem) أو مثيل سحابي. هذا هو دور ClearML Agent:

تحتوي كل تجربة يتم تتبعها على كل ما يلزم لإعادة إنتاجها على جهاز آخر (الحزم المثبتة، التغييرات غير الملتزم بها، والتكوين). يستمع عامل ClearML إلى طابور، ويلتقط المهام الواردة، ويعيد إنشاء البيئة، ويشغل المهمة، ويبث القيم القياسية والمخططات عودةً إلى مدير التجارب.

حول أي جهاز - جهاز سحابي افتراضي (VM)، جهاز GPU محلي، أو كمبيوتر محمول - إلى عامل ClearML باستخدام:

clearml-agent daemon --queue QUEUES_TO_LISTEN_TO [--docker]

Link to this sectionالاستنساخ، التحرير، ووضع المهام في الطابور#

مع تشغيل عامل، يمكنك تعيين العمل له مباشرة من واجهة المستخدم:

  • 🪄 انقر بزر الماوس الأيمن على تجربة وقم باستنساخها.
  • 🎯 قم بتحرير معاملاتها التشعبية.
  • ⏳ انقر بزر الماوس الأيمن على المهمة المستنسخة وقم بوضعها في طابور مستهدف.

وضع مهمة في الطابور من واجهة المستخدم

Link to this sectionتنفيذ مهمة عن بُعد#

يمكنك أيضًا وضع علامة على نص برمجي قيد التشغيل للتنفيذ عن بُعد برمجياً عن طريق إضافة task.execute_remotely() بعد إنشاء كائن المسجل (logger) لـ ClearML. أضف السطر المميز إلى train.py:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE
        # data_dict is None unless the user selected a ClearML dataset, in which case ClearML fills it in.
        data_dict = loggers.clearml.data_dict
# ...

بعد هذا التغيير، يقوم تشغيل نص التدريب بالتنفيذ حتى ذلك السطر، ويحزم الكود، ويرسله إلى الطابور.

Link to this sectionعمال القياس التلقائي (Autoscaling Workers)#

تأتي ClearML مع أدوات قياس تلقائي تقوم بتشغيل أجهزة عن بُعد في AWS أو GCP أو Azure عندما يكون هناك تجارب معلقة في الطابور، وتحولها إلى عوامل ClearML، وتغلقها عند انتهاء العمل - لذا فأنت تدفع فقط مقابل الحوسبة التي تعمل بالفعل.

شاهد فيديو البدء أدناه:

شاهد الفيديو

Link to this sectionتعلم المزيد#

لمزيد من المعلومات حول دمج ClearML مع نماذج Ultralytics، راجع دليل تكامل ClearML واستكشف كيف يمكنك تحسين سير عمل MLOps الخاص بك باستخدام أدوات تتبع التجارب الأخرى.

المساهمون

التعليقات