Vertex AI AutoML की मदद से, फ़िल्म की रेटिंग का अनुमान लगाने की सुविधा

1. परिचय

इस कोडलैब में, हम Vertex AI AutoML का इस्तेमाल करके, किसी फ़िल्म के स्कोर का अनुमान लगाने वाला मॉडल बनाएंगे. साथ ही, हम डिप्लॉय किए गए मॉडल एंडपॉइंट को Java Cloud Functions से ट्रिगर करेंगे. मॉडल को BigQuery में सेव किए गए डेटा की मदद से ट्रेन किया जाता है. साथ ही, इसे Vertex AI में रजिस्टर किया जाता है. सेवाओं की सूची को दो सेक्शन में बांटा जा सकता है:

  1. मशीन लर्निंग मॉडल बनाना और उसे डिप्लॉय करना
  2. ML API का इस्तेमाल करके अनुमान लगाने के लिए ट्रिगर

एमएल मॉडल बनाना:

  1. CSV से BigQuery में इंपोर्ट किया गया डेटा
  2. AutoML मॉडल बनाने के लिए, Vertex AI में इंटिग्रेट किया गया BigQuery डेटा
  3. एंडपॉइंट एपीआई जनरेट करने के लिए, Vertex AI Model Registry में डिप्लॉय किया गया मॉडल

एमएल एपीआई का इस्तेमाल करके अनुमान लगाने के लिए ट्रिगर:

  1. डिप्लॉय किए गए AutoML मॉडल के एंडपॉइंट को ट्रिगर करने के लिए Java Cloud Functions. यह यूज़र इंटरफ़ेस (यूआई) से अनुरोध के तौर पर, फ़िल्म की जानकारी लेता है और अनुमानित फ़िल्म का स्कोर दिखाता है

यहां ऐप्लिकेशन के आर्किटेक्चर के बारे में खास जानकारी दी गई है:

5ae50607c0f2db20.png

ऊपर दिए गए आर्किटेक्चर का इस्तेमाल, इस कोडलैब के दायरे से बाहर है. हालांकि, अगर आपको क्लाइंट ऐप्लिकेशन भी डेवलप करना है, तो कृपया ब्लॉग देखें.

आइए, लागू करने के चरणों के बारे में जानें.

आपको क्या बनाना है

आपको एक

  • टेबल और मॉडल कॉम्पोनेंट को शामिल करने के लिए, BigQuery डेटासेट
  • Vertex AI AutoML मॉडल (बनाएं और डिप्लॉय करें)
  • ML API का इस्तेमाल करके अनुमान लगाने के लिए, Java Cloud Functions ट्रिगर

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

  • कोई ब्राउज़र, जैसे कि Chrome या Firefox
  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट

यहां ज़रूरी शर्तें दी गई हैं:

अपना प्रोजेक्ट बनाएं

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें.
  3. एपीआई चालू करने के लिए, BigQuery पर जाएं. अपने ब्राउज़र में यह यूआरएल डालकर, BigQuery वेब यूज़र इंटरफ़ेस (यूआई) को सीधे तौर पर भी खोला जा सकता है: https://console.cloud.google.com/bigquery

Cloud Shell चालू करें

  1. आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है. इसमें bq पहले से लोड होता है: Cloud Console में, सबसे ऊपर दाईं ओर मौजूद 'Cloud Shell चालू करें' पर क्लिक करें: 6757b2fb50ddcc2d.png
  2. Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर पहले ही सेट कर दिया गया है. पुष्टि करें कि आपने Cloud Shell में पुष्टि कर ली है. इसके लिए, यह कमांड चलाएं:
gcloud auth list
  1. यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <PROJECT_ID>

gcloud कमांड और उनके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

3. ट्रेनिंग डेटा तैयार किया जा रहा है

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

4. डेटासेट बनाना और लोड करना

BigQuery डेटासेट, टेबल का कलेक्शन होता है. किसी डेटासेट की सभी टेबल, एक ही डेटा location में सेव की जाती हैं. डेटासेट और उसकी टेबल का ऐक्सेस सीमित करने के लिए, कस्टम ऐक्सेस कंट्रोल भी अटैच किए जा सकते हैं.

  1. Cloud Shell में, "movies" नाम का डेटासेट बनाने के लिए, bq mk कमांड का इस्तेमाल करें.
bq mk --location=<<LOCATION>> movies

location को किसी क्षेत्र (asia-south1) पर सेट करें. इसे VERTEX AI चरण के लिए भी क्षेत्र के तौर पर सेट करना न भूलें. दोनों इंस्टेंस एक ही क्षेत्र में होने चाहिए.

  1. पक्का करें कि आपके पास डेटा फ़ाइल (.csv) तैयार हो. रिपॉज़िटरी को क्लोन करने और प्रोजेक्ट पर जाने के लिए, Cloud Shell में ये कमांड चलाएं:
git clone <<repository link>>

cd movie-score
  1. bq load कमांड का इस्तेमाल करके, अपनी CSV फ़ाइल को BigQuery टेबल में लोड करें. कृपया ध्यान दें कि BigQuery के यूज़र इंटरफ़ेस (यूआई) से भी सीधे तौर पर फ़ाइल अपलोड की जा सकती है:
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
  1. इन तीन तरीकों में से किसी एक तरीके से क्वेरी करें:

BigQuery के साथ तीन तरीकों से इंटरैक्ट किया जा सकता है. हम इनमें से दो तरीकों को आज़माएंगे: a. BigQuery वेब यूज़र इंटरफ़ेस (यूआई) b. bq कमांड c. एपीआई

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

मैंने क्वेरी चलाने के लिए, BigQuery Web SQL Workspace का इस्तेमाल किया है. SQL वर्कस्पेस ऐसा दिखता है:

109a0b2c7155e9b3.png

bq कमांड का इस्तेमाल करके:

bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

5. Vertex AI AutoML में BigQuery डेटा का इस्तेमाल करना

BigQuery में मौजूद डेटा का इस्तेमाल करके, सीधे तौर पर Vertex AI की मदद से AutoML मॉडल बनाएं. ध्यान दें कि हम BigQuery से भी AutoML की सुविधा का इस्तेमाल कर सकते हैं. साथ ही, मॉडल को VertexAI के साथ रजिस्टर करके एंडपॉइंट को ऐक्सेस किया जा सकता है. BigQuery AutoML के दस्तावेज़ पढ़ें. हालांकि, इस उदाहरण में हम अपना मॉडल बनाने के लिए, Vertex AI AutoML का इस्तेमाल करेंगे.

Vertex AI डेटासेट बनाना

Google Cloud Console से Vertex AI पर जाएं. अगर आपने पहले से Vertex AI API चालू नहीं किया है, तो इसे चालू करें. डेटा को बड़ा करें और डेटासेट चुनें. डेटा सेट बनाएं पर क्लिक करें. टेबल वाला डेटा टाइप और "रिग्रेशन / क्लासिफ़िकेशन" विकल्प चुनें. इसके बाद, बनाएं पर क्लिक करें:

4104c75c34cbd2d9.png

डेटा सोर्स चुनें

अगले पेज पर, कोई डेटा सोर्स चुनें. "BigQuery से कोई टेबल या व्यू चुनें" विकल्प चुनें. इसके बाद, BigQuery पाथ BROWSE फ़ील्ड में जाकर, BigQuery से टेबल चुनें. 'जारी रखें' पर क्लिक करें.

ध्यान दें: BigQuery टेबल को Vertex AI में दिखाने के लिए, BigQuery इंस्टेंस और Vertex AI डेटा सेट का क्षेत्र एक ही होना चाहिए.

b787ef18dbca4cff.png

सोर्स टेबल/व्यू चुनते समय, ब्राउज़ सूची में जाकर रेडियो बटन पर क्लिक करना न भूलें. इससे आपको यहां दिया गया तरीका अपनाने में मदद मिलेगी. अगर आपने गलती से टेबल/व्यू के नाम पर क्लिक कर दिया है, तो आपको Dataplex पर भेज दिया जाएगा. अगर आपको यह समस्या आ रही है, तो आपको बस वापस Vertex AI पर जाना होगा.

मॉडल को ट्रेन करना

  1. डेटासेट बन जाने के बाद, आपको 'विश्लेषण करें' पेज दिखेगा. इस पेज पर, नया मॉडल ट्रेन करने का विकल्प मौजूद होगा. इस पर क्लिक करें:

bf095263d57106de.png

  1. मशीन लर्निंग मॉडल के टाइप को क्लासिफ़िकेशन के तौर पर छोड़ दें. पहले पेज पर AutoML विकल्प चुनें और जारी रखें पर क्लिक करें: e50597bc3f29894c.png
  2. अपने मॉडल को कोई नाम दें. इसके बाद, दिखने वाले ड्रॉपडाउन से टारगेट कॉलम का नाम "स्कोर" चुनें और जारी रखें पर क्लिक करें.
  3. यह भी ध्यान दें कि "टेस्ट डेटासेट को BigQuery में एक्सपोर्ट करें" विकल्प को चुना जा सकता है. इससे, डेटाबेस में नतीजों के साथ टेस्ट सेट को आसानी से देखा जा सकता है. इसके लिए, इंटिग्रेशन की किसी अतिरिक्त लेयर की ज़रूरत नहीं होती. साथ ही, सेवाओं के बीच डेटा को ट्रांसफ़र भी नहीं करना पड़ता.
  4. अगले पेज पर, आपके पास ट्रेनिंग के लिए कोई भी बेहतर विकल्प चुनने का विकल्प होता है. साथ ही, यह तय किया जा सकता है कि मॉडल को कितने घंटे तक ट्रेन करना है. कृपया ध्यान दें कि ट्रेनिंग के लिए नोड के घंटों की संख्या बढ़ाने से पहले, आपको कीमत के बारे में पता होना चाहिए.

अपने नए मॉडल की ट्रेनिंग शुरू करने के लिए, 'ट्रेनिंग शुरू करें' पर क्लिक करें.

e72b004a17849bd.png

मॉडल का आकलन करना, उसे डिप्लॉय करना, और उसकी जांच करना

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

  1. ट्रेनिंग के नतीजे देखना और उनका आकलन करना 4767b4bbd7cf93fa.png
  2. अपने एपीआई एंडपॉइंट के साथ मॉडल को डिप्लॉय और टेस्ट करना

मॉडल को डिप्लॉय करने के बाद, एक एपीआई एंडपॉइंट बन जाता है. इसका इस्तेमाल आपके ऐप्लिकेशन में अनुरोध भेजने के लिए किया जा सकता है. साथ ही, जवाब में मॉडल के अनुमान के नतीजे पाए जा सकते हैं.

95fb4495618174f0.png

इस सेक्शन से आगे बढ़ने से पहले, पक्का करें कि आपने Vertex AI एंडपॉइंट सेक्शन में, डिप्लॉय किए गए मॉडल के एंडपॉइंट आईडी, जगह की जानकारी, और अन्य जानकारी को नोट कर लिया हो.

6. एमएल इनवोकेशन को ट्रिगर करने के लिए Java Cloud फ़ंक्शन

क्या आपको याद है कि एमएल डिप्लॉयमेंट के चरण में, हमारे पास एंडपॉइंट और अन्य जानकारी होती है? हम यहां इसका इस्तेमाल करने जा रहे हैं. साथ ही, Java Cloud Functions का इस्तेमाल करने की वजह से, हम डिपेंडेंसी मैनेज करने के लिए pom.xml का इस्तेमाल करेंगे. हम Vertex AI AutoML एंडपॉइंट एपीआई का इस्तेमाल करने के लिए, google-cloud-aiplatform लाइब्रेरी का इस्तेमाल करते हैं.

  1. Google Cloud Console में Cloud Functions खोजें और "Create Function" पर क्लिक करें.
  2. कॉन्फ़िगरेशन की जानकारी डालें. जैसे, एनवायरमेंट, फ़ंक्शन का नाम, क्षेत्र, ट्रिगर (इस मामले में, एचटीटीपीएस), अपनी पसंद के हिसाब से पुष्टि करने का तरीका, "एचटीटीपीएस ज़रूरी है" को चालू करें. इसके बाद, आगे बढ़ें/सेव करें पर क्लिक करें

a68272022df062f2.png

  1. अगले पेज पर, रनटाइम (Java 11), सोर्स कोड (इनलाइन या अपलोड) चुनें. इसके बाद, बदलाव करना शुरू करें

13df616369ca5951.png

  1. अगर लोकल एडिटर का इस्तेमाल किया जा रहा है, तो repo से java और pom.xml फ़ाइलों को कॉपी करें और इनलाइन एडिटर में मौजूद फ़ाइलों में चिपकाएं. हमारा सुझाव है कि आप लोकल एडिटर का इस्तेमाल करें. इसके लिए, repo से सोर्स को क्लोन करें
  2. इस उदाहरण के लिए, .java सोर्स फ़ाइल में प्रोजेक्ट आईडी, एंडपॉइंट आईडी, जगह, और एंडपॉइंट बदलें. हालांकि, कृपया ध्यान दें कि क्रेडेंशियल सेव करने के लिए, Secret Manager का इस्तेमाल करना सबसे सही तरीका है
  3. इस कोडलैब के लिए, कॉपी किए गए सोर्स कोड में मौजूद .java क्लास में, MongoDB के हिस्सों को टिप्पणी के तौर पर मार्क करें

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

7. व्यवस्थित करें

इस पोस्ट में इस्तेमाल की गई संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, यह तरीका अपनाएं:

  1. Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं
  2. प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे आपको मिटाना है. इसके बाद, मिटाएं पर क्लिक करें
  3. डायलॉग बॉक्स में, प्रोजेक्ट आईडी डालें. इसके बाद, प्रोजेक्ट मिटाने के लिए बंद करें पर क्लिक करें

8. बधाई हो

बधाई हो! आपने Vertex AI AutoML में, मूवी के स्कोर का अनुमान लगाने वाला मॉडल बना लिया है और उसे डिप्लॉय कर दिया है. साथ ही, Cloud Functions से डिप्लॉय किए गए मॉडल को ट्रिगर कर दिया है.