इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

मॉडल अनुकूलन

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

TensorFlow Lite और TensorFlow मॉडल ऑप्टिमाइज़ेशन टूलकिट अनुमान के अनुकूलन की जटिलता को कम करने के लिए उपकरण प्रदान करते हैं।

यह अनुशंसा की जाती है कि आप अपने अनुप्रयोग विकास प्रक्रिया के दौरान मॉडल अनुकूलन पर विचार करें। यह दस्तावेज़ किनारे हार्डवेयर की तैनाती के लिए TensorFlow मॉडल के अनुकूलन के लिए कुछ सर्वोत्तम प्रथाओं को रेखांकित करता है।

मॉडल को क्यों अनुकूलित किया जाना चाहिए

कई मुख्य तरीके हैं जो मॉडल अनुकूलन अनुप्रयोग के विकास में मदद कर सकते हैं।

आकार में कमी

एक मॉडल के आकार को कम करने के लिए अनुकूलन के कुछ रूपों का उपयोग किया जा सकता है। छोटे मॉडल के निम्नलिखित लाभ हैं:

  • छोटे भंडारण आकार: छोटे मॉडल आपके उपयोगकर्ताओं के उपकरणों पर कम संग्रहण स्थान रखते हैं। उदाहरण के लिए, एक छोटे मॉडल का उपयोग करने वाला एक एंड्रॉइड ऐप उपयोगकर्ता के मोबाइल डिवाइस पर कम संग्रहण स्थान लेगा।
  • छोटे डाउनलोड का आकार: छोटे मॉडल को उपयोगकर्ताओं के उपकरणों को डाउनलोड करने के लिए कम समय और बैंडविड्थ की आवश्यकता होती है।
  • कम मेमोरी का उपयोग: छोटे मॉडल कम रैम का उपयोग करते हैं जब वे चलते हैं, जो आपके एप्लिकेशन के अन्य हिस्सों के लिए मेमोरी को उपयोग करने के लिए मुक्त कर देता है, और बेहतर प्रदर्शन और स्थिरता के लिए अनुवाद कर सकता है।

परिमाणीकरण इन सभी मामलों में एक मॉडल के आकार को कम कर सकता है, संभवतः कुछ सटीकता की कीमत पर। Pruning और क्लस्टरिंग एक मॉडल के आकार को डाउनलोड के लिए कम करके इसे आसानी से संकुचित कर सकते हैं।

विलंबता में कमी

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

वर्तमान में, परिमाणीकरण को सरलता की कीमत पर संभावित रूप से, अनुमान के दौरान होने वाली गणना को सरल करके विलंबता को कम करने के लिए इस्तेमाल किया जा सकता है।

त्वरक अनुकूलता

कुछ हार्डवेयर एक्सेलेरेटर, जैसे एज टीपीयू , उन मॉडलों के साथ बहुत तेजी से चल सकते हैं जो सही ढंग से अनुकूलित किए गए हैं।

आमतौर पर, इन प्रकार के उपकरणों को विशिष्ट तरीके से मात्रा निर्धारित करने की आवश्यकता होती है। उनकी आवश्यकताओं के बारे में अधिक जानने के लिए प्रत्येक हार्डवेयर त्वरक के प्रलेखन देखें।

व्यापार नापसंद

अनुकूलन संभावित रूप से मॉडल सटीकता में परिवर्तन का परिणाम हो सकता है, जिसे अनुप्रयोग विकास प्रक्रिया के दौरान माना जाना चाहिए।

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

अनुकूलन के प्रकार

TensorFlow Lite वर्तमान में परिमाणीकरण, छंटाई और क्लस्टरिंग के माध्यम से अनुकूलन का समर्थन करता है।

ये TensorFlow मॉडल ऑप्टिमाइज़ेशन टूलकिट का एक हिस्सा हैं, जो मॉडल ऑप्टिमाइज़ेशन तकनीकों के लिए संसाधन प्रदान करता है जो TensorFlex Lite के साथ संगत हैं।

परिमाणीकरण

एक मॉडल के मापदंडों का प्रतिनिधित्व करने के लिए उपयोग की जाने वाली संख्याओं की शुद्धता को कम करके, परिमाणीकरण काम करता है, जो कि डिफ़ॉल्ट रूप से 32-बिट फ्लोटिंग पॉइंट नंबर हैं। इससे छोटे मॉडल का आकार और तेजी से गणना होती है।

निम्नलिखित प्रकार के परिमाणीकरण TensorFlow Lite में उपलब्ध हैं:

तकनीक डेटा आवश्यकताएँ आकार में कमी शुद्धता समर्थित हार्डवेयर
प्रशिक्षण के बाद फ्लोट 16 मात्रा का ठहराव कोई आकड़ा उपलब्ध नहीं है 50 तक% नगण्य सटीकता हानि सीपीयू, जीपीयू
प्रशिक्षण के बाद गतिशील रेंज मात्रा का ठहराव कोई आकड़ा उपलब्ध नहीं है 75% तक अचूक नुकसान CPU, GPU (Android)
प्रशिक्षण के बाद पूर्णांक परिमाणीकरण अप्रकाशित प्रतिनिधि नमूना 75% तक छोटी सटीकता हानि सीपीयू, जीपीयू (एंड्रॉइड), एजटीपीयू, हेक्सागोन डीएसपी
परिमाणीकरण-जागरूक प्रशिक्षण लेबल प्रशिक्षण डेटा 75% तक सबसे छोटी सटीकता हानि सीपीयू, जीपीयू (एंड्रॉइड), एजटीपीयू, हेक्सागोन डीएसपी

नीचे कुछ मॉडलों पर प्रशिक्षण के बाद के परिमाणीकरण और परिमाणीकरण-जागरूक प्रशिक्षण के लिए विलंबता और सटीकता के परिणाम हैं। सभी विलंबता संख्या पिक्सेल 2 उपकरणों पर एक बड़े कोर सीपीयू का उपयोग करके मापा जाता है। जैसे ही टूलकिट में सुधार होता है, वैसे ही यहाँ संख्याएँ होंगी:

नमूना शीर्ष -1 सटीकता (मूल) शीर्ष -1 सटीकता (पोस्ट प्रशिक्षण निर्धारित) शीर्ष -1 सटीकता (परिमाणीकरण वाकिफ प्रशिक्षण) लेटेंसी (मूल) (एमएस) विलंबता (पोस्ट प्रशिक्षण मात्रा निर्धारित) (एमएस) लेटेंसी (क्वांटिज़ेशन अवेयर ट्रेनिंग) (एमएस) आकार (मूल) (एमबी) आकार (अनुकूलित) (MB)
Mobilenet-v1-1-224 0.709 0.657 0.70 124 112 64 16.9 4.3
Mobilenet-v2-1-224 0.719 0.637 0.709 89 98 54 14 3.6
Inception_v3 0.78 0.772 0.775 1130 845 543 95.7 23.9
Resnet_v2_101 0.770 0.768 एन / ए 3973 2868 एन / ए 178.3 44.9
तालिका 1 चुनिंदा सीएनएन मॉडल के लिए मॉडल परिमाणीकरण के लाभ

छंटाई

Pruning एक मॉडल के भीतर मापदंडों को हटाकर काम करता है जिसका केवल इसकी भविष्यवाणियों पर मामूली प्रभाव पड़ता है। Pruned मॉडल डिस्क पर एक ही आकार के हैं, और समान रनटाइम लेटेंसी है, लेकिन इसे अधिक प्रभावी ढंग से संपीड़ित किया जा सकता है। यह मॉडल डाउनलोड के आकार को कम करने के लिए एक उपयोगी तकनीक का प्रस्ताव देता है।

भविष्य में, TensorFlow Lite प्रून मॉडल के लिए विलंबता में कमी प्रदान करेगा।

क्लस्टरिंग

एक मॉडल में प्रत्येक परत के भार को समूहों की पूर्वनिर्धारित संख्या में समूहों में समूहित करके क्लस्टरिंग कार्य करता है, फिर प्रत्येक अलग-अलग क्लस्टर से संबंधित भार के लिए केंद्रक मान साझा करता है। यह एक मॉडल में अद्वितीय वजन मूल्यों की संख्या को कम करता है, इस प्रकार इसकी जटिलता को कम करता है।

नतीजतन, क्लस्टर किए गए मॉडल को अधिक प्रभावी ढंग से संकुचित किया जा सकता है, प्रूनिंग के समान तैनाती लाभ प्रदान करता है।

विकास संबंधी कार्य

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

ऐसे मामलों के लिए जहां सटीकता और विलंबता के लक्ष्य पूरे नहीं हुए हैं, या हार्डवेयर त्वरक समर्थन महत्वपूर्ण है, परिमाणीकरण-जागरूक प्रशिक्षण बेहतर विकल्प है। TensorFlow मॉडल ऑप्टिमाइज़ेशन टूलकिट के तहत अतिरिक्त अनुकूलन तकनीक देखें।

यदि आप अपने मॉडल के आकार को और कम करना चाहते हैं, तो आप अपने मॉडलों को निर्धारित करने से पहले छंटाई और / या क्लस्टरिंग की कोशिश कर सकते हैं।