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

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

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

परिचय

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

समाप्ति

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

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


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

अक्सर पूछे जाने वाले प्रश्न

मैं ऑप्टिमाइज़ कैसे करूँ Ultralytics YOLO कम विलंबता का उपयोग करने के लिए मॉडल OpenVINO?

अनुकूलन Ultralytics YOLO कम विलंबता के लिए मॉडल में कई प्रमुख रणनीतियाँ शामिल हैं:

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

विलंबता को अनुकूलित करने के बारे में अधिक व्यावहारिक सुझावों के लिए, हमारे गाइड के विलंबता अनुकूलन अनुभाग देखें।

मुझे क्यों उपयोग करना चाहिए OpenVINO अनुकूलन के लिए Ultralytics YOLO थ्रूपुट?

OpenVINO बढ़ाता Ultralytics YOLO प्रदर्शन का त्याग किए बिना डिवाइस संसाधन उपयोग को अधिकतम करके मॉडल थ्रूपुट। प्रमुख लाभों में शामिल हैं:

  • प्रदर्शन संकेत: सभी उपकरणों में सरल, उच्च-स्तरीय प्रदर्शन ट्यूनिंग।
  • स्पष्ट बैचिंग और स्ट्रीम: उन्नत प्रदर्शन के लिए फ़ाइन-ट्यूनिंग।
  • मल्टी-डिवाइस निष्पादन: स्वचालित अनुमान लोड संतुलन, अनुप्रयोग-स्तर प्रबंधन को आसान बनाना।

उदाहरण कॉन्फ़िगरेशन:

import openvino.properties.hint as hints

config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
compiled_model = core.compile_model(model, "GPU", config)

हमारे विस्तृत गाइड के थ्रूपुट ऑप्टिमाइज़ेशन अनुभाग में थ्रूपुट ऑप्टिमाइज़ेशन के बारे में अधिक जानें।

प्रथम-अनुमान विलंबता को कम करने के लिए सबसे अच्छा अभ्यास क्या है OpenVINO?

प्रथम-अनुमान विलंबता को कम करने के लिए, इन प्रथाओं पर विचार करें:

  1. मॉडल कैशिंग: लोड कम करने और समय संकलित करने के लिए मॉडल कैशिंग का उपयोग करें।
  2. मॉडल मानचित्रण बनाम पढ़ना: मैपिंग का उपयोग करें (ov::enable_mmap(true)) डिफ़ॉल्ट रूप से लेकिन पढ़ने के लिए स्विच करें (ov::enable_mmap(false)) यदि मॉडल हटाने योग्य या नेटवर्क ड्राइव पर है।
  3. ऑटो डिवाइस चयन: शुरू करने के लिए ऑटो मोड का उपयोग करें CPU एक त्वरक के लिए अनुमान और संक्रमण निर्बाध रूप से।

प्रथम-अनुमान विलंबता प्रबंधित करने पर विस्तृत कार्यनीतियों के लिए, प्रथम-अनुमान विलंबता प्रबंधित करना अनुभाग देखें.

मैं विलंबता और थ्रूपुट के लिए अनुकूलन को कैसे संतुलित करूं Ultralytics YOLO और OpenVINO?

विलंबता और थ्रूपुट अनुकूलन को संतुलित करने के लिए आपकी एप्लिकेशन आवश्यकताओं को समझने की आवश्यकता है:

  • विलंबता अनुकूलन: तत्काल प्रतिक्रियाओं (जैसे, उपभोक्ता-ग्रेड ऐप्स) की आवश्यकता वाले वास्तविक समय के अनुप्रयोगों के लिए आदर्श।
  • थ्रूपुट अनुकूलन: कई समवर्ती अनुमानों के साथ परिदृश्यों के लिए सर्वश्रेष्ठ, संसाधन उपयोग को अधिकतम करना (जैसे, बड़े पैमाने पर तैनाती)।

का उपयोग करके OpenVINOउच्च-स्तरीय प्रदर्शन संकेत और मल्टी-डिवाइस मोड सही संतुलन बनाने में मदद कर सकते हैं। उपयुक्त चुनें OpenVINO आपकी विशिष्ट आवश्यकताओं के आधार पर प्रदर्शन संकेत।

क्या मैं उपयोग कर सकता हूं Ultralytics YOLO इसके अलावा अन्य एआई ढांचे के साथ मॉडल OpenVINO?

हाँ Ultralytics YOLO मॉडल अत्यधिक बहुमुखी हैं और इन्हें विभिन्न एआई ढांचे के साथ एकीकृत किया जा सकता है। विकल्पों में शामिल हैं:

पर अधिक एकीकरण का अन्वेषण करें Ultralytics एकीकरण पृष्ठ



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

टिप्पणियाँ