TensorFlow Lite मॉडल मेकर की मदद से, टेक्स्ट का कैटगरी तय करने वाला एक कस्टम मॉडल बनाना

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

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

ज़रूरी बातें

यह कोडलैब Flutrator ऐप्लिकेशन पाथवे में टेक्स्ट की कैटगरी तय करने के साथ शुरू करें का हिस्सा है. इस पाथवे में कोडलैब को क्रम से लगाया गया है. कोडलैब के साथ-साथ, आप जिस ऐप्लिकेशन और मॉडल पर काम करते हैं वह पहले से बना होना चाहिए था. अगर आपने अभी तक पिछली गतिविधियां पूरी नहीं की हैं, तो कृपया इसे रोकें और अभी करें:

आप इन चीज़ों के बारे में जानेंगे

आपको इनकी ज़रूरत होगी

  • Fluter ऐप्लिकेशन और स्पैम-फ़िल्टर का ऐसा मॉडल जिसे आपने पिछली गतिविधियों में देखा और बनाया था.

2. टेक्स्ट की कैटगरी को बेहतर बनाने के लिए

  1. आप इस रिपॉज़िटरी का क्लोन बनाकर और tfserving-flutter/codelab2/finished फ़ोल्डर से ऐप्लिकेशन लोड करके, इस कोड के लिए कोड पा सकते हैं.
  2. TensorFlow सर्विंग डॉकर इमेज बनाने के बाद, अपने बनाए गए ऐप्लिकेशन में buy my book to learn online trading डालें और फिर gRPC > क्लासिफ़ाइड करें पर क्लिक करें.

8f1e1974522f274d.png

ऐप्लिकेशन कम स्पैम स्कोर जनरेट करता है, क्योंकि मूल डेटासेट में ऑनलाइन ट्रेडिंग की संख्या कई बार #39;नहीं होती है. साथ ही, मॉडल को यह पता नहीं चल पाया है कि यह #33; स्पैम है. इस कोडलैब में आप मॉडल को नए डेटा से अपडेट कर देते हैं, ताकि मॉडल उसी वाक्य की पहचान स्पैम के रूप में कर सके!

2bd68691a26aa3da.png

3. अपनी CSV फ़ाइल में बदलाव करें

मूल मॉडल को ट्रेनिंग देने के लिए, डेटासेट CSV (lmblog_comments.csv) के तौर पर बनाया गया था, जिसमें करीब एक हज़ार टिप्पणियां शामिल थीं. इन टिप्पणियों पर स्पैम या स्पैम नहीं हुआ. (अगर आप CSV की जांच करना चाहते हैं, तो उसे किसी भी टेक्स्ट एडिटर में खोलें.)

CSV फ़ाइल के मेकअप में पहली पंक्ति में उन कॉलम के बारे में बताया गया है जो commenttext और spam लेबल किए गए हैं. इसके बाद की हर लाइन इस फ़ॉर्मैट में होती है:

62025273971c9a7f.png

दाईं ओर मौजूद लेबल को स्पैम के लिए true मान और स्पैम नहीं के लिए false मान असाइन किया गया है. उदाहरण के लिए, तीसरी लाइन को स्पैम माना गया है.

अगर लोग ऑनलाइन ट्रेडिंग से जुड़े मैसेज दिखाने के मकसद से आपकी वेबसाइट को स्पैम करते हैं, तो आप वेबसाइट के निचले हिस्से में स्पैम टिप्पणियों के उदाहरण जोड़ सकते हैं. उदाहरण के लिए:

online trading can be highly highly effective,true
online trading can be highly effective,true
online trading now,true
online trading here,true
online trading for the win,true
  • फ़ाइल को नए नाम से सेव करें, जैसे कि lmblog_comments.csv, ताकि आप इसे नए मॉडल को ट्रेनिंग देने के लिए इस्तेमाल कर सकें.

इस कोडलैब के बाकी हिस्से के लिए, आप ऑनलाइन ट्रेडिंग अपडेट के साथ Cloud Storage पर दिए गए उदाहरण, उनमें बदलाव, और होस्ट किए गए उदाहरण का इस्तेमाल करते हैं. अगर आप अपने डेटासेट का इस्तेमाल करना चाहते हैं, तो कोड में यूआरएल बदल सकते हैं.

4. मॉडल को नए डेटा से फिर से सिखाएं

मॉडल को फिर से बनाने के लिए, बस SpamCommentsModelMaker.ipynb वाले कोड का इस्तेमाल करें. इसे नए CSV डेटासेट पर ले जाएं. इसे lmblog_comments_extras.csv कहते हैं. अगर आप अपडेट की गई कॉन्टेंट वाली पूरी नोटबुक चाहते हैं, तो वह आपको SpamCommentsUpdateModelMaker.ipynb. के तौर पर मिल सकती है

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

अपडेट किया गया कोड इस कोड स्निपेट की तरह दिखता है:

training_data = tf.keras.utils.get_file(fname='comments-spam-extras.csv',   
          origin='https://storage.googleapis.com/laurencemoroney-blog.appspot.com/
                  lmblog_comments_extras.csv', 
          extract=False)

जब आप ट्रेन करते हैं, तो आपको यह पता चलता है कि मॉडल अब भी बहुत ज़्यादा सटीक लेवल पर ट्रेनिंग दे रहा है:

96a1547ddb6edf5b.png

/mm_update_spam_savedmodel के पूरे फ़ोल्डर को कंप्रेस करें और mm_update_spam_savedmodel.zip फ़ाइल को जनरेट करें.

# Rename the SavedModel subfolder to a version number
!mv /mm_update_spam_savedmodel/saved_model /mm_update_spam_savedmodel/123
!zip -r mm_update_spam_savedmodel.zip /mm_update_spam_savedmodel/

5. डॉकर शुरू करें और अपने Fluter ऐप को अपडेट करें

  1. डाउनलोड की गई mm_update_spam_savedmodel.zip फ़ाइल को एक फ़ोल्डर में अनज़िप करें. इसके बाद, पिछले कोडलैब से डॉकर कंटेनर के इंस्टेंस पर रोक लगाएं और इसे फिर से शुरू करें. इसके बाद, PATH/TO/UPDATE/SAVEDMODEL प्लेसहोल्डर को उस फ़ोल्डर के कुल पाथ से बदलें जो आपकी डाउनलोड की गई फ़ाइलों को होस्ट करता है:
docker run -it --rm -p 8500:8500 -p 8501:8501 -v "PATH/TO/UPDATE/SAVEDMODEL:/models/spam-detection" -e MODEL_NAME=spam-detection tensorflow/serving
  1. अपने lib/main.dart को अपने पसंदीदा कोड एडिटर के साथ खोलें. इसके बाद, inputTensorName और outTensorName वैरिएबल के बारे में बताने वाला हिस्सा ढूंढें:
const inputTensorName = 'input_3';
const outputTensorName = 'dense_5';
  1. inputTensorName वैरिएबल को input_1' वैल्यू में और outputTensorName वैरिएबल को 'dense_1' वैल्यू में फिर से असाइन करें:
const inputTensorName = 'input_1';
const outputTensorName = 'dense_1';
  1. किसी vocab.txt फ़ाइल को मौजूदा फ़ोल्डर से बदलने के लिए, उसे vocab.txt फ़ोल्डर में कॉपी करें.
  2. Android एम्युलेटर से, टेक्स्ट क्लासिफ़िकेशन ऐप्लिकेशन को मैन्युअल तरीके से हटाएं.
  3. ऐप्लिकेशन लॉन्च करने के लिए, अपने टर्मिनल में 'flutter run' निर्देश चलाएं.
  4. ऐप्लिकेशन में, buy my book to learn online trading डालें और फिर gRPC > क्लासिफ़ाइड पर क्लिक करें.

अब मॉडल ने मेरी किताब को ऑनलाइन ट्रेडिंग के लिए खरीदें का पता लगाने के लिए, स्पैम को बेहतर बना दिया है.

6. बधाई हो

मॉडल को नए डेटा के साथ फिर से ट्रेनिंग दी गई है. इसे Fluter ऐप्लिकेशन के साथ इंटिग्रेट किया गया है, और स्पैम से जुड़े नए वाक्यों का पता लगाने के लिए, सुविधा को अपडेट किया गया है!

ज़्यादा जानें