सामग्री पर जाएं

अनुकूलन OpenVINO के लिए अनुमान Ultralytics YOLO मॉडल: एक व्यापक गाइड

OpenVINO पारिस्थितिकी तंत्र

परिचय

गहन शिक्षण मॉडल तैनात करते समय, विशेष रूप से ऑब्जेक्ट डिटेक्शन के लिए जैसे Ultralytics YOLO मॉडल, इष्टतम प्रदर्शन प्राप्त करना महत्वपूर्ण है। यह मार्गदर्शिका इंटेल का लाभ उठाने में तल्लीन करती है OpenVINO अनुमान को अनुकूलित करने के लिए टूलकिट, विलंबता और थ्रूपुट पर ध्यान केंद्रित करना। चाहे आप उपभोक्ता-ग्रेड अनुप्रयोगों या बड़े पैमाने पर तैनाती पर काम कर रहे हों, इन अनुकूलन रणनीतियों को समझने और लागू करने से यह सुनिश्चित होगा कि आपके मॉडल विभिन्न उपकरणों पर कुशलता से चलते हैं।

विलंबता के लिए अनुकूलन

विलंबता अनुकूलन उन अनुप्रयोगों के लिए महत्वपूर्ण है जिन्हें एकल इनपुट दिए गए एकल मॉडल से तत्काल प्रतिक्रिया की आवश्यकता होती है, जो उपभोक्ता परिदृश्यों में विशिष्ट है। लक्ष्य इनपुट और अनुमान परिणाम के बीच देरी को कम करना है। हालांकि, कम विलंबता प्राप्त करने में सावधानीपूर्वक विचार करना शामिल है, खासकर जब समवर्ती निष्कर्ष चलाना या कई मॉडलों का प्रबंधन करना।

विलंबता अनुकूलन के लिए प्रमुख रणनीतियाँ:

  • प्रति डिवाइस एकल अनुमान: कम विलंबता प्राप्त करने का सबसे सरल तरीका प्रति डिवाइस एक समय में एक अनुमान तक सीमित करना है। अतिरिक्त संगामिति अक्सर बढ़ी हुई विलंबता की ओर ले जाती है।
  • उप-उपकरणों का लाभ उठाना: मल्टी-सॉकेट सीपीयू या मल्टी-टाइल जीपीयू जैसे डिवाइस अपने आंतरिक उप-उपकरणों का उपयोग करके न्यूनतम विलंबता वृद्धि के साथ कई अनुरोधों को निष्पादित कर सकते हैं।
  • OpenVINO प्रदर्शन संकेत: उपयोग OpenVINOके एस ov::hint::PerformanceMode::LATENCY के लिए ov::hint::performance_mode मॉडल संकलन के दौरान संपत्ति प्रदर्शन ट्यूनिंग को सरल बनाती है, एक डिवाइस-अज्ञेयवादी और भविष्य-सबूत दृष्टिकोण प्रदान करती है।

प्रथम-अनुमान विलंबता का प्रबंधन:

  • मॉडल कैशिंग: मॉडल लोड को कम करने और विलंबता को प्रभावित करने वाले समय को संकलित करने के लिए, जहां संभव हो मॉडल कैशिंग का उपयोग करें। उन परिदृश्यों के लिए जहां कैशिंग व्यवहार्य नहीं है, सीपीयू आमतौर पर सबसे तेज़ मॉडल लोड समय प्रदान करते हैं।
  • मॉडल मानचित्रण बनाम पढ़ना: लोड समय को कम करने के लिए, OpenVINO मैपिंग के साथ मॉडल रीडिंग को बदल दिया। हालाँकि, यदि मॉडल हटाने योग्य या नेटवर्क ड्राइव पर है, तो उपयोग करने पर विचार करें ov::enable_mmap(false) पढ़ने के लिए वापस स्विच करने के लिए।
  • ऑटो डिवाइस चयन: यह मोड सीपीयू पर अनुमान शुरू करता है, एक बार तैयार होने के बाद त्वरक में स्थानांतरित हो जाता है, मूल रूप से पहले-अनुमान विलंबता को कम करता है।

थ्रूपुट के लिए अनुकूलन

थ्रूपुट अनुकूलन एक साथ कई अनुमान अनुरोधों की सेवा करने वाले परिदृश्यों के लिए महत्वपूर्ण है, व्यक्तिगत अनुरोध प्रदर्शन का महत्वपूर्ण रूप से त्याग किए बिना संसाधन उपयोग को अधिकतम करना।

थ्रूपुट अनुकूलन के दृष्टिकोण:

  1. OpenVINO प्रदर्शन संकेत: प्रदर्शन संकेतों का उपयोग करके उपकरणों में थ्रूपुट बढ़ाने के लिए एक उच्च-स्तरीय, भविष्य-प्रूफ विधि।
import openvino.properties as props
import openvino.properties.hint as hints

config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
compiled_model = core.compile_model(model, "GPU", config)
  1. स्पष्ट बैचिंग और स्ट्रीम: एक अधिक दानेदार दृष्टिकोण जिसमें स्पष्ट बैचिंग और उन्नत प्रदर्शन ट्यूनिंग के लिए धाराओं का उपयोग शामिल है।

थ्रूपुट-उन्मुख अनुप्रयोगों को डिजाइन करना:

थ्रूपुट को अधिकतम करने के लिए, अनुप्रयोगों को चाहिए:

  • डिवाइस की क्षमताओं का पूरा उपयोग करते हुए, समानांतर में इनपुट संसाधित करें।
  • समवर्ती अनुमान अनुरोधों में डेटा प्रवाह को विघटित करें, समानांतर निष्पादन के लिए निर्धारित।
  • दक्षता बनाए रखने और डिवाइस भुखमरी से बचने के लिए कॉलबैक के साथ Async API का उपयोग करें।

मल्टी-डिवाइस निष्पादन:

OpenVINOमल्टी-डिवाइस मोड एप्लिकेशन-स्तरीय डिवाइस प्रबंधन की आवश्यकता के बिना उपकरणों में अनुमान अनुरोधों को स्वचालित रूप से संतुलित करके स्केलिंग थ्रूपुट को सरल बनाता है।

समाप्ति

अनुकूलन Ultralytics YOLO विलंबता और थ्रूपुट के लिए मॉडल OpenVINO आपके एप्लिकेशन के प्रदर्शन को महत्वपूर्ण रूप से बढ़ा सकता है। इस गाइड में उल्लिखित रणनीतियों को सावधानीपूर्वक लागू करके, डेवलपर्स यह सुनिश्चित कर सकते हैं कि उनके मॉडल विभिन्न परिनियोजन परिदृश्यों की मांगों को पूरा करते हुए कुशलता से चलें। याद रखें, विलंबता या थ्रूपुट के लिए अनुकूलन के बीच का चुनाव आपकी विशिष्ट एप्लिकेशन आवश्यकताओं और परिनियोजन वातावरण की विशेषताओं पर निर्भर करता है।

अधिक विस्तृत तकनीकी जानकारी और नवीनतम अपडेट के लिए, देखें OpenVINO दस्तावेज़ीकरण और Ultralytics YOLO भंडार। ये संसाधन आपके गहन शिक्षण मॉडल का अधिकतम लाभ उठाने में आपकी सहायता करने के लिए गहन मार्गदर्शिकाएँ, ट्यूटोरियल और सामुदायिक सहायता प्रदान करते हैं।


यह सुनिश्चित करना कि आपके मॉडल इष्टतम प्रदर्शन प्राप्त करते हैं, केवल कॉन्फ़िगरेशन को ट्विक करने के बारे में नहीं है; यह आपके आवेदन की जरूरतों को समझने और सूचित निर्णय लेने के बारे में है। चाहे आप रीयल-टाइम प्रतिक्रियाओं के लिए ऑप्टिमाइज़ कर रहे हों या बड़े पैमाने पर प्रोसेसिंग के लिए थ्रूपुट को अधिकतम कर रहे हों, Ultralytics YOLO मॉडल और OpenVINO डेवलपर्स के लिए उच्च-प्रदर्शन एआई समाधानों को तैनात करने के लिए एक शक्तिशाली टूलकिट प्रदान करता है।



2024-03-17 बनाया गया, अपडेट किया गया 2024-03-17
लेखक: ग्लेन-जोचर (1)

टिप्पणियाँ