LiteRT की मदद से, अपने Android ऐप्लिकेशन में TensorFlow, PyTorch, और JAX मॉडल चलाए जा सकते हैं. LiteRT सिस्टम, Android पर मॉडल को तेज़ी से और बेहतर तरीके से चलाने के लिए, पहले से बनाए गए और पसंद के मुताबिक बनाए जा सकने वाले एक्सीक्यूशन एनवायरमेंट उपलब्ध कराता है. इसमें हार्डवेयर एक्सेलेरेशन के विकल्प भी शामिल हैं.
उदाहरण के लिए, LiteRT का इस्तेमाल करने वाले Android ऐप्लिकेशन के लिए, LiteRT के सैंपल रिपॉज़िटरी देखें.
मशीन लर्निंग मॉडल
LiteRT, TensorFlow, PyTorch, और JAX मॉडल का इस्तेमाल करता है. इन मॉडल को छोटे, पोर्टेबल, और ज़्यादा असरदार मशीन लर्निंग मॉडल फ़ॉर्मैट में बदला जाता है. Android पर, पहले से बने मॉडल का इस्तेमाल LiteRT के साथ किया जा सकता है. इसके अलावा, अपने मॉडल बनाए जा सकते हैं और उन्हें LiteRT फ़ॉर्मैट में बदला जा सकता है.
इस पेज पर, पहले से बनाए गए मशीन लर्निंग मॉडल का इस्तेमाल करने के बारे में बताया गया है. इसमें मॉडल बनाने, उन्हें ट्रेन करने, टेस्ट करने या बदलने के बारे में नहीं बताया गया है. मॉडल पेज पर, LiteRT के लिए मशीन लर्निंग मॉडल चुनने, उनमें बदलाव करने, उन्हें बनाने, और बदलने के बारे में ज़्यादा जानें.
Android पर मॉडल चलाना
Android ऐप्लिकेशन में चलने वाला LiteRT मॉडल, डेटा लेता है, उसे प्रोसेस करता है, और मॉडल के लॉजिक के आधार पर अनुमान जनरेट करता है. LiteRT मॉडल को चलाने के लिए, एक खास रनटाइम एनवायरमेंट की ज़रूरत होती है. साथ ही, मॉडल में डाले गए डेटा को एक खास डेटा फ़ॉर्मैट में होना चाहिए. इसे टेंसर कहा जाता है. जब कोई मॉडल डेटा को प्रोसेस करता है, तो उसे अनुमान लगाना कहा जाता है. इस प्रोसेस में, मॉडल नए टेंसर के तौर पर अनुमान के नतीजे जनरेट करता है और उन्हें Android ऐप्लिकेशन को भेजता है, ताकि वह कोई कार्रवाई कर सके. जैसे, उपयोगकर्ता को नतीजा दिखाना या अतिरिक्त बिज़नेस लॉजिक लागू करना.
पहली इमेज. Android ऐप्लिकेशन में LiteRT मॉडल के लिए, फ़ंक्शन के लागू होने का फ़्लो.
फ़ंक्शनल डिज़ाइन लेवल पर, आपके Android ऐप्लिकेशन को LiteRT मॉडल को चलाने के लिए, इन एलिमेंट की ज़रूरत होती है:
- मॉडल को लागू करने के लिए, LiteRT रनटाइम एनवायरमेंट
- डेटा को टेंसर में बदलने के लिए मॉडल इनपुट हैंडलर
- आउटपुट के नतीजे के टेंसर पाने और उन्हें अनुमान के नतीजों के तौर पर समझने के लिए, मॉडल आउटपुट हैंडलर
यहां दिए गए सेक्शन में बताया गया है कि LiteRT लाइब्रेरी और टूल, ये फ़ंक्शनल एलिमेंट कैसे उपलब्ध कराते हैं.
LiteRT की मदद से ऐप्लिकेशन बनाना
इस सेक्शन में, आपके Android ऐप्लिकेशन में LiteRT को लागू करने के लिए, सुझाया गया और सबसे सामान्य पाथ बताया गया है. आपको रनटाइम एनवायरमेंट और डेवलपमेंट लाइब्रेरी सेक्शन पर ज़्यादा ध्यान देना चाहिए. अगर आपने कोई कस्टम मॉडल डेवलप किया है, तो बेहतर डेवलपमेंट पाथ सेक्शन ज़रूर देखें.
रनटाइम एनवायरमेंट के विकल्प
अपने Android ऐप्लिकेशन में मॉडल को चलाने के लिए, रनटाइम एनवायरमेंट को चालू करने के कई तरीके हैं. इनमें से ये विकल्प सबसे सही हैं:
- Google Play services के रनटाइम एनवायरमेंट में LiteRT (सुझाया गया)
- स्टैंडअलोन LiteRT रनटाइम एनवायरमेंट
आम तौर पर, आपको Google Play services के रनटाइम एनवायरमेंट का इस्तेमाल करना चाहिए. ऐसा इसलिए, क्योंकि यह स्टैंडर्ड एनवायरमेंट के मुकाबले कम जगह लेता है. ऐसा इसलिए होता है, क्योंकि यह डाइनैमिक तरीके से लोड होता है और आपके ऐप्लिकेशन का साइज़ छोटा रखता है. Google Play services, LiteRT रनटाइम के सबसे नए और स्टेबल वर्शन का इस्तेमाल अपने-आप करता है. इससे आपको समय के साथ अतिरिक्त सुविधाएं और बेहतर परफ़ॉर्मेंस मिलती है. अगर आपने अपने ऐप्लिकेशन को उन डिवाइसों पर उपलब्ध कराया है जिनमें Google Play services शामिल नहीं हैं या आपको अपने एमएल रनटाइम एनवायरमेंट को बारीकी से मैनेज करना है, तो आपको स्टैंडर्ड LiteRT रनटाइम का इस्तेमाल करना चाहिए. यह विकल्प, आपके ऐप्लिकेशन में अतिरिक्त कोड बंडल करता है. इससे, ऐप्लिकेशन के डाउनलोड साइज़ को बढ़ाने के बावजूद, ऐप्लिकेशन में एमएल रनटाइम पर ज़्यादा कंट्रोल किया जा सकता है.
अपने Android ऐप्लिकेशन में इन रनटाइम एनवायरमेंट को ऐक्सेस करने के लिए, ऐप्लिकेशन डेवलपमेंट एनवायरमेंट में LiteRT डेवलपमेंट लाइब्रेरी जोड़ें. अपने ऐप्लिकेशन में स्टैंडर्ड रनटाइम एनवायरमेंट इस्तेमाल करने के तरीके के बारे में जानने के लिए, अगला सेक्शन देखें.
लाइब्रेरी
Google Play की सेवाओं का इस्तेमाल करके, Interpreter API को ऐक्सेस किया जा सकता है. अपने Android ऐप्लिकेशन में, LiteRT कोर और सहायता लाइब्रेरी का इस्तेमाल किया जा सकता है. LiteRT लाइब्रेरी और रनटाइम एनवायरमेंट का इस्तेमाल करने के बारे में प्रोग्रामिंग की जानकारी के लिए, Android के लिए डेवलपमेंट टूल देखें.
मॉडल पाना
Android ऐप्लिकेशन में मॉडल चलाने के लिए, LiteRT फ़ॉर्मैट वाला मॉडल ज़रूरी है. पहले से बनाए गए मॉडल का इस्तेमाल किया जा सकता है या कोई मॉडल बनाया जा सकता है और उसे Lite फ़ॉर्मैट में बदला जा सकता है. अपने Android ऐप्लिकेशन के लिए मॉडल पाने के बारे में ज़्यादा जानकारी के लिए, LiteRT के मॉडल पेज पर जाएं.
इनपुट डेटा को मैनेज करना
किसी भी एमएल मॉडल में डाला जाने वाला डेटा, किसी खास डेटा स्ट्रक्चर वाला टेंसर होना चाहिए. इसे अक्सर टेंसर का आकार कहा जाता है. किसी मॉडल की मदद से डेटा को प्रोसेस करने के लिए, आपके ऐप्लिकेशन कोड को डेटा को उसके नेटिव फ़ॉर्मैट, जैसे कि इमेज, टेक्स्ट या ऑडियो डेटा से, मॉडल के लिए ज़रूरी आकार वाले टेंसर में बदलना होगा.
अनुमान लगाना
अनुमान का नतीजा जनरेट करने के लिए, मॉडल की मदद से डेटा को प्रोसेस करने को अनुमान लगाना कहा जाता है. Android ऐप्लिकेशन में अनुमान लगाने के लिए, LiteRT के रनटाइम एनवायरमेंट, मॉडल, और इनपुट डेटा की ज़रूरत होती है.
किसी खास डिवाइस पर मॉडल, अनुमान कितनी तेज़ी से जनरेट कर सकता है, यह कई बातों पर निर्भर करता है. जैसे, प्रोसेस किए गए डेटा का साइज़, मॉडल की जटिलता, और उपलब्ध कंप्यूटिंग संसाधन, जैसे कि मेमोरी और सीपीयू या एक्सेलरेटर नाम के खास प्रोसेसर. मशीन लर्निंग मॉडल, ग्राफ़िक्स प्रोसेसिंग यूनिट (जीपीयू) और टेंसर प्रोसेसिंग यूनिट (टीपीयू) जैसे खास प्रोसेसर पर तेज़ी से काम कर सकते हैं. इसके लिए, डेलिगेट नाम के LiteRT हार्डवेयर ड्राइवर का इस्तेमाल किया जाता है. मॉडल प्रोसेसिंग के लिए, डेलिगेट और हार्डवेयर ऐक्सेलरेशन के बारे में ज़्यादा जानने के लिए, हार्डवेयर ऐक्सेलरेशन की खास जानकारी देखें.
आउटपुट के नतीजे मैनेज करना
मॉडल, अनुमान के नतीजे टेंसर के तौर पर जनरेट करते हैं. इन्हें आपके Android ऐप्लिकेशन को मैनेज करना होता है. इसके लिए, ऐप्लिकेशन को कोई कार्रवाई करनी होती है या उपयोगकर्ता को नतीजा दिखाना होता है. मॉडल के आउटपुट के नतीजे, इमेज की कैटगरी के लिए एक नतीजे से जुड़ी संख्या (0 = कुत्ता, 1 = बिल्ली, 2 = पक्षी) के तौर पर आसान हो सकते हैं. साथ ही, ये नतीजे बहुत ज़्यादा जटिल भी हो सकते हैं. जैसे, इमेज में कैटगरी वाले कई ऑब्जेक्ट के लिए कई बाउंडिंग बॉक्स, जिनमें अनुमान के भरोसे की रेटिंग 0 से 1 के बीच होती है.
ऐडवांस डेवलपमेंट पाथ
ज़्यादा बेहतर और पसंद के मुताबिक बनाए गए LiteRT मॉडल का इस्तेमाल करते समय, आपको ऊपर बताए गए तरीकों के मुकाबले, डेवलपमेंट के ज़्यादा बेहतर तरीकों का इस्तेमाल करना पड़ सकता है. यहां दिए गए सेक्शन में, मॉडल को चलाने और Android ऐप्लिकेशन में LiteRT के लिए उन्हें डेवलप करने की बेहतर तकनीकों के बारे में बताया गया है.
बेहतर रनटाइम एनवायरमेंट
LiteRT के लिए, स्टैंडर्ड रनटाइम और Google Play services के रनटाइम एनवायरमेंट के अलावा, ऐसे अन्य रनटाइम एनवायरमेंट भी हैं जिनका इस्तेमाल अपने Android ऐप्लिकेशन के साथ किया जा सकता है. इन एनवायरमेंट का इस्तेमाल तब किया जा सकता है, जब आपके पास ऐसा मशीन लर्निंग मॉडल हो जो LiteRT के लिए स्टैंडर्ड रनटाइम एनवायरमेंट के साथ काम न करने वाले ML ऑपरेशन का इस्तेमाल करता हो.
- LiteRT के लिए Flex रनटाइम
- कस्टम-बिल्ट LiteRT रनटाइम
LiteRT Flex रनटाइम की मदद से, अपने मॉडल के लिए ज़रूरी ऑपरेटर शामिल किए जा सकते हैं. अपने मॉडल को चलाने के लिए बेहतर विकल्प के तौर पर, Android के लिए LiteRT बनाया जा सकता है. इससे, TensorFlow मशीन लर्निंग मॉडल को चलाने के लिए ज़रूरी ऑपरेटर और अन्य सुविधाएं शामिल की जा सकती हैं. ज़्यादा जानकारी के लिए, Android के लिए LiteRT बनाएं लेख पढ़ें.
C और C++ एपीआई
LiteRT, C और C++ का इस्तेमाल करके मॉडल चलाने के लिए भी एक एपीआई उपलब्ध कराता है. अगर आपका ऐप्लिकेशन Android NDK का इस्तेमाल करता है, तो आपको इस एपीआई का इस्तेमाल करना चाहिए. अगर आपको एक से ज़्यादा प्लैटफ़ॉर्म के बीच कोड शेयर करना है, तो इस एपीआई का इस्तेमाल करें. डेवलपमेंट के इस विकल्प के बारे में ज़्यादा जानने के लिए, डेवलपमेंट टूल पेज देखें.
सर्वर-साइड मॉडल को लागू करना
आम तौर पर, आपको अपने ऐप्लिकेशन में Android डिवाइस पर मॉडल चलाने चाहिए, ताकि आप अपने उपयोगकर्ताओं के लिए कम इंतज़ार और बेहतर डेटा की निजता का फ़ायदा ले सकें. हालांकि, कुछ मामलों में डिवाइस के बजाय क्लाउड सर्वर पर मॉडल चलाना बेहतर होता है. उदाहरण के लिए, अगर आपके पास एक बड़ा मॉडल है, जिसे आसानी से अपने उपयोगकर्ताओं के Android डिवाइसों पर फ़िट होने वाले साइज़ में कम नहीं किया जा सकता या उन डिवाइसों पर सही परफ़ॉर्मेंस के साथ इस्तेमाल नहीं किया जा सकता. अगर आपकी मुख्य प्राथमिकता, अलग-अलग तरह के डिवाइसों पर मॉडल की परफ़ॉर्मेंस को बेहतर बनाना है, तो यह तरीका आपके लिए सबसे सही हो सकता है.
Google Cloud, एआई मॉडल चलाने के लिए सेवाओं का पूरा सुइट उपलब्ध कराता है. ज़्यादा जानकारी के लिए, Google Cloud का एआई और मशीन लर्निंग प्रॉडक्ट पेज देखें.
कस्टम मॉडल बनाना और उसे ऑप्टिमाइज़ करना
डेवलपमेंट के ज़्यादा बेहतर तरीकों में, कस्टम मशीन लर्निंग मॉडल बनाना और Android डिवाइसों पर इस्तेमाल करने के लिए उन मॉडल को ऑप्टिमाइज़ करना शामिल हो सकता है. अगर आपको कस्टम मॉडल बनाने हैं, तो मॉडल में क्वांटाइज़ेशन टेक्नोलॉजी का इस्तेमाल करें. इससे, मॉडल को स्टोर करने और प्रोसेस करने की लागत कम हो जाती है. LiteRT के साथ इस्तेमाल करने के लिए, बेहतर परफ़ॉर्मेंस वाले मॉडल बनाने के तरीके के बारे में ज़्यादा जानने के लिए, मॉडल सेक्शन में परफ़ॉर्मेंस के सबसे सही तरीके देखें.