Android के लिए LiteRT

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 मॉडल के लिए, फ़ंक्शनल एक्ज़ीक्यूशन फ़्लो.

फ़ंक्शनल डिज़ाइन लेवल पर, आपके Android ऐप्लिकेशन में LiteRT मॉडल को चलाने के लिए, इन एलिमेंट का होना ज़रूरी है:

  • मॉडल को एक्ज़ीक्यूट करने के लिए, LiteRT रनटाइम एनवायरमेंट
  • डेटा को टेंसर में बदलने के लिए मॉडल इनपुट हैंडलर
  • मॉडल आउटपुट हैंडलर, ताकि आउटपुट के नतीजे वाले टेंसर मिल सकें और उन्हें अनुमान के नतीजों के तौर पर समझा जा सके

यहां दिए गए सेक्शन में बताया गया है कि LiteRT लाइब्रेरी और टूल, इन फ़ंक्शनल एलिमेंट को कैसे उपलब्ध कराते हैं.

LiteRT की मदद से ऐप्लिकेशन बनाना

इस सेक्शन में, Android ऐप्लिकेशन में LiteRT लागू करने के लिए, सुझाए गए और सबसे सामान्य तरीके के बारे में बताया गया है. आपको रनटाइम एनवायरमेंट और डेवलपमेंट लाइब्रेरी सेक्शन पर सबसे ज़्यादा ध्यान देना चाहिए. अगर आपने कोई कस्टम मॉडल बनाया है, तो ऐडवांस डेवलपमेंट पाथ सेक्शन ज़रूर देखें.

रनटाइम एनवायरमेंट के विकल्प

Android ऐप्लिकेशन में मॉडल को एक्ज़ीक्यूट करने के लिए, रनटाइम एनवायरमेंट को चालू करने के कई तरीके हैं. यहां कुछ ऐसे तरीके दिए गए हैं जिन्हें इस्तेमाल करने का सुझाव दिया जाता है:

आम तौर पर, आपको Google Play services की ओर से उपलब्ध कराए गए रनटाइम एनवायरमेंट का इस्तेमाल करना चाहिए. ऐसा इसलिए, क्योंकि यह स्टैंडर्ड एनवायरमेंट की तुलना में ज़्यादा स्पेस-इफ़िशिएंट होता है. साथ ही, यह डाइनैमिक तरीके से लोड होता है, जिससे आपके ऐप्लिकेशन का साइज़ छोटा रहता है. Google Play services भी LiteRT रनटाइम के सबसे नए और स्टेबल वर्शन का इस्तेमाल अपने-आप करता है. इससे आपको समय के साथ-साथ अतिरिक्त सुविधाएं मिलती हैं और परफ़ॉर्मेंस बेहतर होती है. अगर आपको अपना ऐप्लिकेशन उन डिवाइसों पर उपलब्ध कराना है जिनमें Google Play services शामिल नहीं हैं या आपको अपने एमएल रनटाइम एनवायरमेंट को बारीकी से मैनेज करना है, तो आपको स्टैंडर्ड LiteRT रनटाइम का इस्तेमाल करना चाहिए. इस विकल्प से, आपके ऐप्लिकेशन में अतिरिक्त कोड बंडल किया जाता है. इससे आपको अपने ऐप्लिकेशन में एमएल रनटाइम पर ज़्यादा कंट्रोल मिलता है. हालांकि, इससे आपके ऐप्लिकेशन का डाउनलोड साइज़ बढ़ जाता है.

अपने Android ऐप्लिकेशन में इन रनटाइम एनवायरमेंट को ऐक्सेस करने के लिए, LiteRT डेवलपमेंट लाइब्रेरी को अपने ऐप्लिकेशन डेवलपमेंट एनवायरमेंट में जोड़ें. अपने ऐप्लिकेशन में स्टैंडर्ड रनटाइम एनवायरमेंट इस्तेमाल करने के तरीके के बारे में जानने के लिए, अगला सेक्शन देखें.

लाइब्रेरी

Google Play services का इस्तेमाल करके, Interpreter API को ऐक्सेस किया जा सकता है. अपने Android ऐप्लिकेशन में, LiteRT core और support लाइब्रेरी का इस्तेमाल किया जा सकता है. LiteRT लाइब्रेरी और रनटाइम एनवायरमेंट का इस्तेमाल करने के बारे में प्रोग्रामिंग से जुड़ी जानकारी के लिए, Android के लिए डेवलपमेंट टूल देखें.

मॉडल पाना

Android ऐप्लिकेशन में मॉडल चलाने के लिए, LiteRT फ़ॉर्मैट वाले मॉडल की ज़रूरत होती है. प्रीबिल्ट मॉडल का इस्तेमाल किया जा सकता है. इसके अलावा, कोई मॉडल बनाकर उसे लाइट फ़ॉर्मैट में बदला जा सकता है. अपने Android ऐप्लिकेशन के लिए मॉडल पाने के बारे में ज़्यादा जानने के लिए, LiteRT के मॉडल पेज पर जाएं.

इनपुट डेटा को मैनेज करना

एमएल मॉडल में पास किया गया कोई भी डेटा, एक ऐसा टेंसर होना चाहिए जिसका डेटा स्ट्रक्चर तय हो. इसे अक्सर टेंसर का शेप कहा जाता है. किसी मॉडल की मदद से डेटा को प्रोसेस करने के लिए, आपके ऐप्लिकेशन के कोड को डेटा को उसके नेटिव फ़ॉर्मैट से बदलना होगा. जैसे, इमेज, टेक्स्ट या ऑडियो डेटा को आपके मॉडल के लिए ज़रूरी शेप वाले टेंसर में बदलना होगा.

अनुमान लगाना

अनुमान का नतीजा जनरेट करने के लिए, मॉडल के ज़रिए डेटा को प्रोसेस करने को अनुमान लगाना कहा जाता है. Android ऐप्लिकेशन में इन्फ़रेंस चलाने के लिए, LiteRT रनटाइम एनवायरमेंट, मॉडल, और इनपुट डेटा की ज़रूरत होती है.

किसी मॉडल के लिए, किसी डिवाइस पर अनुमान लगाने की स्पीड इन बातों पर निर्भर करती है: प्रोसेस किए गए डेटा का साइज़, मॉडल की जटिलता, और उपलब्ध कंप्यूटिंग संसाधन, जैसे कि मेमोरी और सीपीयू या ऐक्सलरेटर कहे जाने वाले खास प्रोसेसर. मशीन लर्निंग मॉडल, ग्राफ़िक्स प्रोसेसिंग यूनिट (जीपीयू) और टेंसर प्रोसेसिंग यूनिट (टीपीयू) जैसे खास प्रोसेसर पर ज़्यादा तेज़ी से काम कर सकते हैं. इसके लिए, LiteRT हार्डवेयर ड्राइवर का इस्तेमाल किया जाता है. इन्हें डेलिगेट कहा जाता है. डेलिगेट और मॉडल प्रोसेसिंग के हार्डवेयर ऐक्सलरेशन के बारे में ज़्यादा जानने के लिए, हार्डवेयर ऐक्सलरेशन की खास जानकारी देखें.

आउटपुट के नतीजों को मैनेज करना

मॉडल, अनुमान के नतीजे को टेंसर के तौर पर जनरेट करते हैं. इन्हें आपके Android ऐप्लिकेशन को मैनेज करना होता है. इसके लिए, ऐप्लिकेशन को कोई कार्रवाई करनी होती है या उपयोगकर्ता को कोई नतीजा दिखाना होता है. मॉडल के आउटपुट के नतीजे, इमेज क्लासिफ़िकेशन के लिए एक नतीजे से जुड़े नंबर (0 = कुत्ता, 1 = बिल्ली, 2 = पक्षी) जैसे आसान हो सकते हैं. साथ ही, ये नतीजे ज़्यादा जटिल भी हो सकते हैं. जैसे, किसी इमेज में क्लासिफ़ाइड किए गए कई ऑब्जेक्ट के लिए कई बाउंडिंग बॉक्स. इनमें अनुमान की पुष्टि करने वाली रेटिंग 0 से 1 के बीच होती है.

ऐडवांस डेवलपमेंट पाथ

ज़्यादा बेहतर और पसंद के मुताबिक बनाए गए LiteRT मॉडल का इस्तेमाल करते समय, आपको ऊपर बताए गए तरीकों के मुकाबले ज़्यादा बेहतर डेवलपमेंट के तरीकों का इस्तेमाल करना पड़ सकता है. यहां दिए गए सेक्शन में, मॉडल को लागू करने और Android ऐप्लिकेशन में LiteRT के लिए उन्हें डेवलप करने के बेहतर तरीकों के बारे में बताया गया है.

ऐडवांस रनटाइम एनवायरमेंट

LiteRT के लिए, स्टैंडर्ड रनटाइम और Google Play services रनटाइम एनवायरमेंट के अलावा, ऐसे अन्य रनटाइम एनवायरमेंट भी उपलब्ध हैं जिनका इस्तेमाल Android ऐप्लिकेशन के साथ किया जा सकता है. इन एनवायरमेंट का इस्तेमाल तब किया जा सकता है, जब आपके पास कोई ऐसा मशीन लर्निंग मॉडल हो जो एमएल ऑपरेशन का इस्तेमाल करता हो. हालांकि, ये ऑपरेशन LiteRT के लिए स्टैंडर्ड रनटाइम एनवायरमेंट के साथ काम नहीं करते.

  • LiteRT के लिए Flex runtime
  • कस्टम-बिल्ट LiteRT रनटाइम

LiteRT फ़्लेक्स रनटाइम की मदद से, अपने मॉडल के लिए ज़रूरी ऑपरेटर शामिल किए जा सकते हैं. अपने मॉडल को चलाने के लिए, ऐडवांस विकल्प के तौर पर, Android के लिए LiteRT बनाया जा सकता है. इससे, TensorFlow मशीन लर्निंग मॉडल को चलाने के लिए ज़रूरी ऑपरेटर और अन्य फ़ंक्शन शामिल किए जा सकते हैं. ज़्यादा जानकारी के लिए, Android के लिए LiteRT बनाना लेख पढ़ें.

C और C++ एपीआई

LiteRT, C और C++ का इस्तेमाल करके मॉडल चलाने के लिए एक एपीआई भी उपलब्ध कराता है. अगर आपका ऐप्लिकेशन Android NDK का इस्तेमाल करता है, तो आपको इस एपीआई का इस्तेमाल करना चाहिए. अगर आपको एक से ज़्यादा प्लैटफ़ॉर्म के बीच कोड शेयर करना है, तो इस एपीआई का इस्तेमाल किया जा सकता है. इस डेवलपमेंट विकल्प के बारे में ज़्यादा जानने के लिए, डेवलपमेंट टूल पेज देखें.

सर्वर पर आधारित मॉडल का एक्ज़ीक्यूशन

आम तौर पर, आपको अपने ऐप्लिकेशन में मॉडल को Android डिवाइस पर चलाना चाहिए. इससे आपको अपने उपयोगकर्ताओं के लिए कम समय में नतीजे पाने और डेटा की बेहतर निजता का फ़ायदा मिलता है. हालांकि, कुछ मामलों में डिवाइस से बाहर, क्लाउड सर्वर पर मॉडल चलाना बेहतर होता है. उदाहरण के लिए, अगर आपके पास कोई ऐसा बड़ा मॉडल है जिसे आसानी से कंप्रेस नहीं किया जा सकता. ऐसा करने पर, वह मॉडल उपयोगकर्ताओं के Android डिवाइसों पर काम नहीं करेगा या उन डिवाइसों पर ठीक से काम नहीं करेगा. अगर आपकी मुख्य प्राथमिकता यह है कि मॉडल की परफ़ॉर्मेंस अलग-अलग डिवाइसों पर एक जैसी हो, तो यह तरीका आपके लिए सबसे सही हो सकता है.

Google Cloud, एआई मॉडल चलाने के लिए सेवाओं का पूरा सुइट उपलब्ध कराता है. ज़्यादा जानकारी के लिए, Google Cloud का एआई और मशीन लर्निंग प्रॉडक्ट पेज देखें.

कस्टम मॉडल बनाना और उसे ऑप्टिमाइज़ करना

डेवलपमेंट के ज़्यादा बेहतर तरीकों में, कस्टम मशीन लर्निंग मॉडल डेवलप करना और Android डिवाइसों पर इस्तेमाल करने के लिए उन मॉडल को ऑप्टिमाइज़ करना शामिल है. अगर आपको कस्टम मॉडल बनाने हैं, तो पक्का करें कि आपने मॉडल पर क्वांटाइज़ेशन की तकनीकें लागू की हों. इससे मेमोरी और प्रोसेसिंग की लागत कम हो जाती है. LiteRT के साथ इस्तेमाल करने के लिए, बेहतर परफ़ॉर्मेंस वाले मॉडल बनाने के तरीके के बारे में ज़्यादा जानने के लिए, मॉडल सेक्शन में परफ़ॉर्मेंस के सबसे सही तरीके देखें.

Android के इस्तेमाल किए जा सकने वाले वर्शन

LiteRT का वर्शन स्थिति एसडीके का कम से कम लेवल कम से कम NDK लेवल (अगर इस्तेमाल किया गया है) रिलीज़ की तारीख
v1.2.0 ✅ चालू है 21 (Android 5 Lollipop) r26a 2025-03-13

अहम जानकारी: अपनी डिपेंडेंसी को अप-टू-डेट रखें, ताकि यह पक्का किया जा सके कि वे नई सुविधाओं और सुरक्षा से जुड़े अपडेट के साथ काम करती हैं.