फ़्लटर के साथ एक कस्टम TensorFlow Lite मॉडल का उपयोग करें

यदि आपका ऐप कस्टम TensorFlow Lite मॉडल का उपयोग करता है, तो आप अपने मॉडल को तैनात करने के लिए Firebase ML का उपयोग कर सकते हैं। फायरबेस के साथ मॉडल तैनात करके, आप अपने ऐप के शुरुआती डाउनलोड आकार को कम कर सकते हैं और अपने ऐप का नया संस्करण जारी किए बिना अपने ऐप के एमएल मॉडल को अपडेट कर सकते हैं। और, रिमोट कॉन्फिग और ए/बी टेस्टिंग के साथ, आप उपयोगकर्ताओं के विभिन्न समूहों को गतिशील रूप से विभिन्न मॉडल पेश कर सकते हैं।

टेन्सरफ्लो लाइट मॉडल

TensorFlow Lite मॉडल ML मॉडल हैं जिन्हें मोबाइल उपकरणों पर चलने के लिए अनुकूलित किया गया है। TensorFlow Lite मॉडल प्राप्त करने के लिए:

ध्यान दें कि डार्ट के लिए एक अनुरक्षित TensorFlow Lite लाइब्रेरी की अनुपस्थिति में, आपको अपने प्लेटफ़ॉर्म के लिए मूल TensorFlow Lite लाइब्रेरी के साथ एकीकृत करने की आवश्यकता होगी। यह एकीकरण यहां प्रलेखित नहीं है।

शुरू करने से पहले

  1. यदि आपने पहले से ऐसा नहीं किया है तो फ़्लटर के लिए फ़ायरबेस एसडीके स्थापित करें और प्रारंभ करें

  2. अपने फ़्लटर प्रोजेक्ट की रूट निर्देशिका से, एमएल मॉडल डाउनलोडर प्लगइन स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

    flutter pub add firebase_ml_model_downloader
    
  3. अपने प्रोजेक्ट का पुनर्निर्माण करें:

    flutter run
    

1. अपना मॉडल तैनात करें

फायरबेस कंसोल या फायरबेस एडमिन पायथन और नोड.जेएस एसडीके का उपयोग करके अपने कस्टम टेन्सरफ्लो मॉडल को तैनात करें। कस्टम मॉडल तैनात और प्रबंधित करें देखें।

अपने फायरबेस प्रोजेक्ट में एक कस्टम मॉडल जोड़ने के बाद, आप अपने निर्दिष्ट नाम का उपयोग करके अपने ऐप्स में मॉडल का संदर्भ दे सकते हैं। किसी भी समय, आप एक नया TensorFlow Lite मॉडल तैनात कर सकते हैं और getModel() (नीचे देखें) पर कॉल करके उपयोगकर्ताओं के डिवाइस पर नया मॉडल डाउनलोड कर सकते हैं।

2. डिवाइस पर मॉडल डाउनलोड करें और TensorFlow Lite दुभाषिया आरंभ करें

अपने ऐप में अपने TensorFlow Lite मॉडल का उपयोग करने के लिए, पहले डिवाइस पर मॉडल का नवीनतम संस्करण डाउनलोड करने के लिए मॉडल डाउनलोडर का उपयोग करें। फिर, मॉडल के साथ एक TensorFlow Lite दुभाषिया को इंस्टेंट करें।

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

आप तीन डाउनलोड व्यवहारों में से चुन सकते हैं:

डाउनलोड प्रकार विवरण
localModel डिवाइस से स्थानीय मॉडल प्राप्त करें. यदि कोई स्थानीय मॉडल उपलब्ध नहीं है, तो यह latestModel की तरह व्यवहार करता है। यदि आप मॉडल अपडेट की जाँच में रुचि नहीं रखते हैं तो इस डाउनलोड प्रकार का उपयोग करें। उदाहरण के लिए, आप मॉडल नाम पुनर्प्राप्त करने के लिए रिमोट कॉन्फ़िगरेशन का उपयोग कर रहे हैं और आप हमेशा नए नामों (अनुशंसित) के तहत मॉडल अपलोड करते हैं।
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 दुभाषिया के साथ उपयोग कर सकते हैं। डार्ट के लिए एक अनुरक्षित TensorFlow Lite लाइब्रेरी की अनुपस्थिति में, आपको iOS और Android के लिए मूल TensorFlow Lite लाइब्रेरी के साथ एकीकृत करने की आवश्यकता होगी।

परिशिष्ट: मॉडल सुरक्षा

चाहे आप अपने TensorFlow Lite मॉडल को Firebase ML के लिए कैसे भी उपलब्ध कराएं, Firebase ML उन्हें स्थानीय भंडारण में मानक क्रमबद्ध प्रोटोबफ़ प्रारूप में संग्रहीत करता है।

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