TensorFlow.js: किनारे के मामलों को हैंडल करने के लिए, स्पैम टिप्पणी की पहचान करने वाले मॉडल को फिर से ट्रेनिंग दें

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

इस कोडलैब को इस तरह से डिज़ाइन किया गया है कि यह TensorFlow.js का इस्तेमाल करके, स्पैम वाली टिप्पणियों का पता लगाने के लिए, इस सीरीज़ के पिछले कोडलैब के आखिर में मिले नतीजे पर आधारित हो.

आपने पिछले कोडलैब में, काल्पनिक वीडियो ब्लॉग के लिए पूरी तरह से काम करने वाला वेबपेज बनाया था. टिप्पणी स्पैम का पता लगाने के लिए, पहले से ट्रेन किए गए मॉडल का इस्तेमाल करके, टिप्पणियों को स्पैम के तौर पर फ़िल्टर किया जा सकता था. इससे पहले कि टिप्पणियों को सेव करने के लिए सर्वर पर भेजा जाए या उन्हें कनेक्ट किए गए अन्य क्लाइंट को भेजा जाए, उन्हें स्पैम के तौर पर फ़िल्टर किया जा सकता था. यह मॉडल, ब्राउज़र में TensorFlow.js की मदद से काम करता था.

उस कोड लैब का नतीजा यहाँ दिखाया गया है:

a4511e5d445706b1.gif

हालांकि, यह बहुत अच्छी तरह से काम करता है, लेकिन कुछ ऐसे मामले हैं जिनमें यह इमेज का पता नहीं लगा सका. मॉडल को फिर से ट्रेन किया जा सकता है, ताकि वह उन स्थितियों को हैंडल कर सके जिन्हें वह हैंडल नहीं कर सका.

इस कोडलैब में, नैचुरल लैंग्वेज प्रोसेसिंग (कंप्यूटर की मदद से इंसानी भाषा को समझना) का इस्तेमाल करने पर फ़ोकस किया गया है. साथ ही, इसमें यह बताया गया है कि टिप्पणी वाले स्पैम की समस्या को हल करने के लिए, बनाए गए मौजूदा वेब ऐप्लिकेशन में कैसे बदलाव किया जाए. हमारा सुझाव है कि आप कोडलैब को क्रम से पूरा करें. टिप्पणी वाले स्पैम की समस्या, वेब डेवलपर को तब ज़रूर आती है, जब वे आज के समय में मौजूद लोकप्रिय वेब ऐप्लिकेशन में से किसी एक पर काम करते हैं.

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

ज़रूरी शर्तें

  • इस सीरीज़ का पहला कोडलैब पूरा किया हो.
  • एचटीएमएल, सीएसएस, और JavaScript जैसी वेब टेक्नोलॉजी की बुनियादी जानकारी.

आपको क्या बनाने को मिलेगा

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

चलिए, हैकिंग शुरू करते हैं...

आपको क्या सीखने को मिलेगा

आपको:

  • उन खास मामलों की पहचान करना जिनमें पहले से ट्रेन किया गया मॉडल काम नहीं कर रहा था
  • Model Maker का इस्तेमाल करके बनाए गए स्पैम क्लासिफ़िकेशन मॉडल को फिर से ट्रेन करें.
  • इस Python आधारित मॉडल को ब्राउज़र में इस्तेमाल करने के लिए, TensorFlow.js फ़ॉर्मैट में एक्सपोर्ट करें.
  • होस्ट किए गए मॉडल और उसके शब्दकोश को नए मॉडल से अपडेट करें और नतीजे देखें

इस लैब के लिए, यह मान लिया गया है कि आपको एचटीएमएल5, सीएसएस, और JavaScript के बारे में जानकारी है. आपको "co lab" नोटबुक के ज़रिए कुछ Python कोड भी चलाना होगा, ताकि Model Maker का इस्तेमाल करके बनाए गए मॉडल को फिर से ट्रेन किया जा सके. हालांकि, इसके लिए Python के बारे में जानकारी होना ज़रूरी नहीं है.

2. कोडिंग के लिए सेट अप करना

वेब ऐप्लिकेशन को होस्ट करने और उसमें बदलाव करने के लिए, आपको फिर से Glitch.com का इस्तेमाल करना होगा. अगर आपने ज़रूरी शर्तें पूरी करने वाला कोडलैब पहले से पूरा नहीं किया है, तो शुरुआती पॉइंट के तौर पर यहां से फ़ाइनल नतीजे को क्लोन करें. अगर आपको यह जानना है कि कोड कैसे काम करता है, तो हमारा सुझाव है कि आप आगे बढ़ने से पहले, पिछला कोडलैब पूरा करें. इसमें बताया गया है कि इस वेब ऐप्लिकेशन को कैसे बनाया जाता है.

Glitch पर, इसे फ़ोर्क करने के लिए remix this बटन पर क्लिक करें. इसके बाद, फ़ाइलों का एक नया सेट बनाएं, जिसमें बदलाव किया जा सकता है.

3. पिछले समाधान में मौजूद मुश्किल मामलों के बारे में जानकारी पाना

अगर आपने अभी-अभी क्लोन की गई वेबसाइट को खोला है और उस पर कुछ टिप्पणियां करने की कोशिश की है, तो आपको पता चलेगा कि ज़्यादातर समय यह टूल सही तरीके से काम करता है. यह स्पैम जैसी टिप्पणियों को ब्लॉक करता है और सही टिप्पणियों को अनुमति देता है.

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

बिना किसी समस्या के पोस्ट की गई सही टिप्पणियां (ट्रू नेगेटिव):

  1. "वाह, मुझे यह वीडियो बहुत पसंद आया. शानदार काम किया है." स्पैम होने की संभावना: 47.91854%
  2. "मुझे ये डेमो बहुत पसंद आए! क्या आपको कोई और जानकारी चाहिए?" स्पैम होने की संभावना: 47.15898%
  3. "ज़्यादा जानने के लिए, मुझे किस वेबसाइट पर जाना चाहिए?" स्पैम होने की संभावना: 15.32495%

यह बहुत अच्छा है. ऊपर दी गई सभी स्थितियों की संभावना काफ़ी कम है. साथ ही, कार्रवाई किए जाने से पहले, डिफ़ॉल्ट SPAM_THRESHOLD के 75% की कम से कम संभावना को पूरा किया गया है. इसे पिछले कोडलैब के script.js कोड में तय किया गया है.

अब हम कुछ ऐसी टिप्पणियां लिखने की कोशिश करते हैं जिन्हें स्पैम के तौर पर मार्क किया जाता है, भले ही वे स्पैम न हों...

सही टिप्पणियों को स्पैम के तौर पर मार्क किया गया (गलत पॉज़िटिव):

  1. "क्या कोई उस मास्क की वेबसाइट का लिंक दे सकता है जो उसने पहना है?" स्पैम होने की संभावना: 98.46466%
  2. "क्या मैं यह गाना Spotify पर खरीद सकता हूँ? कृपया कोई मुझे बताएं!" स्पैम होने की संभावना: 94.40953%
  3. "क्या कोई मुझसे संपर्क करके, TensorFlow.js डाउनलोड करने के तरीके के बारे में जानकारी दे सकता है?" स्पैम होने की संभावना: 83.20084%

अरे नहीं! ऐसा लगता है कि इन टिप्पणियों को स्पैम के तौर पर मार्क किया जा रहा है, जबकि इन्हें अनुमति दी जानी चाहिए. इसे कैसे ठीक किया जा सकता है?

एक आसान विकल्प यह है कि SPAM_THRESHOLD को बढ़ाकर 98.5% से ज़्यादा कर दिया जाए. ऐसे में, गलत तरीके से कैटगरी में रखी गई इन टिप्पणियों को पोस्ट कर दिया जाएगा. इस बात को ध्यान में रखते हुए, आइए यहां दिए गए अन्य संभावित नतीजों के बारे में जानें...

स्पैम के तौर पर मार्क की गई स्पैम टिप्पणियां (ट्रू पॉज़िटिव):

  1. "यह बहुत अच्छा है, लेकिन मेरी वेबसाइट पर मौजूद डाउनलोड लिंक देखें. वे ज़्यादा बेहतर हैं!" स्पैम होने की संभावना: 99.77873%
  2. "I know some people who can get you some medicines just see my pr0file for details" Probability Spam: 98.46955%
  3. "ज़्यादा बेहतर वीडियो डाउनलोड करने के लिए, मेरी प्रोफ़ाइल देखें! http://example.com" स्पैम होने की संभावना: 96.26383%

ठीक है, इसलिए यह हमारे मूल थ्रेशोल्ड 75% के हिसाब से काम कर रहा है. हालांकि, पिछले चरण में आपने SPAM_THRESHOLD को 98.5% से ज़्यादा भरोसेमंद माना था. इसका मतलब है कि यहां दो उदाहरणों को अनुमति दी जाएगी. इसलिए, हो सकता है कि थ्रेशोल्ड बहुत ज़्यादा हो. क्या 96% बेहतर है? हालांकि, ऐसा करने पर पिछले सेक्शन (गलत पॉज़िटिव) में मौजूद टिप्पणियों में से किसी एक को स्पैम के तौर पर मार्क कर दिया जाएगा. ऐसा तब होगा, जब वह टिप्पणी सही हो, क्योंकि उसे 98.46466% रेटिंग मिली है.

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

चलिए जारी रखें...

स्पैम वाली टिप्पणियां जिन्हें पोस्ट करने की अनुमति दी गई थी (फ़ॉल्स नेगेटिव):

  1. "मेरी प्रोफ़ाइल पर जाकर, और भी शानदार वीडियो डाउनलोड करें!" स्पैम होने की संभावना: 7.54926%
  2. "हमारे जिम में ट्रेनिंग क्लास पर छूट पाएं. इसके लिए, प्रोफ़ाइल देखें!" स्पैम होने की संभावना: 17.49849%
  3. "omg GOOG stock just shot right up! जल्दी करें, कहीं देर न हो जाए!" स्पैम होने की संभावना: 20.42894%

इन टिप्पणियों के लिए, SPAM_THRESHOLD वैल्यू में बदलाव करके कुछ नहीं किया जा सकता. स्पैम के थ्रेशोल्ड को 96% से घटाकर ~9% करने से, असली टिप्पणियों को स्पैम के तौर पर मार्क किया जाएगा. इनमें से एक टिप्पणी को 58% रेटिंग मिली है, जबकि यह असली है. इस तरह की टिप्पणियों से निपटने का एक ही तरीका है. मॉडल को फिर से ट्रेन किया जाए. इसके लिए, ट्रेनिंग डेटा में इस तरह के मुश्किल मामलों को शामिल किया जाए, ताकि मॉडल यह जान सके कि स्पैम क्या है और क्या नहीं.

फ़िलहाल, मॉडल को फिर से ट्रेन करने का विकल्प ही बचा है. हालांकि, आपने यह भी देखा कि परफ़ॉर्मेंस को बेहतर बनाने के लिए, स्पैम का पता लगाने के थ्रेशोल्ड को कैसे बेहतर बनाया जा सकता है. एक इंसान के तौर पर, 75% काफ़ी भरोसेमंद लगता है. हालांकि, इस मॉडल के लिए, उदाहरण के तौर पर दिए गए इनपुट को ज़्यादा असरदार बनाने के लिए, आपको इसे 81.5% के आस-पास बढ़ाना होगा.

कोई ऐसी जादुई वैल्यू नहीं है जो अलग-अलग मॉडल के लिए अच्छी तरह से काम करे. साथ ही, इस थ्रेशोल्ड वैल्यू को हर मॉडल के हिसाब से सेट करना होता है. इसके लिए, यह देखना होता है कि असल दुनिया के डेटा के साथ कौनसी वैल्यू अच्छी तरह से काम करती है.

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

4. टिप्पणियों में स्पैम का पता लगाने वाले मॉडल को फिर से ट्रेन किया गया

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

पहले से तैयार मॉडल का रीकैप

आपने पहले से बने जिस मॉडल का इस्तेमाल किया था उसे तीसरे पक्ष ने Model Maker की मदद से बनाया था. यह मॉडल, "औसत शब्द एम्बेडिंग" मॉडल का इस्तेमाल करता है.

मॉडल को Model Maker की मदद से बनाया गया था. इसलिए, मॉडल को फिर से ट्रेन करने के लिए, आपको कुछ समय के लिए Python पर स्विच करना होगा. इसके बाद, बनाए गए मॉडल को TensorFlow.js फ़ॉर्मैट में एक्सपोर्ट करें, ताकि आप इसे ब्राउज़र में इस्तेमाल कर सकें. अच्छी बात यह है कि Model Maker, अपने मॉडल को इस्तेमाल करने का तरीका बहुत आसान बना देता है. इसलिए, इसे समझना काफ़ी आसान होगा. हम आपको इस प्रोसेस के बारे में पूरी जानकारी देंगे. इसलिए, अगर आपने पहले कभी Python का इस्तेमाल नहीं किया है, तो चिंता न करें!

Colabs

इस कोडलैब में, आपको Linux सर्वर सेट अप करने की ज़रूरत नहीं है. साथ ही, Python की सभी यूटिलिटी इंस्टॉल करने की भी ज़रूरत नहीं है. इसलिए, "Colab Notebook" का इस्तेमाल करके, वेब ब्राउज़र के ज़रिए कोड को आसानी से एक्ज़ीक्यूट किया जा सकता है. इन नोटबुक को "बैकएंड" से कनेक्ट किया जा सकता है. यह एक ऐसा सर्वर होता है जिसमें कुछ चीज़ें पहले से इंस्टॉल होती हैं. इसके बाद, वेब ब्राउज़र में कोई भी कोड चलाया जा सकता है और नतीजे देखे जा सकते हैं. यह सुविधा, तुरंत प्रोटोटाइप बनाने या इस तरह के ट्यूटोरियल में इस्तेमाल करने के लिए बहुत काम की है.

बस colab.research.google.com पर जाएं. इसके बाद, आपको स्वागत स्क्रीन दिखेगी. यह स्क्रीन इस तरह दिखेगी:

6b82258445885c50.png

अब पॉप-अप विंडो में सबसे नीचे दाईं ओर मौजूद, नई नोटबुक बटन पर क्लिक करें. इसके बाद, आपको इस तरह का खाली Colab दिखेगा:

2d52c8f7afa88564.png

बढ़िया! अगला चरण, फ़्रंटएंड Colab को किसी बैकएंड सर्वर से कनेक्ट करना है, ताकि लिखा गया Python कोड चलाया जा सके. इसके लिए, सबसे ऊपर दाईं ओर मौजूद कनेक्ट करें पर क्लिक करें. इसके बाद, होस्ट किए गए रनटाइम से कनेक्ट करें को चुनें.

fa5f578a1a3d352b.png

कनेक्ट होने के बाद, आपको RAM और डिस्क के आइकॉन दिखने चाहिए. जैसे:

541c9894fb39d4cb.png

बहुत खूब! अब Model Maker मॉडल को फिर से ट्रेन करने के लिए, Python में कोडिंग शुरू की जा सकती है. बस नीचे दिए चरणों का अनुसरण करें.

पहला चरण

अभी खाली दिख रही पहली सेल में, यहां दिया गया कोड कॉपी करें. यह आपके लिए TensorFlow Lite Model Maker को इंस्टॉल करेगा. इसके लिए, Python के पैकेज मैनेजर "pip" का इस्तेमाल किया जाएगा. यह npm जैसा ही है. इस कोड लैब को पढ़ने वाले ज़्यादातर लोग, JS इकोसिस्टम से npm के बारे में ज़्यादा जानते होंगे:

!apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0
!pip install -q tflite-model-maker

हालांकि, सेल में कोड चिपकाने से वह काम नहीं करेगा. इसके बाद, अपने माउस को उस ग्रे सेल पर घुमाएं जिसमें आपने ऊपर दिया गया कोड चिपकाया है. इसके बाद, सेल के बाईं ओर एक छोटा "चलाएं" आइकॉन दिखेगा. इसे यहां हाइलाइट किया गया है:

7ac5e3516bed6335.png सेल में अभी-अभी टाइप किए गए कोड को लागू करने के लिए, 'चलाएँ' बटन पर क्लिक करें.

अब आपको मॉडल मेकर इंस्टॉल होता हुआ दिखेगा:

651f21b04fb648cc.png

जब यह सेल पूरी हो जाए, तब नीचे दिए गए अगले चरण पर जाएं.

दूसरा चरण

इसके बाद, यहां दिखाए गए तरीके से एक नई कोड सेल जोड़ें, ताकि पहली सेल के बाद कुछ और कोड चिपकाया जा सके और उसे अलग से चलाया जा सके:

869904a9d774c455.png

इसके बाद, जिस सेल को एक्ज़ीक्यूट किया जाएगा उसमें कई इंपोर्ट होंगे. नोटबुक के बाकी कोड को इनका इस्तेमाल करना होगा. बनाई गई नई सेल में, नीचे दिए गए कोड को कॉपी करके चिपकाएं:

import numpy as np
import os

from tflite_model_maker import configs
from tflite_model_maker import ExportFormat
from tflite_model_maker import model_spec
from tflite_model_maker import text_classifier
from tflite_model_maker.text_classifier import DataLoader

import tensorflow as tf
assert tf.__version__.startswith('2')
tf.get_logger().setLevel('ERROR')

यह काफ़ी स्टैंडर्ड है, भले ही आपको Python के बारे में जानकारी न हो. आपने सिर्फ़ कुछ यूटिलिटी और स्पैम क्लासिफ़ायर के लिए ज़रूरी Model Maker फ़ंक्शन इंपोर्ट किए हैं. इससे यह भी पता चलेगा कि आपके पास TensorFlow 2.x है या नहीं. Model Maker का इस्तेमाल करने के लिए, TensorFlow 2.x होना ज़रूरी है.

आखिर में, पहले की तरह ही, सेल पर कर्सर घुमाकर "चलाएं" आइकॉन दबाकर सेल को एक्ज़ीक्यूट करें. इसके बाद, अगले चरण के लिए नई कोड सेल जोड़ें.

चरण 3

इसके बाद, रिमोट सर्वर से डेटा को अपने डिवाइस पर डाउनलोड करें. साथ ही, training_data वैरिएबल को डाउनलोड की गई लोकल फ़ाइल का पाथ सेट करें:

data_file = tf.keras.utils.get_file(fname='comment-spam-extras.csv', origin='https://storage.googleapis.com/jmstore/TensorFlowJS/EdX/code/6.5/jm_blog_comments_extras.csv', extract=False)

Model Maker, डाउनलोड की गई फ़ाइल जैसी सामान्य CSV फ़ाइलों से मॉडल को ट्रेन कर सकता है. आपको बस यह बताना होगा कि किन कॉलम में टेक्स्ट और किन कॉलम में लेबल मौजूद हैं. पांचवें चरण में, आपको यह तरीका बताया जाएगा. अगर आपको देखना है कि CSV फ़ाइल में क्या-क्या है, तो उसे सीधे तौर पर डाउनलोड करें.

ध्यान से देखने पर आपको पता चलेगा कि इस फ़ाइल का नाम jm_blog_comments_extras.csv है. यह फ़ाइल, ट्रेनिंग के लिए इस्तेमाल किया गया ओरिजनल डेटा है. इसका इस्तेमाल, स्पैम वाली टिप्पणी का पहला मॉडल combined जनरेट करने के लिए किया गया था. इसमें, आपके खोजे गए नए एज केस का डेटा भी शामिल है, ताकि यह सब एक ही फ़ाइल में हो. आपको मॉडल को ट्रेन करने के लिए इस्तेमाल किए गए ओरिजनल ट्रेनिंग डेटा के साथ-साथ, उन नए वाक्यों की भी ज़रूरत होगी जिनसे आपको सीखना है.

ज़रूरी नहीं: अगर आपने यह CSV फ़ाइल डाउनलोड की है और इसकी आखिरी कुछ लाइनें देखी हैं, तो आपको उन खास मामलों के उदाहरण दिखेंगे जो पहले ठीक से काम नहीं कर रहे थे. इन्हें सिर्फ़ मौजूदा ट्रेनिंग डेटा के आखिर में जोड़ा गया है. इस डेटा का इस्तेमाल, पहले से बने मॉडल ने खुद को ट्रेन करने के लिए किया था.

इस सेल को चलाएं. इसके बाद, जब यह चल जाए, तो एक नई सेल जोड़ें और चौथे चरण पर जाएं.

चौथा चरण

Model Maker का इस्तेमाल करते समय, आपको मॉडल नए सिरे से बनाने की ज़रूरत नहीं होती. आम तौर पर, मौजूदा मॉडल का इस्तेमाल किया जाता है. इसके बाद, उन्हें अपनी ज़रूरतों के हिसाब से बनाया जाता है.

Model Maker में, पहले से सीखी गई कई मॉडल एम्बेडिंग उपलब्ध होती हैं. इनका इस्तेमाल किया जा सकता है. हालांकि, average_word_vec का इस्तेमाल करना सबसे आसान और तेज़ है. आपने अपनी वेबसाइट बनाने के लिए, पिछले कोडलैब में इसका इस्तेमाल किया था. यहां कोड दिया गया है:

spec = model_spec.get('average_word_vec')
spec.num_words = 2000
spec.seq_len = 20
spec.wordvec_dim = 7

इसे नई सेल में चिपकाने के बाद, इसे चलाएं.

के बारे में जानकारी

num_words

parameter

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

के बारे में जानकारी

wordvec_dim

parameter

wordvec_dim पैरामीटर, हर शब्द के वेक्टर के लिए इस्तेमाल किए जाने वाले डाइमेंशन की संख्या है. ये डाइमेंशन, अलग-अलग विशेषताएं होती हैं. इन्हें ट्रेनिंग के दौरान मशीन लर्निंग एल्गोरिदम बनाता है. किसी भी शब्द को इन विशेषताओं के आधार पर मापा जा सकता है. प्रोग्राम इन विशेषताओं का इस्तेमाल करके, ऐसे शब्दों को एक-दूसरे से जोड़ने की कोशिश करेगा जो किसी न किसी तरह से मिलते-जुलते हों.

उदाहरण के लिए, अगर आपके पास यह डाइमेंशन है कि कोई शब्द कितना "मेडिकल" है, तो इस डाइमेंशन में "गोलियां" जैसे शब्द को ज़्यादा स्कोर मिल सकता है. साथ ही, इसे ज़्यादा स्कोर वाले अन्य शब्दों, जैसे कि "एक्सरे" से जोड़ा जा सकता है. हालांकि, "बिल्ली" को इस डाइमेंशन में कम स्कोर मिलेगा. ऐसा हो सकता है कि "मेडिकल डाइमेंशन" को अन्य संभावित डाइमेंशन के साथ मिलाकर, स्पैम का पता लगाया जा सके. ऐसे में, यह उन डाइमेंशन का इस्तेमाल कर सकता है जो ज़रूरी हैं.

"मेडिकल डाइमेंशन" में ज़्यादा स्कोर करने वाले शब्दों के मामले में, यह पता चल सकता है कि मानव शरीर से जुड़े शब्दों को शामिल करने वाला दूसरा डाइमेंशन काम का हो सकता है. "पैर", "हाथ", "गर्दन" जैसे शब्दों को यहां ज़्यादा स्कोर मिल सकता है. साथ ही, इन्हें मेडिकल डाइमेंशन में भी काफ़ी ज़्यादा स्कोर मिल सकता है.

मॉडल इन डाइमेंशन का इस्तेमाल करके, ऐसे शब्दों का पता लगा सकता है जो स्पैम से जुड़े हो सकते हैं. ऐसा हो सकता है कि स्पैम ईमेल में, चिकित्सा और मानव शरीर के अंगों से जुड़े शब्द शामिल हों.

रिसर्च के आधार पर यह सामान्य नियम तय किया गया है कि शब्दों की संख्या का चौथा मूल, इस पैरामीटर के लिए सही होता है. इसलिए, अगर मुझे 2,000 शब्दों का इस्तेमाल करना है, तो इसके लिए सात डाइमेंशन का इस्तेमाल करना सही रहेगा. इस्तेमाल किए गए शब्दों की संख्या बदलने पर, इसे भी बदला जा सकता है.

के बारे में जानकारी

seq_len

parameter

इनपुट वैल्यू के मामले में, मॉडल आम तौर पर बहुत सटीक होते हैं. किसी भाषा मॉडल के लिए, इसका मतलब है कि भाषा मॉडल, किसी खास लंबाई के वाक्यों को क्लासिफ़ाई कर सकता है. यह seq_len पैरामीटर से तय होता है. इसका मतलब है ‘sequence length'. शब्दों को संख्याओं (या टोकन) में बदलने पर, कोई वाक्य इन टोकन का क्रम बन जाता है. इसलिए, इस मामले में आपके मॉडल को 20 टोकन वाले वाक्यों को क्लासिफ़ाई करने और उनकी पहचान करने के लिए ट्रेन किया जाएगा. अगर वाक्य इससे ज़्यादा लंबा है, तो उसे छोटा कर दिया जाएगा. अगर यह छोटा है, तो इसे पैड किया जाएगा. ठीक वैसे ही जैसे इस सीरीज़ के पहले कोडलैब में किया गया था.

पांचवां चरण - ट्रेनिंग के लिए डेटा लोड करना

आपने पहले CSV फ़ाइल डाउनलोड की थी. अब इस डेटा को ट्रेनिंग डेटा में बदलने के लिए, डेटा लोडर का इस्तेमाल करें. इससे मॉडल इस डेटा को पहचान पाएगा.

data = DataLoader.from_csv(
      filename=data_file,
      text_column='commenttext', 
      label_column='spam', 
      model_spec=spec,
      delimiter=',',
      shuffle=True,
      is_training=True)

train_data, test_data = data.split(0.9)

अगर CSV फ़ाइल को किसी एडिटर में खोला जाता है, तो आपको दिखेगा कि हर लाइन में सिर्फ़ दो वैल्यू हैं. इनके बारे में फ़ाइल की पहली लाइन में टेक्स्ट के साथ बताया गया है. आम तौर पर, इसके बाद हर एंट्री को ‘कॉलम' माना जाता है. आपको दिखेगा कि पहले कॉलम के लिए डिस्क्रिप्टर commenttext है. साथ ही, हर लाइन की पहली एंट्री, टिप्पणी का टेक्स्ट है.

इसी तरह, दूसरी कॉलम के लिए डिस्क्रिप्टर spam है. आपको दिखेगा कि हर लाइन की दूसरी एंट्री TRUE या FALSE है. इससे पता चलता है कि उस टेक्स्ट को स्पैम वाली टिप्पणी माना गया है या नहीं. अन्य प्रॉपर्टी, चरण 4 में बनाई गई मॉडल स्पेसिफ़िकेशन सेट करती हैं. साथ ही, एक डेलिमिटर वर्ण भी सेट करती हैं. इस मामले में, यह कॉमा है, क्योंकि फ़ाइल को कॉमा लगाकर अलग किया गया है. ट्रेनिंग डेटा को क्रम से लगाने के लिए, शफ़ल पैरामीटर भी सेट किया जाता है. इससे, एक जैसी या एक साथ इकट्ठा की गई चीज़ें, डेटा सेट में अलग-अलग जगहों पर दिखती हैं.

इसके बाद, डेटा को ट्रेनिंग और टेस्ट डेटा में बांटने के लिए, data.split() का इस्तेमाल करें. .9 से पता चलता है कि डेटासेट का 90% हिस्सा ट्रेनिंग के लिए इस्तेमाल किया जाएगा और बाकी हिस्सा टेस्टिंग के लिए.

छठा चरण - मॉडल बनाना

एक और सेल जोड़ें, जहां हम मॉडल बनाने के लिए कोड जोड़ेंगे:

model = text_classifier.create(train_data, model_spec=spec, epochs=50)

इससे Model Maker की मदद से, टेक्स्ट क्लासिफ़ायर मॉडल तैयार होता है. इसमें आपको ट्रेनिंग के लिए इस्तेमाल किया जाने वाला डेटा (जिसे चौथे चरण में तय किया गया था), मॉडल की खास जानकारी (जिसे चौथे चरण में भी सेट अप किया गया था), और इपॉक की संख्या तय करनी होती है. इस मामले में, यह संख्या 50 है.

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

bbe4b896d8060bc4.png

इसके बाद, यह इस प्रोसेस के नतीजों का आकलन करेगा. साथ ही, अनुमान को बेहतर बनाने के लिए मॉडल के वेट में बदलाव करेगा और फिर से कोशिश करेगा. यह एक इपॉक है. इसलिए, epochs=50 तय करने पर, यह ‘लूप' 50 बार चलेगा. जैसा कि यहां दिखाया गया है:

4ed286d114960ca.png

इसलिए, 50वें इपॉक तक मॉडल, ज़्यादा सटीक नतीजे देगा. इस मामले में, 99.1% दिखाया जा रहा है!

सातवां चरण - मॉडल एक्सपोर्ट करना

ट्रेनिंग पूरी होने के बाद, मॉडल को एक्सपोर्ट किया जा सकता है. TensorFlow, मॉडल को अपने फ़ॉर्मैट में ट्रेन करता है. इसे वेब पेज पर इस्तेमाल करने के लिए, TensorFlow.js फ़ॉर्मैट में बदलना होता है. यहां दिए गए कोड को नई सेल में चिपकाएं और इसे चलाएं:

model.export(export_dir="/js_export/", export_format=[ExportFormat.TFJS, ExportFormat.LABEL, ExportFormat.VOCAB])
!zip -r /js_export/ModelFiles.zip /js_export/

इस कोड को चलाने के बाद, अगर Colab में बाईं ओर मौजूद छोटे फ़ोल्डर आइकॉन पर क्लिक किया जाता है, तो उस फ़ोल्डर पर जाया जा सकता है जिसे आपने ऊपर एक्सपोर्ट किया था. यह फ़ोल्डर रूट डायरेक्ट्री में होता है. इसके लिए, आपको एक लेवल ऊपर जाना पड़ सकता है. यहां आपको एक्सपोर्ट की गई फ़ाइलों का ज़िप बंडल मिलेगा, जो ModelFiles.zip में मौजूद होता है.

इस zip फ़ाइल को अभी अपने कंप्यूटर पर डाउनलोड करें, क्योंकि आपको इन फ़ाइलों का इस्तेमाल ठीक उसी तरह करना होगा जैसा कि पहले कोडलैब में किया गया था:

cda3c681ebf144b4.png

बढ़िया! Python का काम खत्म हो गया है. अब JavaScript का इस्तेमाल किया जा सकता है, जो आपको पसंद है और जिसके बारे में आपको जानकारी है. वाह!

5. नए मशीन लर्निंग मॉडल को चालू करना

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

सबसे पहले, अगर आपने अभी तक ऐसा नहीं किया है, तो मॉडल के लिए उन फ़ाइलों को अनज़िप करें जिन्हें आपने अभी-अभी Model Maker Colab notebook से डाउनलोड किया है. आपको इसके अलग-अलग फ़ोल्डर में ये फ़ाइलें दिखनी चाहिए:

3ace87c57b98cfbc.png

आपके पास यहां क्या है?

  • model.json - यह उन फ़ाइलों में से एक है जिनसे ट्रेन किया गया TensorFlow.js मॉडल बनता है. आपको JS कोड में इस फ़ाइल का रेफ़रंस देना होगा.
  • group1-shard1of1.bin - यह एक बाइनरी फ़ाइल है. इसमें एक्सपोर्ट किए गए TensorFlow.js मॉडल का ज़्यादातर सेव किया गया डेटा होता है. इसे आपके सर्वर पर कहीं होस्ट करना होगा, ताकि इसे ऊपर दी गई model.json फ़ाइल वाली डायरेक्ट्री में डाउनलोड किया जा सके.
  • vocab - यह बिना एक्सटेंशन वाली एक अजीब फ़ाइल है. यह Model Maker से जुड़ी है. इससे हमें पता चलता है कि वाक्यों में शब्दों को कैसे एन्कोड किया जाता है, ताकि मॉडल उन्हें इस्तेमाल करने का तरीका समझ सके. अगले सेक्शन में, आपको इस बारे में ज़्यादा जानकारी मिलेगी.
  • labels.txt - इसमें सिर्फ़ वे क्लासनेम शामिल होते हैं जिनका अनुमान मॉडल लगाएगा. इस मॉडल के लिए, अगर इस फ़ाइल को टेक्स्ट एडिटर में खोला जाता है, तो इसमें "गलत" और "सही" लिखा होता है. इससे पता चलता है कि अनुमान के तौर पर, फ़ाइल को "स्पैम नहीं है" या "स्पैम है" के तौर पर मार्क किया गया है.

TensorFlow.js मॉडल फ़ाइलों को होस्ट करना

सबसे पहले, वेब सर्वर पर जनरेट हुई model.json और *.bin फ़ाइलों को रखें, ताकि उन्हें अपने वेब पेज से ऐक्सेस किया जा सके.

मौजूदा मॉडल फ़ाइलें मिटाना

इस सीरीज़ के पहले कोडलैब के आखिर में मिले नतीजे के आधार पर, आपको यह कोडलैब पूरा करना है. इसलिए, आपको अपलोड की गई मौजूदा मॉडल फ़ाइलें मिटानी होंगी. अगर Glitch.com का इस्तेमाल किया जा रहा है, तो बाईं ओर मौजूद फ़ाइल पैनल में जाकर model.json और group1-shard1of1.bin देखें. इसके बाद, हर फ़ाइल के लिए तीन बिंदु वाले मेन्यू के ड्रॉपडाउन पर क्लिक करें और मिटाएं चुनें. इसे यहां दिखाया गया है:

c72bfdc5a0db4d0d.png

Glitch पर नई फ़ाइलें अपलोड करना

बढ़िया! अब नई फ़ाइलें अपलोड करें:

  1. अपने Glitch प्रोजेक्ट के बाईं ओर मौजूद पैनल में, assets फ़ोल्डर खोलें. इसके बाद, अपलोड की गई पुरानी ऐसेट को मिटाएं. हालांकि, ऐसा तब करें, जब उनके नाम एक जैसे हों.
  2. कोई ऐसेट अपलोड करें पर क्लिक करें. इसके बाद, इस फ़ोल्डर में अपलोड करने के लिए group1-shard1of1.bin चुनें. अपलोड होने के बाद, यह ऐसा दिखना चाहिए:

c6739dd30e6df977.png

  1. बढ़िया! अब model.json फ़ाइल के लिए भी यही तरीका अपनाएं, ताकि आपकी ऐसेट फ़ोल्डर में दो फ़ाइलें इस तरह से दिखें:

b7858eb08bea9ac3.png

  1. अभी अपलोड की गई group1-shard1of1.bin फ़ाइल पर क्लिक करने से, आपको उसकी जगह का यूआरएल कॉपी करने का विकल्प मिलेगा. अब इस पाथ को इस तरह कॉपी करें:

19999f6644f61153.png

  1. अब स्क्रीन पर सबसे नीचे बाईं ओर, टूल > टर्मिनल पर क्लिक करें. टर्मिनल विंडो के लोड होने का इंतज़ार करें.
  2. लोड हो जाने के बाद, नीचे दिया गया कोड टाइप करें. इसके बाद, डायरेक्ट्री को www फ़ोल्डर में बदलने के लिए, Enter दबाएं:

terminal:

cd www
  1. इसके बाद, wget का इस्तेमाल करके, अभी अपलोड की गई दो फ़ाइलों को डाउनलोड करें. इसके लिए, यहां दिए गए यूआरएल को उन यूआरएल से बदलें जो आपने Glitch पर ऐसेट फ़ोल्डर में मौजूद फ़ाइलों के लिए जनरेट किए हैं. हर फ़ाइल के कस्टम यूआरएल के लिए, ऐसेट फ़ोल्डर देखें.

दोनों यूआरएल के बीच मौजूद स्पेस पर ध्यान दें. साथ ही, ध्यान दें कि आपको जिन यूआरएल का इस्तेमाल करना होगा वे दिखाए गए यूआरएल से अलग होंगे, लेकिन वे एक जैसे दिखेंगे:

टर्मिनल

wget https://cdn.glitch.com/1cb82939-a5dd-42a2-9db9-0c42cab7e407%2Fmodel.json?v=1616111344958 https://cdn.glitch.com/1cb82939-a5dd-42a2-9db9-0c42cab7e407%2Fgroup1-shard1of1.bin?v=1616017964562

बहुत बढ़िया! अब आपके पास www फ़ोल्डर में अपलोड की गई फ़ाइलों की कॉपी है.

हालांकि, फ़िलहाल ये अजीब नामों से डाउनलोड होंगी. टर्मिनल में ls टाइप करके Enter दबाने पर, आपको कुछ ऐसा दिखेगा:

6c417fdfc64762f1.png

  1. mv कमांड का इस्तेमाल करके, फ़ाइलों का नाम बदलें. कंसोल में यहां दिया गया निर्देश टाइप करें. इसके बाद, हर लाइन के बाद Enter दबाएं:

terminal:

mv *group1-shard1of1.bin* group1-shard1of1.bin
mv *model.json* model.json
  1. आखिर में, टर्मिनल में refresh टाइप करके Glitch प्रोजेक्ट को रीफ़्रेश करें और Enter दबाएं:

terminal:

refresh

रीफ़्रेश करने के बाद, अब आपको यूज़र इंटरफ़ेस के www फ़ोल्डर में model.json और group1-shard1of1.bin दिखना चाहिए:

530bb651f4dbac64.png

बढ़िया! आखिरी चरण, dictionary.js फ़ाइल को अपडेट करना है.

  1. डाउनलोड की गई नई शब्दावली फ़ाइल को सही JS फ़ॉर्मैट में बदलें. इसके लिए, टेक्स्ट एडिटर का इस्तेमाल करके मैन्युअल तरीके से फ़ाइल बदलें या इस टूल का इस्तेमाल करें. इसके बाद, मिले हुए आउटपुट को अपने www फ़ोल्डर में dictionary.js के तौर पर सेव करें. अगर आपके पास पहले से कोई dictionary.js फ़ाइल है, तो उसमें नए कॉन्टेंट को कॉपी करके चिपकाएं और फ़ाइल को सेव करें.

बहुत बढ़िया! आपने बदली गई सभी फ़ाइलों को अपडेट कर दिया है. अब वेबसाइट का इस्तेमाल करने पर, आपको पता चलेगा कि फिर से ट्रेन किए गए मॉडल को, खोजे गए और सीखे गए एज केस के बारे में जानकारी होनी चाहिए. जैसा कि यहां दिखाया गया है:

64e5cf6f6e158d6c.gif

जैसा कि आप देख सकते हैं, पहले छह ईमेल को अब सही तरीके से 'स्पैम नहीं है' के तौर पर क्लासिफ़ाई किया गया है. वहीं, दूसरे बैच के सभी छह ईमेल को स्पैम के तौर पर पहचान लिया गया है. बढ़िया!

चलिए, कुछ और वेरिएशन आज़माकर देखते हैं कि क्या यह अच्छी तरह से सामान्यीकृत हो गया है. मूल रूप से, यहां एक ऐसा वाक्य था जो इस सिद्धांत का पालन नहीं करता था. जैसे:

"अरे बाप रे, GOOG का स्टॉक तो अभी-अभी बहुत बढ़ गया! जल्दी करें, देर न हो जाए!"

इसे अब स्पैम के तौर पर सही तरीके से क्लासिफ़ाई किया गया है. हालांकि, अगर इसे बदलकर यह कर दिया जाए, तो क्या होगा:

"इसलिए, XYZ के स्टॉक की वैल्यू में बढ़ोतरी हुई है! इससे पहले कि ज़्यादा देर हो जाए, कुछ खरीद लें!"

यहां आपको स्पैम होने की 98% संभावना का अनुमान मिलता है. यह अनुमान सही है, भले ही आपने स्टॉक सिंबल और शब्दों में थोड़ा बदलाव किया हो.

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

6. बधाई हो!

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

रीकैप

इस कोडलैब में:

  1. ऐसे असामान्य मामलों का पता चला जिनमें पहले से बने स्पैम वाली टिप्पणियों के मॉडल का इस्तेमाल नहीं किया जा सकता
  2. मॉडल मेकर मॉडल को फिर से ट्रेन किया गया है, ताकि आपके बताए गए खास मामलों को ध्यान में रखा जा सके
  3. ट्रेन किए गए नए मॉडल को TensorFlow.js फ़ॉर्मैट में एक्सपोर्ट किया गया
  4. नई फ़ाइलों का इस्तेमाल करने के लिए, वेब ऐप्लिकेशन को अपडेट किया गया है

आगे क्या करना है?

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

हमारे साथ अपनी बनाई गई चीज़ें शेयर करना

आज आपने जो भी बनाया है उसे अन्य क्रिएटिव कामों के लिए भी आसानी से इस्तेमाल किया जा सकता है. हमारा सुझाव है कि आप कुछ नया और अलग सोचें और हैकिंग जारी रखें.

हमें सोशल मीडिया पर टैग करना न भूलें. इसके लिए, #MadeWithTFJS हैशटैग का इस्तेमाल करें. इससे आपके प्रोजेक्ट को TensorFlow ब्लॉग या आने वाले इवेंट में शामिल किया जा सकता है. हमें यह देखने में खुशी होगी कि आपने क्या बनाया है.

ज़्यादा जानकारी पाने के लिए, TensorFlow.js के अन्य कोडलैब

एक्सप्लोर करने के लिए वेबसाइटें