के साथ हमारी साझेदारी का अन्वेषण करें ClearML एक बढ़ाया के लिए YOLOv5 सहज एमएल एकीकरण, प्रयोग ट्रैकिंग, और बहुत कुछ के साथ अनुभव।
पर Ultralytics हम अपने भयानक ओपन-सोर्स टूल के अनुसंधान और विकास को निधि देने में मदद करने के लिए अन्य स्टार्टअप के साथ व्यावसायिक रूप से साझेदारी करते हैं, जैसे YOLOv5, उन्हें सभी के लिए स्वतंत्र रखने के लिए। इस लेख में उन भागीदारों के लिए संबद्ध लिंक हो सकते हैं।
ClearML हमारा सबसे नया साथी है: एक ओपन-सोर्स टूलबॉक्स जो आपको समय बचाने के लिए डिज़ाइन किया गया है।
एमएल गोद लेने में तेजी लाने के मिशन के साथ, ClearML एमएल को किसी भी सॉफ्टवेयर और हार्डवेयर उत्पाद में एकीकृत करने के लिए सहज बनाता है।
यह एकीकरण इसे प्रशिक्षित करने के लिए और भी सरल बनाता है a YOLOv5 मॉडल और उपयोग करें ClearML प्रयोग प्रबंधक इसे स्वचालित रूप से ट्रैक करने के लिए। आप आसानी से एक निर्दिष्ट कर सकते हैं ClearML डेटासेट संस्करण आईडी डेटा इनपुट के रूप में और यह स्वचालित रूप से आपके मॉडल को प्रशिक्षित करने के लिए उपयोग किया जाएगा।
यह आप पर निर्भर करता है कि आप इनमें से कितने टूल का उपयोग करना चाहते हैं, आप प्रयोग प्रबंधक से चिपके रह सकते हैं, या उन सभी को एक प्रभावशाली पाइपलाइन में एक साथ चेन कर सकते हैं।
अपने प्रयोगों और डेटा पर नज़र रखने के लिए, ClearML एक सर्वर के साथ संवाद करने की आवश्यकता है। इसके लिए आपके पास दो विकल्प हैं: या तो मुफ्त में साइन अप करें ClearML होस्टेड सेवा या अपना स्वयं का सर्वर सेट करें, यहां देखें।
यहां तक कि सर्वर ओपन-सोर्स है, इसलिए यदि आप संवेदनशील डेटा से निपट रहे हैं, तो यह कोई समस्या नहीं है!
और वोइला! आप आरंभ करने के लिए तैयार हैं ...
सक्षम करने के लिए ClearML प्रयोग ट्रैकिंग, बस ClearML पाइप पैकेज।
पाइप स्थापित करें clearml
यह के साथ एकीकरण को सक्षम करेगा YOLOv5 प्रशिक्षण स्क्रिप्ट। अब से चलाए जा रहे हर प्रशिक्षण को कैप्चर और संग्रहीत किया जाएगा ClearML प्रयोग प्रबंधक। यदि आप project_name या task_name बदलना चाहते हैं, तो हमारे कस्टम लॉगर पर जाएं, जहां आप इसे बदल सकते हैं: उपयोगिता/लकड़हारा/clearml/clearml_utils.py
python train.py --img 640 --बैच 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache
यह कैप्चर करेगा:
बहुत बुरा नहीं! अब, हम इस सारी जानकारी की कल्पना कर सकते हैं ClearML यूआई हमारी प्रशिक्षण प्रगति का अवलोकन प्राप्त करने के लिए। तालिका दृश्य में कस्टम स्तंभ जोड़ें (जैसे उदाहरण के लिए mAP_0.5) ताकि आप सबसे अच्छा प्रदर्शन करने वाले मॉडल पर आसानी से सॉर्ट कर सकें. या कई प्रयोगों का चयन करें और सीधे उनकी तुलना करें!
इस सारी जानकारी के साथ हम और भी बहुत कुछ कर सकते हैं, जैसे हाइपरपैरामीटर ऑप्टिमाइज़ेशन और रिमोट एक्ज़ीक्यूशन, इसलिए यह जानने के लिए पढ़ते रहें कि कैसे!
अपने डेटा को अपने कोड से अलग से संस्करण बनाना आम तौर पर एक अच्छा विचार है और इससे नवीनतम संस्करण भी प्राप्त करना आसान हो जाता है। यह भंडार डेटासेट संस्करण आईडी की आपूर्ति का समर्थन करता है और यदि यह अभी तक नहीं है तो यह डेटा प्राप्त करना सुनिश्चित करेगा। उसके आगे, यह वर्कफ़्लो उपयोग किए गए डेटासेट आईडी को कार्य मापदंडों के हिस्से के रूप में भी सहेजता है, इसलिए आप हमेशा यह सुनिश्चित कर पाएंगे कि किस प्रयोग में किस डेटा का उपयोग किया गया था!
वही YOLOv5 रिपॉजिटरी उनकी जानकारी वाली YAML फ़ाइलों का उपयोग करके कई अलग-अलग डेटासेट का समर्थन करती है। डिफ़ॉल्ट रूप से, डेटासेट को डाउनलोड किया जाता है .. /datasets फ़ोल्डर रिपॉजिटरी रूट फ़ोल्डर के संबंध में। इसलिए यदि आपने YAML में लिंक का उपयोग करके या द्वारा प्रदान की गई स्क्रिप्ट के साथ coco128 डेटासेट डाउनलोड किया है yolov5, आपको यह फ़ोल्डर संरचना मिलती है:
..
|_ yolov5
|_ डेटासेट
|_ कोको128
|_ छवियाँ
|_ लेबल
|_ लाइसेंस
|_ रीडमी.txt
लेकिन यह आपकी इच्छानुसार कोई भी डेटासेट हो सकता है। अपने स्वयं के उपयोग करने के लिए स्वतंत्र महसूस करें, जब तक आप इस फ़ोल्डर संरचना को बनाए रखते हैं।
इसके बाद, ⚠️संबंधित YAML फ़ाइल को डेटासेट फ़ोल्डर⚠️ के रूट में कॉपी करें। इन YAML फ़ाइलों में जानकारी है ClearML डेटासेट का ठीक से उपयोग करने की आवश्यकता होगी। आप इसे स्वयं भी बना सकते हैं, निश्चित रूप से, उदाहरण YAMLs की संरचना का पालन करें।
मूल रूप से, हमें निम्नलिखित कुंजियों की आवश्यकता है: पथ, ट्रेन, परीक्षण, वैल, एनसी, नाम।
..
|_ yolov5
|_ datasets
|_ coco128
|_ images
|_ labels
|_ coco128.yaml # <---- HERE!
|_ LICENSE
|_ README.txt
इस डेटासेट को प्राप्त करने के लिए ClearML एक versioned डेटासेट के रूप में, DataSet रूट फ़ोल्डर पर जाएँ और निम्न आदेश चलाएँ:
सीडी कोको128
clearml-डेटा सिंक --प्रोजेक्ट YOLOv5 --name coco128 --फ़ोल्डर ।
आदेश clearml-data sync वास्तव में एक शॉर्टहैंड कमांड है। आप इन आदेशों को एक के बाद एक भी चला सकते हैं:
# वैकल्पिक रूप से जोड़ें --parent यदि आप आधार बनाना चाहते हैं
# यह संस्करण किसी अन्य डेटासेट संस्करण पर है, इसलिए कोई डुप्लिकेट फ़ाइल अपलोड नहीं की गई है!
clearml-डेटा बनाएँ --नाम coco128 --project YOLOv5/पी>
clearml-data add --files .
clearml-डेटा बंद
अब जब आपके पास एक ClearML डेटासेट, आप कस्टम को प्रशिक्षित करने के लिए बहुत आसानी से इसका उपयोग कर सकते हैं YOLOv5 मॉडल।
python train.py --img 640 --बैच 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache
अब जब हमारे पास हमारे प्रयोग और डेटा संस्करण हैं, तो यह देखने का समय है कि हम शीर्ष पर क्या बना सकते हैं!
कोड जानकारी, स्थापित पैकेज और पर्यावरण विवरण का उपयोग करते हुए, प्रयोग स्वयं अब पूरी तरह से प्रतिलिपि प्रस्तुत करने योग्य है। वास्तव में ClearML आपको एक प्रयोग क्लोन करने और यहां तक कि इसके मापदंडों को बदलने की अनुमति देता है। फिर हम इसे इन नए मापदंडों के साथ स्वचालित रूप से फिर से चला सकते हैं, यह मूल रूप से एचपीओ क्या करता है!
हाइपरपैरामीटर ऑप्टिमाइज़ेशन को स्थानीय रूप से चलाने के लिए, हमने आपके लिए एक पूर्व-निर्मित स्क्रिप्ट शामिल की है। बस सुनिश्चित करें कि एक प्रशिक्षण कार्य कम से कम एक बार चलाया गया है, इसलिए यह ClearML प्रयोग प्रबंधक, हम अनिवार्य रूप से इसे क्लोन करेंगे और इसके हाइपरपैरामीटर को बदल देंगे।
आपको इस टेम्पलेट कार्य की आईडी को यूटिल/लॉगर्स /clearml/hpo.py और फिर बस इसे चलाएं। आप इसे एक में डालने के लिए task.execute_locally() को task.execute() में बदल सकते हैं ClearML कतार और इसके बजाय एक दूरस्थ एजेंट काम करता है।
# ऑप्टुना का उपयोग करने के लिए, इसे पहले स्थापित करें, अन्यथा आप ऑप्टिमाइज़र को केवल रैंडमसर्च पाइप इंस्टॉल ऑप्टुना में बदल सकते हैं python उपयोगिता/लकड़हारा/clearml/hpo.py
स्थानीय रूप से एचपीओ चलाना वास्तव में आसान है, लेकिन क्या होगा यदि हम इसके बजाय रिमोट मशीन पर अपने प्रयोग चलाना चाहते हैं? हो सकता है कि आपके पास साइट पर एक बहुत शक्तिशाली GPU मशीन तक पहुंच हो या आपके पास क्लाउड GPU का उपयोग करने के लिए कुछ बजट हो। यह वह जगह है जहाँ ClearML एजेंट खेल में आता है।
देखें कि एजेंट यहां क्या कर सकता है:
संक्षेप में: प्रयोग प्रबंधक द्वारा ट्रैक किए गए प्रत्येक प्रयोग में एक अलग मशीन (स्थापित पैकेज, अप्रतिबद्ध परिवर्तन आदि) पर इसे पुन: पेश करने के लिए पर्याप्त जानकारी होती है। तो एक ClearML एजेंट बस यही करता है: यह आने वाले कार्यों के लिए एक कतार को सुनता है और जब यह एक पाता है, तो यह पर्यावरण को फिर से बनाता है और प्रयोग प्रबंधक को स्केलर, प्लॉट आदि की रिपोर्ट करते हुए इसे चलाता है।
आप किसी भी मशीन (क्लाउड वीएम, स्थानीय जीपीयू मशीन, अपने लैपटॉप ...) को एक में बदल सकते हैं ClearML बस चलाने से एजेंट:
clearml-एजेंट डेमॉन --queue [--docker]
हमारे एजेंट के चलने के साथ, हम इसे कुछ काम दे सकते हैं। एचपीओ अनुभाग से याद रखें कि हम किसी कार्य को क्लोन कर सकते हैं और हाइपरपैरामीटर को संपादित कर सकते हैं? हम इंटरफ़ेस से भी ऐसा कर सकते हैं!
🪄 प्रयोग को राइट-क्लिक करके उसका क्लोन बनाएं
🎯 हाइपरपैरामीटर को संपादित करें कि आप उन्हें क्या चाहते हैं
⏳ कार्य को राइट-क्लिक करके किसी भी क्यू में संलग्न करें
अब आप एक कार्य क्लोन कर सकते हैं जैसा कि हमने ऊपर बताया है, या बस 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 जब भी कतार में प्रयोगों का पता चलता है तो आपके लिए एजेंट। एक बार कार्य संसाधित हो जाने के बाद, ऑटो स्केलर स्वचालित रूप से दूरस्थ मशीनों को बंद कर देगा और आप भुगतान करना बंद कर देंगे! नीचे दिए गए ऑटो स्केलर्स को वीडियो शुरू करने की जाँच करें।
कोई सवाल? हमारे समुदाय में शामिल हों और आज ही अपना प्रश्न छोड़ दें!
मशीन लर्निंग के भविष्य के साथ अपनी यात्रा शुरू करें