Android के लिए TensorFlow Lite

TensorFlow Lite की मदद से, Android ऐप्लिकेशन में TensorFlow मशीन लर्निंग (ML) मॉडल चलाए जा सकते हैं. TensorFlow Lite सिस्टम, Android पर तेज़ी और बेहतर तरीके से मॉडल चलाने के लिए पहले से बना हुआ और पसंद के मुताबिक एक्ज़ीक्यूटेबल एनवायरमेंट उपलब्ध कराता है. इनमें हार्डवेयर से तेज़ी लाने के विकल्प भी शामिल हैं.

मशीन लर्निंग मॉडल

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

इस पेज पर, पहले से बने मशीन लर्निंग मॉडल का इस्तेमाल करने के बारे में बताया गया है. हालांकि, इस पेज पर इमारत, ट्रेनिंग, टेस्टिंग या ग्राहक में बदलने वाले मॉडल के बारे में नहीं बताया गया है. मॉडल पेज पर जाकर, TensorFlow Lite के लिए मशीन लर्निंग मॉडल चुनने, उनमें बदलाव करने, उन्हें बनाने, और बदलने के बारे में ज़्यादा जानें.

Android पर मॉडल चलाना

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

Android ऐप्लिकेशन में TensorFlow Lite मॉडल के लिए फ़ंक्शन एक्ज़ीक्यूशन फ़्लो

पहला डायग्राम. Android ऐप्लिकेशन में TensorFlow Lite मॉडल के लिए फ़ंक्शन एक्ज़ीक्यूशन फ़्लो.

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

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

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

TensorFlow Lite की मदद से ऐप्लिकेशन बनाएं

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

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

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

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

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

लाइब्रेरी

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

मॉडल हासिल करना

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

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

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

अनुमान चलाएं

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

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

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

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

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

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

बेहतर रनटाइम एनवायरमेंट

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

  • TensorFlow Lite के लिए Flex रनटाइम
  • पसंद के मुताबिक बनाया गया TensorFlow Lite रनटाइम

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

C और C++ एपीआई

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

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

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

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

कस्टम मॉडल डेवलपमेंट और ऑप्टिमाइज़ेशन

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