अगर आपका ऐप्लिकेशन कस्टम TensorFlow Lite मॉडल का इस्तेमाल करता है, तो अपने मॉडल को डिप्लॉय करने के लिए Firebase ML का इस्तेमाल किया जा सकता है. Firebase की मदद से मॉडल डिप्लॉय करके, अपने ऐप्लिकेशन के शुरुआती डाउनलोड साइज़ को कम किया जा सकता है. साथ ही, ऐप्लिकेशन का नया वर्शन रिलीज़ किए बिना, ऐप्लिकेशन के एमएल मॉडल अपडेट किए जा सकते हैं. इसके अलावा, रिमोट कॉन्फ़िगरेशन और A/B टेस्टिंग की मदद से, उपयोगकर्ताओं के अलग-अलग ग्रुप को डाइनैमिक तरीके से अलग-अलग मॉडल दिखाए जा सकते हैं.
TensorFlow Lite मॉडल
TensorFlow Lite मॉडल, एमएल मॉडल होते हैं. इन्हें मोबाइल डिवाइसों पर चलाने के लिए ऑप्टिमाइज़ किया जाता है. TensorFlow Lite मॉडल पाने के लिए:
- पहले से बने मॉडल का इस्तेमाल करें. जैसे, TensorFlow Lite के आधिकारिक मॉडल में से किसी एक का इस्तेमाल करें
- TensorFlow मॉडल, Keras मॉडल या कॉन्क्रीट फ़ंक्शन को TensorFlow Lite में बदलें.
ध्यान दें कि Dart के लिए, रखरखाव की जा रही TensorFlow Lite लाइब्रेरी के उपलब्ध न होने पर, आपको अपने प्लैटफ़ॉर्म के लिए नेटिव TensorFlow Lite लाइब्रेरी के साथ इंटिग्रेट करना होगा. इस इंटिग्रेशन के बारे में यहां जानकारी नहीं दी गई है.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो Flutter के लिए Firebase SDK टूल इंस्टॉल करें और उन्हें शुरू करें.
ML मॉडल डाउनलोडर प्लगिन इंस्टॉल करने के लिए, अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से यह कमांड चलाएं:
flutter pub add firebase_ml_model_downloaderअपने प्रोजेक्ट को फिर से बनाएं:
flutter run
1. मॉडल डिप्लॉय करना
Firebase कंसोल या Firebase Admin Python और Node.js SDK टूल का इस्तेमाल करके, अपने हिसाब से बनाए गए TensorFlow मॉडल डिप्लॉय करें. कस्टम मॉडल डिप्लॉय और मैनेज करना लेख पढ़ें.
अपने Firebase प्रोजेक्ट में कस्टम मॉडल जोड़ने के बाद, आपके पास अपने ऐप्लिकेशन में मॉडल को रेफ़रंस करने का विकल्प होता है. इसके लिए, आपको वही नाम इस्तेमाल करना होगा जो आपने तय किया था. किसी भी समय, नया TensorFlow Lite मॉडल डिप्लॉय किया जा सकता है. साथ ही, getModel() को कॉल करके, उपयोगकर्ताओं के डिवाइसों पर नया मॉडल डाउनलोड किया जा सकता है (नीचे देखें).
2. मॉडल को डिवाइस पर डाउनलोड करें और TensorFlow Lite इंटरप्रेटर को शुरू करें
अपने ऐप्लिकेशन में TensorFlow Lite मॉडल का इस्तेमाल करने के लिए, पहले मॉडल डाउनलोडर का इस्तेमाल करके डिवाइस पर मॉडल का नया वर्शन डाउनलोड करें. इसके बाद, मॉडल के साथ TensorFlow Lite इंटरप्रेटर को इंस्टैंटिएट करें.
मॉडल डाउनलोड करने की प्रोसेस शुरू करने के लिए, मॉडल डाउनलोड करने वाले टूल के getModel() तरीके को कॉल करें. इसमें, मॉडल को अपलोड करते समय दिया गया नाम, यह जानकारी कि आपको हमेशा नया मॉडल डाउनलोड करना है या नहीं, और वे शर्तें बताएं जिनके तहत आपको डाउनलोड करने की अनुमति देनी है.
डाउनलोड करने के तीन तरीके उपलब्ध हैं:
| डाउनलोड टाइप | ब्यौरा |
|---|---|
localModel
|
डिवाइस से लोकल मॉडल पाएं.
अगर कोई लोकल मॉडल उपलब्ध नहीं है, तो यह latestModel की तरह काम करता है. अगर आपको मॉडल के अपडेट की जांच नहीं करनी है, तो डाउनलोड के इस टाइप का इस्तेमाल करें. उदाहरण के लिए, मॉडल के नाम पाने के लिए Remote Config का इस्तेमाल किया जा रहा है और हमेशा नए नामों से मॉडल अपलोड किए जाते हैं (सुझाया गया). |
localModelUpdateInBackground
|
डिवाइस से लोकल मॉडल पाएं और बैकग्राउंड में मॉडल को अपडेट करना शुरू करें.
अगर कोई लोकल मॉडल उपलब्ध नहीं है, तो यह latestModel की तरह काम करता है. |
latestModel
|
नया मॉडल पाएं. अगर लोकल मॉडल सबसे नया वर्शन है, तो लोकल मॉडल दिखाता है. अगर ऐसा नहीं है, तो नया मॉडल डाउनलोड करें. जब तक नया वर्शन डाउनलोड नहीं किया जाता, तब तक यह सुविधा काम नहीं करेगी. हालांकि, ऐसा करने का सुझाव नहीं दिया जाता. इस बिहेवियर का इस्तेमाल सिर्फ़ उन मामलों में करें जहां आपको साफ़ तौर पर नए वर्शन की ज़रूरत हो. |
आपको मॉडल से जुड़ी सुविधा बंद कर देनी चाहिए. उदाहरण के लिए, जब तक मॉडल डाउनलोड होने की पुष्टि नहीं हो जाती, तब तक अपने यूज़र इंटरफ़ेस (यूआई) के किसी हिस्से को धूसर कर दें या छिपा दें.
FirebaseModelDownloader.instance
.getModel(
"yourModelName",
FirebaseModelDownloadType.localModel,
FirebaseModelDownloadConditions(
iosAllowsCellularAccess: true,
iosAllowsBackgroundDownloading: false,
androidChargingRequired: false,
androidWifiRequired: false,
androidDeviceIdleRequired: false,
)
)
.then((customModel) {
// Download complete. Depending on your app, you could enable the ML
// feature, or switch from the local model to the remote model, etc.
// The CustomModel object contains the local path of the model file,
// which you can use to instantiate a TensorFlow Lite interpreter.
final localModelPath = customModel.file;
// ...
});
कई ऐप्लिकेशन, डाउनलोड करने का टास्क अपने इनिशियलाइज़ेशन कोड में शुरू करते हैं. हालांकि, मॉडल का इस्तेमाल करने से पहले, इसे किसी भी समय शुरू किया जा सकता है.
3. इनपुट डेटा पर अनुमान लगाना
अब आपके पास डिवाइस पर मॉडल फ़ाइल है. इसलिए, इसका इस्तेमाल TensorFlow Lite इंटरप्रेटर के साथ किया जा सकता है, ताकि अनुमान लगाया जा सके. Dart के लिए, TensorFlow Lite लाइब्रेरी उपलब्ध नहीं है. इसलिए, आपको iOS और Android के लिए नेटिव TensorFlow Lite लाइब्रेरी के साथ इंटिग्रेट करना होगा.
अपेंडिक्स: मॉडल की सुरक्षा
Firebase ML में TensorFlow Lite मॉडल उपलब्ध कराने का तरीका चाहे जो भी हो, Firebase ML उन्हें लोकल स्टोरेज में स्टैंडर्ड सीरियलाइज़्ड प्रोटोबफ़ फ़ॉर्मैट में सेव करता है.
सैद्धांतिक तौर पर, इसका मतलब है कि कोई भी आपके मॉडल को कॉपी कर सकता है. हालांकि, व्यवहार में ज़्यादातर मॉडल, ऐप्लिकेशन के हिसाब से बनाए जाते हैं और ऑप्टिमाइज़ेशन की वजह से उन्हें समझना मुश्किल होता है. इसलिए, जोखिम उतना ही होता है जितना कि प्रतिस्पर्धियों के आपके कोड को अलग-अलग हिस्सों में बांटकर फिर से इस्तेमाल करने से होता है. हालांकि, आपको अपने ऐप्लिकेशन में कस्टम मॉडल का इस्तेमाल करने से पहले, इस जोखिम के बारे में पता होना चाहिए.