X
Ultralytics YOLOv8.2 الإصدارUltralytics YOLOv8.2 الإصدارUltralytics YOLOv8.2 سهم الإطلاق
الشيك الأخضر
تم نسخ الرابط إلى الحافظة

التدريب والمراقبة عن بعد YOLOv5 استخدام ClearML

استكشف شراكتنا مع ClearML من أجل تعزيز YOLOv5 تجربة مع تكامل ML السلس وتتبع التجربة والمزيد.

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

ClearML هو أحدث شريك لنا: صندوق أدوات مفتوح المصدر مصمم لتوفير الوقت.

مع مهمة تسريع اعتماد ML ، ClearML يجعل ML سلسا للاندماج في أي منتج من منتجات البرامج والأجهزة الموجودة.

هذا التكامل يجعل من الأسهل تدريب YOLOv5 نموذج واستخدام ClearML مدير التجربة لتتبعه تلقائيا. يمكنك بسهولة تحديد ملف ClearML معرف إصدار مجموعة البيانات كإدخال البيانات وسيتم استخدامه تلقائيا لتدريب النموذج الخاص بك.

ارتق بتتبع تجربتك إلى المستوى التالي

  • تتبع كل YOLOv5 تشغيل التدريب في مدير التجربة.
  • الإصدار والوصول بسهولة إلى بيانات التدريب المخصصة الخاصة بك مع دمج ClearML أداة تعيين إصدارات البيانات.
  • احصل على أفضل mAP باستخدام ClearML تحسين المعلمات الفائقة.
  • قم بتحويل مدربك حديثا YOLOv5 نموذج في واجهة برمجة التطبيقات مع عدد قليل من الأوامر باستخدام ClearML خدمه.

الأمر متروك لك في عدد هذه الأدوات التي تريد استخدامها ، يمكنك الالتزام بمدير التجربة ، أو ربطها جميعا معا في خط أنابيب مثير للإعجاب.

إعداد الأشياء

لتتبع تجاربك وبياناتك، ClearML يحتاج إلى التواصل مع الخادم. لديك خياران لهذا: إما التسجيل مجانا في ClearML الخدمة المستضافة أو إعداد الخادم الخاص بك ، انظر هنا.

حتى الخادم مفتوح المصدر ، لذلك إذا كنت تتعامل مع بيانات حساسة ، فهذه ليست مشكلة!

  1. قم بتثبيت الزر clearml python الحزمة: تثبيت نقطة clearml
  2. قم بتوصيل ClearML SDK إلى الخادم عن طريق إنشاء بيانات اعتماد (انتقل إلى الجزء العلوي الأيمن إلى الإعدادات -> Workspace -> إنشاء بيانات اعتماد جديدة) ، ثم قم بتنفيذ الأمر أدناه واتبع التعليمات: clearml-init

وفويلا! أنت جاهز للبدء...

تدريب YOLOv5 مع ClearML

لتمكين ClearML تتبع التجربة ، ما عليك سوى تثبيت ملف ClearML حزمة النقطة.

تثبيت النقطة clearml

سيمكن هذا التكامل مع YOLOv5 نص التدريب. سيتم التقاط كل تدريب يتم تشغيله من الآن فصاعدا وتخزينه بواسطة ClearML مدير التجربة. إذا كنت ترغب في تغيير project_name أو task_name ، فتوجه إلى المسجل المخصص الخاص بنا ، حيث يمكنك تغييره: utils / loggers /clearml/clearml_utils.py

python train.py - IMG 640 - الدفعة 16 - الحقب 3 - بيانات coco128.yaml - الأوزان yolov5s.pt - ذاكرة التخزين المؤقت

هذا سوف يلتقط:

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

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

هناك المزيد الذي يمكننا القيام به مع كل هذه المعلومات ، مثل تحسين المعلمات الفائقة والتنفيذ عن بعد ، لذا استمر في القراءة لمعرفة كيفية القيام بذلك!

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

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

بيانات Ultralytics YOLOv5 و ClearML

إعداد مجموعة البيانات الخاصة بك

ال YOLOv5 يدعم المستودع عددا من مجموعات البيانات المختلفة باستخدام ملفات YAML التي تحتوي على معلوماتها. بشكل افتراضي ، يتم تنزيل مجموعات البيانات إلى .. /datasets المجلد فيما يتعلق بالمجلد الجذر للمستودع. لذلك إذا قمت بتنزيل مجموعة بيانات coco128 باستخدام الرابط الموجود في YAML أو باستخدام البرامج النصية التي توفرها yolov5، تحصل على بنية المجلد هذه:

..
|_ yolov5
|_ مجموعات البيانات
|_ كوكو 128
|_ صور
|_ التسميات
|_ الترخيص
|_ التمهيدي.txt

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

بعد ذلك ، ⚠️انسخ ملف YAML المقابل إلى جذر مجلد⚠️ مجموعة البيانات. هذه الملفات YAML تحتوي على المعلومات ClearML سوف تحتاج إلى استخدام مجموعة البيانات بشكل صحيح. يمكنك جعل هذا بنفسك أيضا ، بالطبع ، ما عليك سوى اتباع بنية مثال YAMLs.

في الأساس ، نحتاج إلى المفاتيح التالية: المسار ، القطار ، الاختبار ، val ، nc ، الأسماء.

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

تحميل مجموعة البيانات الخاصة بك

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

القرص المضغوط COCO128

clearml-مزامنة البيانات --مشروع YOLOv5 - اسم coco128 - مجلد.


الأمر clearml-مزامنة البيانات هي في الواقع أمر مختصر. يمكنك أيضا تشغيل هذه الأوامر واحدا تلو الآخر:

# اختياريا إضافة --parent إذا كنت تريد القاعدة

# هذا الإصدار على إصدار مجموعة بيانات آخر ، لذلك لا يتم تحميل أي ملفات مكررة!

clearml-إنشاء البيانات --اسم coco128 --مشروع YOLOv5/ص>

clearml-إضافة البيانات --الملفات.

clearml-إغلاق البيانات

تشغيل التدريب باستخدام ClearML مجموعة البيانات

الآن بعد أن أصبح لديك ملف ClearML مجموعة البيانات ، يمكنك ببساطة استخدامها لتدريب مخصص YOLOv5 نماذج.

python train.py - IMG 640 - الدفعة 16 - الحقب 3 - البيانات clearml:// --الأوزان yolov5s.pt --cache

تحسين المعلمات الفائقة

الآن بعد أن حصلنا على تجاربنا وإصدار البيانات ، حان الوقت لإلقاء نظرة على ما يمكننا البناء عليه في الأعلى!

باستخدام معلومات التعليمات البرمجية والحزم المثبتة وتفاصيل البيئة ، أصبحت التجربة نفسها الآن قابلة للتكرار تماما. في الحقيقة ClearML يسمح لك باستنساخ تجربة وحتى تغيير معلماتها. يمكننا بعد ذلك إعادة تشغيله بهذه المعلمات الجديدة تلقائيا ، وهذا ما يفعله HPO بشكل أساسي!

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

ستحتاج إلى ملء معرف مهمة القالب هذه في البرنامج النصي الموجود في utils / loggers /clearml/hpo.py ثم قم بتشغيله. يمكنك تغيير task.execute_locally() إلى task.execute() لوضعها في ملف ClearML قائمة الانتظار واطلب من وكيل بعيد العمل عليها بدلا من ذلك.

# لاستخدام optuna ، قم بتثبيته أولا ، وإلا يمكنك تغيير المحسن ليكون مجرد نقطة RandomSearch تثبيت optuna python المرافق / الحطابين /clearml/hpo.py

هبو, Ultralytics YOLOv5 و ClearML

التنفيذ عن بعد (متقدم)

يعد تشغيل HPO محليا أمرا مفيدا حقا ، ولكن ماذا لو أردنا تشغيل تجاربنا على جهاز بعيد بدلا من ذلك؟ ربما يمكنك الوصول إلى جهاز GPU قوي جدا في الموقع أو لديك بعض الميزانية لاستخدام وحدات معالجة الرسومات السحابية. هذا هو المكان الذي ClearML وكيل يأتي في اللعب.

تحقق مما يمكن للوكيل القيام به هنا:

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

يمكنك تحويل أي جهاز (جهاز ظاهري سحابي ، جهاز GPU محلي ، كمبيوتر محمول خاص بك ...) إلى ملف ClearML وكيل ببساطة عن طريق تشغيل:

clearml-وكيل الخفي --قائمة الانتظار [--عامل ميناء]

الاستنساخ والتحرير وقائمة الانتظار

مع تشغيل وكيلنا ، يمكننا أن نعطيه بعض العمل. تذكر من قسم HPO أنه يمكننا استنساخ مهمة وتحرير المعلمات الفائقة؟ يمكننا القيام بذلك من الواجهة أيضا!

🪄 استنساخ التجربة بالنقر بزر الماوس الأيمن عليها

🎯 قم بتحرير المعلمات الفائقة إلى ما تريده

⏳ قم بإدراج المهمة في قائمة انتظار إلى أي من قوائم الانتظار بالنقر بزر الماوس الأيمن فوقها

قائمة الانتظار, Ultralytics YOLOv5 و ClearML

تنفيذ مهمة عن بعد

يمكنك الآن استنساخ مهمة كما أوضحنا أعلاه ، أو ببساطة وضع علامة على البرنامج النصي الحالي الخاص بك عن طريق إضافة task.execute_remotely () وعند التنفيذ ، سيتم وضعها في قائمة انتظار ، حتى يبدأ الوكيل العمل عليها!

لتشغيل YOLOv5 تدريب البرنامج النصي عن بعد ، كل ما عليك فعله هو إضافة هذا السطر إلى البرنامج النصي training.py بعد ClearML تم إنشاء مثيل للمسجل:

# ... # 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 either None is user did not choose for ClearML dataset or is filled in by ClearML data_dict = loggers.clearml.data_dict # ...

عند تشغيل البرنامج النصي للتدريب بعد هذا التغيير ، python سيتم تشغيل البرنامج النصي حتى هذا السطر ، وبعد ذلك سيقوم بحزم الرمز وإرساله إلى قائمة الانتظار بدلا من ذلك!

عمال التحجيم التلقائي

ClearML يأتي مع قشارة السيارات أيضا! ستقوم هذه الأداة تلقائيا بتدوير الأجهزة البعيدة الجديدة في السحابة التي تختارها (AWS و GCP و Azure) وتحويلها إلى ClearML وكلاء لك كلما تم اكتشاف تجارب في قائمة الانتظار. بمجرد معالجة المهام ، سيقوم القشارة التلقائية تلقائيا بإغلاق الأجهزة البعيدة وتتوقف عن الدفع! تحقق من فيديو بدء تشغيل المتسلقين التلقائيين أدناه.

أي سؤال؟ انضم إلى مجتمعنا واترك سؤالك اليوم!

شعار الفيسبوكشعار تويترشعار لينكد إنرمز نسخ الرابط

اقرأ المزيد في هذه الفئة

دعونا نبني المستقبل
من الذكاء الاصطناعي معا!

ابدأ رحلتك مع مستقبل التعلم الآلي