تعرّف على شراكتنا مع ClearML للحصول على تجربة Ultralytics YOLOv5 المحسّنة مع تكامل سلس مع تعلّم الآلة وتتبع التجارب والمزيد.

تعرّف على شراكتنا مع ClearML للحصول على تجربة Ultralytics YOLOv5 المحسّنة مع تكامل سلس مع تعلّم الآلة وتتبع التجارب والمزيد.

في Ultralytics نتشارك تجارياً مع شركات ناشئة أخرى لمساعدتنا في تمويل البحث والتطوير لأدواتنا الرائعة مفتوحة المصدر، مثل YOLOv5 لإبقائها مجانية للجميع. قد تحتوي هذه المقالة على روابط تابعة لهؤلاء الشركاء.
ClearML أحدث شركائنا: صندوق أدوات مفتوح المصدر مصمم لتوفير الوقت.
من خلال مهمة تسريع تبني تعلّم الآلة (ML)، تعمل ClearML على جعل تعلّم الآلة سلسًا للاندماج في أي منتج من البرامج والأجهزة الموجودة.
يجعل هذا التكامل من الأسهل تدريب YOLOv5 واستخدام مدير تجارب ClearML track تلقائيًا. يمكنك بسهولة تحديد معرّف إصدار مجموعة بيانات ClearML كمُدخل للبيانات، وسيتم استخدامه تلقائيًا لتدريب نموذجك.
الأمر متروك لك لتحديد عدد الأدوات التي ترغب في استخدامها، يمكنك الالتزام بمدير التجارب، أو ربطها جميعًا في مسار مثير للإعجاب.
track تجاربك وبياناتك، يحتاج ClearML إلى الاتصال بخادم. لديك خياران لهذا الأمر: إما أن تشترك مجانًا في خدمة ClearML Hosted Service أو أن تنشئ خادمك الخاص، انظر هنا.
حتى الخادم مفتوح المصدر، لذلك إذا كنت تتعامل مع بيانات حساسة، فلا توجد مشكلة!
وها قد انتهينا! أنت الآن على استعداد للبدء...
لتمكين تعقب تجربة ClearML ما عليك سوى تثبيت حزمة ClearML pip.
تثبيت clearml
سيتيح ذلك التكامل مع البرنامج النصي للتدريب YOLOv5 . سيتم التقاط كل عملية تدريب من الآن فصاعدًا وتخزينها بواسطة مدير تجارب ClearML . إذا كنت ترغب في تغيير اسم_المشروع أو اسم_المهمة، توجه إلى المسجل المخصص لدينا، حيث يمكنك تغييره: clearml.py
python train.py --img 640 -الدفعة 16 -الدفعة 16 -البؤر 3 -بيانات coco128yaml --الأوزان yolov5s.pt -ذاكرة التخزين المؤقت
سيؤدي هذا إلى التقاط:
ليس سيئاً للغاية! الآن، يمكننا الآن عرض كل هذه المعلومات في ClearML UI للحصول على نظرة عامة على تقدم التدريب لدينا. أضف أعمدة مخصصة إلى طريقة عرض الجدول (مثل mAP.5) حتى تتمكن من الفرز بسهولة على النموذج الأفضل أداءً. أو حدد تجارب متعددة وقارن بينها مباشرةً!
هناك المزيد مما يمكننا فعله بكل هذه المعلومات، مثل تحسين المعلمات الفائقة والتنفيذ عن بعد، لذا استمر في القراءة لمعرفة كيف!
يعد إصدار بياناتك بشكل منفصل عن التعليمات البرمجية الخاصة بك فكرة جيدة بشكل عام ويسهل الحصول على أحدث إصدار أيضًا. يدعم هذا المستودع توفير معرف إصدار مجموعة البيانات، وسوف يحرص على الحصول على البيانات إذا لم تكن موجودة بعد. وإلى جانب ذلك، يحفظ سير العمل هذا أيضًا معرف مجموعة البيانات المستخدم كجزء من معلمات المهمة، لذلك ستعرف دائمًا على وجه اليقين البيانات التي تم استخدامها في أي تجربة!
يدعم مستودع YOLOv5 عددًا من مجموعات البيانات المختلفة باستخدام ملفات YAML التي تحتوي على معلوماتها. بشكل افتراضي، يتم تنزيل مجموعات البيانات إلى مجلد ../datasetsets بالنسبة لمجلد جذر المستودع. لذلك إذا قمت بتنزيل مجموعة بيانات coco128 باستخدام الرابط الموجود في YAML أو باستخدام البرامج النصية التي يوفرها yolov5 فستحصل على بنية المجلد هذه:
..
|_ yolov5
|_ datasets
|_ coco128
|_ images
|_ labels
|_ LICENSE
|_ README.txt
ولكن يمكن أن تكون هذه أي مجموعة بيانات تريدها. لا تتردد في استخدام مجموعتك الخاصة، طالما أنك تلتزم ببنية المجلد هذه.
بعد ذلك، ⚠️copy ملف YAML المقابل إلى جذر مجموعة البيانات folder⚠️. تحتوي ملفات YAML هذه على المعلومات التي سيحتاجها ClearML لاستخدام مجموعة البيانات بشكل صحيح. يمكنك إنشاء هذا بنفسك أيضًا، بالطبع، فقط اتبع بنية أمثلة YAMLs.
بشكل أساسي، نحتاج إلى المفاتيح التالية: path و train و test و val و nc و names.
..
|_ yolov5
|_ datasets
|_ coco128
|_ images
|_ labels
|_ coco128yaml # ← HERE!
|_ LICENSE
||| README.txt
لإدخال مجموعة البيانات هذه في ClearML كمجموعة بيانات ذات إصدار، انتقل إلى المجلد الجذر لمجموعة البيانات وشغّل الأمر التالي:
cd coco128
مزامنة clearml- مشروع YOLOv5 - الاسم coco128 - المجلد .
الأمر clearml sync هو في الواقع أمر مختصر. يمكنك أيضًا تشغيل هذه الأوامر واحدًا تلو الآخر:
# اختياريًا، أضف --parent إذا كنت تريد أن تعتمد
# هذا الإصدار على إصدار مجموعة بيانات آخر، لذلك لن يتم تحميل أي ملفات مكررة!
clearml create --الاسم coco128 - مشروع YOLOv5
clearml add --files .
إغلاق clearml
والآن بعد أن أصبحت لديك مجموعة بيانات ClearML يمكنك ببساطة شديدة استخدامها لتدريب نماذج YOLOv5 المخصصة.
python train.py --img 640 -الدفعة 16 -الدفعة 16 -البؤر الزمنية 3 -بيانات clearml:// -الأوزان yolov5s.pt -ذاكرة التخزين المؤقت
الآن بعد أن أصبح لدينا تجاربنا وإصدار بياناتنا، فقد حان الوقت لإلقاء نظرة على ما يمكننا بناؤه فوقها!
باستخدام معلومات التعليمات البرمجية والحزم المثبتة وتفاصيل البيئة، أصبحت التجربة نفسها الآن قابلة للاستنساخ تمامًا. في الواقع، يتيح لك ClearML استنساخ تجربة ما وحتى تغيير معلماتها. يمكننا بعد ذلك إعادة تشغيلها بهذه المعلمات الجديدة تلقائيًا، وهذا ما يفعله HPO بشكل أساسي!
لتشغيل تحسين البارامتر الفائق محليًا، قمنا بتضمين برنامج نصي مُعد مسبقًا من أجلك. فقط تأكد من تشغيل مهمة التدريب مرة واحدة على الأقل، بحيث تكون في مدير تجارب ClearML وسنقوم باستنساخها بشكل أساسي وتغيير المعلمات التشعبية الخاصة بها.
ستحتاج إلى ملء معرف مهمة هذا القالب في النص البرمجي الموجود في clearml.py ثم تشغيله. يمكنك تغيير task.execute_locally() إلى task.execute() لوضعها في قائمة انتظار ClearML وجعل وكيل بعيد يعمل عليها بدلاً من ذلك.
# لاستخدام optuna، قم بتثبيته أولاً، وإلا يمكنك تغيير المُحسِّن ليكون RandomSearch فقط قم بتثبيت optuna python clearml.py
يعد تشغيل HPO محليًا مفيدًا حقًا، ولكن ماذا لو أردنا تشغيل تجاربنا على جهاز بعيد بدلاً من ذلك؟ ربما لديك إمكانية الوصول إلى جهاز GPU قوية جدًا في الموقع، أو لديك بعض الميزانية لاستخدام وحدات معالجة الرسومات السحابية. هنا يأتي دور وكيل ClearML .
تحقق مما يمكن للوكيل القيام به هنا:
باختصار: تحتوي كل تجربة يتم تعقبها من قبل مدير التجربة على معلومات كافية لإعادة إنتاجها على جهاز مختلف (الحزم المثبتة، والتغييرات غير الملتزم بها وما إلى ذلك). لذا فإن وكيل ClearML يفعل ذلك بالضبط: يستمع إلى قائمة انتظار للمهام الواردة وعندما يعثر على واحدة، يقوم بإعادة إنشاء البيئة وتشغيلها مع الاستمرار في إبلاغ مدير التجربة بالمقاييس والمخططات وما إلى ذلك.
يمكنك تحويل أي جهاز (جهاز افتراضي سحابي، أو جهاز GPU محلية، أو حاسوبك المحمول الخاص بك) إلى وكيل ClearML بمجرد تشغيله:
البرنامج الخفي clearml daemon --قائمة الانتظار [--رصيف]
مع تشغيل الوكيل الخاص بنا، يمكننا أن نعطيه بعض العمل. تذكر من قسم HPO أنه يمكننا استنساخ مهمة وتعديل المعلمات الفائقة؟ يمكننا فعل ذلك من الواجهة أيضًا!
🪄 استنساخ التجربة عن طريق النقر بزر الماوس الأيمن عليها
🎯 تعديل المَعلمات الفائقة لتتوافق مع ما تريده
⏳ ضع المهمة في أي من قوائم الانتظار بالنقر بزر الماوس الأيمن عليها
الآن يمكنك استنساخ مهمة كما أوضحنا أعلاه، أو ببساطة تحديد البرنامج النصي الحالي الخاص بك عن طريق إضافة 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 مزودًا بأداة ClearML التلقائية أيضًا! ستعمل هذه الأداة تلقائيًا على تشغيل أجهزة بعيدة جديدة تلقائيًا في السحابة التي تختارها (AWS، GCP، Azure) وتحويلها إلى وكلاء ClearML لك كلما تم اكتشاف تجارب في قائمة الانتظار. بمجرد الانتهاء من معالجة المهام، ستقوم أداة التوسع التلقائي بإيقاف تشغيل الأجهزة البعيدة تلقائيًا، وستتوقف عن الدفع! شاهد فيديو بدء تشغيل أدوات القياس التلقائي أدناه.
هل لديك أي أسئلة؟ انضم إلى مجتمعنا واترك سؤالك اليوم!