1. खास जानकारी

TensorFlow लाइट और Firebase की मदद से, टेक्स्ट की कैटगरी तय करने वाले कोडलैब में आपका स्वागत है. इस कोडलैब में, TensorFlow Lite और Firebase का इस्तेमाल करके, टेक्स्ट की कैटगरी तय करने वाले मॉडल को ट्रेन करने और उसे अपने ऐप्लिकेशन में डिप्लॉय करने का तरीका बताया गया है. यह कोडलैब, TensorFlow Lite के इस उदाहरण पर आधारित है.
टेक्स्ट क्लासिफ़िकेशन, टेक्स्ट को उसके कॉन्टेंट के हिसाब से टैग या कैटगरी असाइन करने की प्रोसेस है. यह नैचुरल लैंग्वेज प्रोसेसिंग (एनएलपी) के बुनियादी कामों में से एक है. इसका इस्तेमाल कई कामों के लिए किया जाता है. जैसे, भावना का विश्लेषण करना, विषय के हिसाब से लेबल लगाना, स्पैम का पता लगाना, और इरादे का पता लगाना.
टेक्स्ट का विश्लेषण करने की तकनीकों का इस्तेमाल करके, टेक्स्ट डेटा में मौजूद भावनाओं (सकारात्मक, नकारात्मक, और सामान्य) को समझना और उन्हें कैटगरी में बांटना, भावनाओं का विश्लेषण कहलाता है. भावनाओं का विश्लेषण करने की सुविधा की मदद से, कारोबार यह पता लगा सकते हैं कि ऑनलाइन बातचीत और सुझाव/राय/शिकायत में, ग्राहकों की भावनाएं प्रॉडक्ट, ब्रैंड या सेवाओं के बारे में कैसी हैं.
इस ट्यूटोरियल में, भावनाओं के विश्लेषण के लिए मशीन लर्निंग मॉडल बनाने का तरीका बताया गया है. खास तौर पर, टेक्स्ट को पॉज़िटिव या नेगेटिव के तौर पर क्लासिफ़ाई करने का तरीका. यह बाइनरी या दो क्लास वाली कैटगरी में बांटने का उदाहरण है. यह मशीन लर्निंग की एक अहम समस्या है, जिसका इस्तेमाल कई कामों के लिए किया जाता है.
आपको क्या सीखने को मिलेगा
- TF Lite Model Maker की मदद से, भावना का विश्लेषण करने वाले TF Lite मॉडल को ट्रेन करना
- TF Lite मॉडल को Firebase ML में डिप्लॉय करना और उन्हें अपने ऐप्लिकेशन से ऐक्सेस करना
- Firebase Analytics की मदद से, मॉडल की परफ़ॉर्मेंस को मेज़र करने के लिए उपयोगकर्ता की प्रतिक्रिया को ट्रैक करना
- Firebase Performance Monitoring की मदद से, प्रोफ़ाइल मॉडल की परफ़ॉर्मेंस को मॉनिटर करना
- चुनें कि डिप्लॉय किए गए कई मॉडल में से, कौनसा मॉडल Remote Config के ज़रिए लोड किया जाएगा
- Firebase A/B टेस्टिंग की मदद से, अलग-अलग मॉडल आज़माना
आपको इनकी ज़रूरत होगी
- Xcode 11 (या इसके बाद का वर्शन)
- CocoaPods 1.9.1 (या इसके बाद के वर्शन)
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Android ऐप्लिकेशन बनाने के अपने अनुभव को आप क्या रेटिंग देंगे?
2. Firebase कंसोल प्रोजेक्ट बनाना
प्रोजेक्ट में Firebase जोड़ना
- Firebase कंसोल पर जाएं.
- नया प्रोजेक्ट बनाएं चुनें और अपने प्रोजेक्ट का नाम "Firebase ML iOS Codelab" रखें.
3. सैंपल प्रोजेक्ट पाना
कोड डाउनलोड करना
सबसे पहले, सैंपल प्रोजेक्ट को क्लोन करें और प्रोजेक्ट डायरेक्ट्री में pod update चलाएं:
git clone https://github.com/FirebaseExtended/codelab-textclassification-ios.git cd codelab-textclassification-ios pod install --repo-update
अगर आपने git इंस्टॉल नहीं किया है, तो सैंपल प्रोजेक्ट को GitHub पेज से डाउनलोड किया जा सकता है. इसके अलावा, इस लिंक पर क्लिक करके भी इसे डाउनलोड किया जा सकता है. प्रोजेक्ट डाउनलोड करने के बाद, इसे Xcode में चलाएं और टेक्स्ट क्लासिफ़िकेशन की सुविधा को आज़माएं. इससे आपको पता चलेगा कि यह सुविधा कैसे काम करती है.
Firebase सेट अप करना
नया Firebase प्रोजेक्ट बनाने के लिए, दस्तावेज़ पढ़ें. प्रोजेक्ट मिलने के बाद, Firebase कंसोल से अपने प्रोजेक्ट की GoogleService-Info.plist फ़ाइल डाउनलोड करें. इसके बाद, उसे Xcode प्रोजेक्ट के रूट में खींचें.

Firebase को अपने Podfile में जोड़ें और pod install चलाएं.
pod 'FirebaseMLModelDownloader', '9.3.0-beta'
अपने AppDelegate के didFinishLaunchingWithOptions तरीके में, फ़ाइल में सबसे ऊपर Firebase इंपोर्ट करें
import FirebaseCore
साथ ही, Firebase को कॉन्फ़िगर करने के लिए कॉल जोड़ें.
FirebaseApp.configure()
प्रोजेक्ट को फिर से चलाएं, ताकि यह पक्का किया जा सके कि ऐप्लिकेशन को सही तरीके से कॉन्फ़िगर किया गया है और वह लॉन्च होने पर क्रैश नहीं होता है.
4. भावनाओं का विश्लेषण करने वाले मॉडल को ट्रेन करना
हम TensorFlow Lite Model Maker का इस्तेमाल करके, टेक्स्ट की कैटगरी तय करने वाले मॉडल को ट्रेन करेंगे. इससे किसी टेक्स्ट के बारे में अनुमान लगाया जा सकेगा.
इस चरण को Python notebook के तौर पर दिखाया गया है. इसे Google Colab में खोला जा सकता है.
Colab में खोलें
इस चरण को पूरा करने के बाद, आपके पास एक ऐसा TensorFlow लाइट मॉडल होगा जो मोबाइल ऐप्लिकेशन पर डिप्लॉय करने के लिए तैयार होगा. यह मॉडल, टेक्स्ट के आधार पर लोगों की भावनाओं का विश्लेषण कर सकता है.
5. Firebase ML में मॉडल डिप्लॉय करना
किसी मॉडल को Firebase ML पर डिप्लॉय करने के दो मुख्य फ़ायदे हैं:
- हम ऐप्लिकेशन के इंस्टॉल साइज़ को कम रख सकते हैं और सिर्फ़ ज़रूरत पड़ने पर मॉडल को डाउनलोड कर सकते हैं
- मॉडल को नियमित तौर पर अपडेट किया जा सकता है. साथ ही, इसे पूरे ऐप्लिकेशन से अलग रिलीज़ साइकल के साथ अपडेट किया जा सकता है
मॉडल को कंसोल या प्रोग्राम के ज़रिए डिप्लॉय किया जा सकता है. इसके लिए, Firebase Admin SDK का इस्तेमाल किया जाता है. इस चरण में, हम कंसोल के ज़रिए ऐप्लिकेशन को डिप्लॉय करेंगे.
सबसे पहले, Firebase कंसोल खोलें. इसके बाद, बाईं ओर मौजूद नेविगेशन पैनल में, मशीन लर्निंग पर क्लिक करें. अगर आपने पहली बार इस सुविधा को खोला है, तो ‘शुरू करें' पर क्लिक करें. इसके बाद, "कस्टम" पर जाएं और "मॉडल जोड़ें" बटन पर क्लिक करें.
जब आपसे कहा जाए, तब मॉडल को sentiment_analysis नाम दें. इसके बाद, उस फ़ाइल को अपलोड करें जिसे आपने पिछले चरण में Colab से डाउनलोड किया था.

6. Firebase ML से मॉडल डाउनलोड करना
Firebase से रिमोट मॉडल को अपने ऐप्लिकेशन में कब डाउनलोड करना है, यह तय करना मुश्किल हो सकता है. ऐसा इसलिए, क्योंकि TFLite मॉडल का साइज़ काफ़ी बड़ा हो सकता है. हमारा सुझाव है कि ऐप्लिकेशन लॉन्च होने पर, मॉडल को तुरंत लोड न करें. ऐसा इसलिए, क्योंकि अगर हमारे मॉडल का इस्तेमाल सिर्फ़ एक सुविधा के लिए किया जाता है और उपयोगकर्ता कभी उस सुविधा का इस्तेमाल नहीं करता है, तो हम बिना किसी वजह के काफ़ी डेटा डाउनलोड कर लेंगे. हम डाउनलोड करने के विकल्प भी सेट कर सकते हैं. जैसे, सिर्फ़ वाई-फ़ाई से कनेक्ट होने पर मॉडल फ़ेच करना. अगर आपको यह पक्का करना है कि मॉडल, नेटवर्क कनेक्शन न होने पर भी उपलब्ध हो, तो इसे ऐप्लिकेशन के बिना बैकअप के तौर पर बंडल करना भी ज़रूरी है.
आसानी के लिए, हम बंडल किए गए डिफ़ॉल्ट मॉडल को हटा देंगे. साथ ही, ऐप्लिकेशन के पहली बार शुरू होने पर, हमेशा Firebase से मॉडल डाउनलोड करेंगे. इस तरह, भावना का विश्लेषण करते समय यह पक्का किया जा सकता है कि अनुमान, Firebase से मिले मॉडल के हिसाब से लगाया जा रहा है.
ModelLoader.swift में सबसे ऊपर, Firebase मॉड्यूल इंपोर्ट करें.
import FirebaseCore import FirebaseMLModelDownloader
इसके बाद, यहां दिए गए तरीकों का इस्तेमाल करें.
static func downloadModel(named name: String,
completion: @escaping (CustomModel?, DownloadError?) -> Void) {
guard FirebaseApp.app() != nil else {
completion(nil, .firebaseNotInitialized)
return
}
guard success == nil && failure == nil else {
completion(nil, .downloadInProgress)
return
}
let conditions = ModelDownloadConditions(allowsCellularAccess: false)
ModelDownloader.modelDownloader().getModel(name: name, downloadType: .localModelUpdateInBackground, conditions: conditions) { result in
switch (result) {
case .success(let customModel):
// Download complete.
// The CustomModel object contains the local path of the model file,
// which you can use to instantiate a TensorFlow Lite classifier.
return completion(customModel, nil)
case .failure(let error):
// Download was unsuccessful. Notify error message.
completion(nil, .downloadFailed(underlyingError: error))
}
}
}
ViewController.swift के viewDidLoad में, loadModel() को कॉल करने के तरीके को, मॉडल डाउनलोड करने के हमारे नए तरीके से बदलें.
// Download the model from Firebase
print("Fetching model...")
ModelLoader.downloadModel(named: "sentiment_analysis") { (customModel, error) in
guard let customModel = customModel else {
if let error = error {
print(error)
}
return
}
print("Model download complete")
// TODO: Initialize an NLClassifier from the downloaded model
}
ऐप्लिकेशन को फिर से चलाएं. कुछ सेकंड बाद, आपको Xcode में एक लॉग दिखेगा. इससे पता चलेगा कि रिमोट मॉडल डाउनलोड हो गया है. कुछ टेक्स्ट टाइप करके देखें और पुष्टि करें कि ऐप्लिकेशन के काम करने के तरीके में कोई बदलाव नहीं हुआ है.
7. मॉडल को अपने ऐप्लिकेशन में इंटिग्रेट करना
TensorFlow Lite Task Library की मदद से, TensorFlow Lite मॉडल को अपने ऐप्लिकेशन में इंटिग्रेट किया जा सकता है. इसके लिए, आपको कोड की कुछ ही लाइनें लिखनी होंगी. हम Firebase से डाउनलोड किए गए TensorFlow Lite मॉडल का इस्तेमाल करके, TFLNLClassifier इंस्टेंस को शुरू करेंगे. इसके बाद, हम इसका इस्तेमाल ऐप्लिकेशन इस्तेमाल करने वाले लोगों के टेक्स्ट इनपुट को कैटगरी में बांटने के लिए करेंगे. साथ ही, यूज़र इंटरफ़ेस (यूआई) पर नतीजे दिखाएंगे.
डिपेंडेंसी जोड़ना
ऐप्लिकेशन की Podfile पर जाएं और ऐप्लिकेशन की डिपेंडेंसी में TensorFlow Lite Task Library (Text) जोड़ें. पक्का करें कि आपने डिपेंडेंसी को target 'TextClassification' डिक्लेरेशन के तहत जोड़ा हो.
pod 'TensorFlowLiteTaskText', '~> 0.2.0'
नई डिपेंडेंसी इंस्टॉल करने के लिए, pod install चलाएं.
टेक्स्ट क्लासिफ़ायर को शुरू करना
इसके बाद, हम Task Library के NLClassifier का इस्तेमाल करके, Firebase से डाउनलोड किए गए भावनाओं का विश्लेषण मॉडल को लोड करेंगे.
ViewController.swift
आइए, TFLNLClassifier इंस्टेंस वैरिएबल का एलान करें. फ़ाइल में सबसे ऊपर, नई डिपेंडेंसी इंपोर्ट करें:
import TensorFlowLiteTaskText
आपको यह टिप्पणी, पिछले चरण में बदले गए तरीके के ऊपर दिखेगी:
// TODO: Add a TFLNLClassifier property.
TODO की जगह यह कोड डालें:
private var classifier: TFLNLClassifier?
Firebase से डाउनलोड किए गए भावनाओं का विश्लेषण मॉडल की मदद से, textClassifier वैरिएबल को शुरू करें. हमने पिछले चरण में यह टिप्पणी जोड़ी थी. इसे ढूंढें:
// TODO: Initialize an NLClassifier from the downloaded model
TODO की जगह यह कोड डालें:
let options = TFLNLClassifierOptions()
self.classifier = TFLNLClassifier.nlClassifier(modelPath: customModel.path, options: options)
टेक्स्ट को कैटगरी में बांटें
classifier इंस्टेंस सेट अप हो जाने के बाद, एक ही तरीके से कॉल करके, भावना का विश्लेषण किया जा सकता है.
ViewController.swift
classify(text:) तरीके में, TODO टिप्पणी ढूंढें:
// TODO: Run sentiment analysis on the input text
कॉमेंट की जगह यह कोड डालें:
guard let classifier = self.classifier else { return }
// Classify the text
let classifierResults = classifier.classify(text: text)
// Append the results to the list of results
let result = ClassificationResult(text: text, results: classifierResults)
results.append(result)
8. फ़ाइनल ऐप्लिकेशन चलाना
आपने ऐप्लिकेशन में भावनाओं का विश्लेषण करने वाला मॉडल इंटिग्रेट कर दिया है. इसलिए, आइए इसे टेस्ट करें. अपने iOS डिवाइस को कनेक्ट करें. इसके बाद, Xcode टूलबार में मौजूद Run (
) पर क्लिक करें.
ऐप्लिकेशन को, फ़िल्म की समीक्षा में इस्तेमाल किए गए शब्दों के आधार पर, समीक्षा करने वाले व्यक्ति की भावना का सही अनुमान लगाना चाहिए.

9. ज़्यादा Firebase सुविधाओं की मदद से ऐप्लिकेशन को पावर अप करना
Firebase, TFLite मॉडल को होस्ट करने के साथ-साथ, मशीन लर्निंग के इस्तेमाल के उदाहरणों को बेहतर बनाने के लिए कई अन्य सुविधाएं भी देता है:
- Firebase Performance Monitoring का इस्तेमाल करके, उपयोगकर्ताओं के डिवाइस पर चल रहे मॉडल की अनुमान लगाने की स्पीड को मेज़र करें.
- Firebase Analytics, यह मेज़र करने के लिए कि आपका मॉडल प्रोडक्शन में कैसा परफ़ॉर्म कर रहा है. इसके लिए, उपयोगकर्ता की प्रतिक्रिया को मेज़र किया जाता है.
- अपने मॉडल के कई वर्शन को टेस्ट करने के लिए, Firebase A/B टेस्टिंग का इस्तेमाल करना
- क्या आपको याद है कि हमने पहले अपने TFLite मॉडल के दो वर्शन को ट्रेन किया था? A/B टेस्टिंग की मदद से, यह पता लगाया जा सकता है कि प्रोडक्शन में कौनसा वर्शन बेहतर परफ़ॉर्म कर रहा है!
अपने ऐप्लिकेशन में इन सुविधाओं का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, यहां दिए गए कोडलैब देखें:
10. बधाई हो!
इस कोडलैब में, आपने यह सीखा कि भावनाओं का विश्लेषण करने वाले TFLite मॉडल को कैसे ट्रेन किया जाता है. साथ ही, Firebase का इस्तेमाल करके उसे अपने मोबाइल ऐप्लिकेशन में कैसे डिप्लॉय किया जाता है. TFLite और Firebase के बारे में ज़्यादा जानने के लिए, TFLite के अन्य सैंपल और Firebase की शुरू करने से जुड़ी गाइड देखें.
हमने क्या-क्या शामिल किया है
- TensorFlow लाइट
- Firebase ML
अगले चरण
- Firebase Performance Monitoring की मदद से, मॉडल इन्फ़रेंस की स्पीड का आकलन करें.
- Firebase ML Model Management API के ज़रिए, Colab से मॉडल को सीधे Firebase पर डिप्लॉय करें.
- अनुमान के नतीजों पर लोगों से सुझाव/राय पाने या शिकायत करने की सुविधा जोड़ें. साथ ही, लोगों के सुझाव/राय या शिकायत को ट्रैक करने के लिए, Firebase Analytics का इस्तेमाल करें.
- Firebase A/B टेस्टिंग की मदद से, एवरेज वर्ड वेक्टर मॉडल और MobileBERT मॉडल का A/B टेस्ट करें.
ज़्यादा जानें
- Firebase Machine Learning से जुड़ा दस्तावेज़
- TensorFlow Lite के दस्तावेज़
- Firebase की मदद से ऐप्लिकेशन की परफ़ॉर्मेंस मेज़र करना
- Firebase की मदद से A/B टेस्टिंग मॉडल