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 में मॉडल को डिप्लॉय किया गया

ML API का इस्तेमाल करके अनुमान लगाने के लिए ट्रिगर करें:

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

इस ऐप्लिकेशन की खास जानकारी नीचे दी गई है:

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. Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud के लिए कमांड को आपके प्रोजेक्ट के बारे में जानकारी है
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए नीचे दिए गए कमांड का इस्तेमाल करें:
gcloud config set project <PROJECT_ID>

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

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

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

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

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

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

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

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

cd movie-score
  1. अपनी CSV फ़ाइल को BigQuery टेबल में लोड करने के लिए, bq लोड कमांड का इस्तेमाल करें (कृपया ध्यान दें कि इसे सीधे 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 के साथ तीन तरह से इंटरैक्ट किया जा सकता है. हम इनमें से दो तरीकों का इस्तेमाल करेंगे: अ. BigQuery वेब यूज़र इंटरफ़ेस (यूआई) b. bq निर्देश c. एपीआई

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

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

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 डेटा का इस्तेमाल करना

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

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

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

4104c75c34cbd2d9.png

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

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

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

b787ef18dbca4cff.png

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

मॉडल को ट्रेनिंग दें

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

bf095263d57106de.png

  1. Objective ऐप्लिकेशन को क्लासिफ़िकेशन के तौर पर मार्क करें और पहले पेज पर जाकर 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 खोजें और "फ़ंक्शन बनाएं" पर क्लिक करें.
  2. कॉन्फ़िगरेशन की जानकारी डालें, जैसे कि एनवायरमेंट, फ़ंक्शन का नाम, इलाका, ट्रिगर (इस मामले में, एचटीटीपीएस), अपनी पसंद की पुष्टि करने के लिए, "एचटीटीपीएस ज़रूरी है" को चालू करें, और आगे बढ़ें/सेव करें पर क्लिक करें

a68272022df062f2.png

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

13df616369ca5951.png

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

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

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

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

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

8. बधाई हो

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