इस कोडलैब (कोड बनाना सीखने के लिए ट्यूटोरियल) के बारे में जानकारी
1. परिचय
इस कोडलैब में, हम Vertex AI AutoML का इस्तेमाल करके, मूवी के स्कोर का अनुमान लगाने वाला मॉडल बनाएंगे. साथ ही, Java Cloud Functions से डिप्लॉय किए गए मॉडल एंडपॉइंट को ट्रिगर करेंगे. मॉडल को BigQuery में सेव किए गए डेटा से ट्रेन किया जाता है और Vertex AI में रजिस्टर किया जाता है. सेवाओं की सूची को दो सेक्शन में बांटा जा सकता है:
- एमएल मॉडल बनाना और डिप्लॉय करना
- ML API का इस्तेमाल करके अनुमान लगाने के लिए ट्रिगर करना
एमएल मॉडल बनाना:
- CSV से BigQuery में सोर्स किया गया डेटा
- ऑटोमेटेड मशीन लर्निंग (AutoML) मॉडल बनाने के लिए, Vertex AI में इंटिग्रेट किया गया BigQuery डेटा
- एंडपॉइंट एपीआई जनरेट करने के लिए, Vertex AI मॉडल रजिस्ट्री में डिप्लॉय किया गया मॉडल
ML API का इस्तेमाल करके अनुमान लगाने के लिए ट्रिगर करना:
- डिप्लॉय किए गए AutoML मॉडल के एंडपॉइंट को ट्रिगर करने के लिए Java Cloud Functions. यह यूज़र इंटरफ़ेस (यूआई) से अनुरोध के तौर पर मूवी की जानकारी लेता है और मूवी का अनुमानित स्कोर दिखाता है
यहां ऐप्लिकेशन के आर्किटेक्चर की खास जानकारी दी गई है:
ऊपर दिए गए आर्किटेक्चर का इस्तेमाल, इस कोडलैब के दायरे से बाहर है. हालांकि, अगर आपको क्लाइंट ऐप्लिकेशन भी डेवलप करना है, तो कृपया ब्लॉग देखें.
आइए, लागू करने के चरणों के बारे में जानते हैं.
आपको क्या बनाना है
आपको एक
- टेबल और मॉडल कॉम्पोनेंट वाला BigQuery डेटासेट
- Vertex AI AutoML मॉडल (बनाना और डिप्लॉय करना)
- ML API का इस्तेमाल करके अनुमान लगाने के लिए, Java Cloud Functions ट्रिगर
2. ज़रूरी शर्तें
यहां ज़रूरी शर्तें दी गई हैं:
अपना प्रोजेक्ट बनाना
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग की सुविधा चालू है या नहीं, यह देखने का तरीका जानें.
- एपीआई चालू करने के लिए, BigQuery पर जाएं. अपने ब्राउज़र में यह यूआरएल डालकर, BigQuery का वेब यूज़र इंटरफ़ेस (यूआई) भी सीधे खोला जा सकता है: https://console.cloud.google.com/bigquery
Cloud Shell चालू करना
- इसके लिए, आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है, जिसमें bq पहले से लोड होता है: Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद, Cloud Shell चालू करें पर क्लिक करें:
- Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आपने पहले ही पुष्टि कर ली है और प्रोजेक्ट आपके प्रोजेक्ट आईडी पर पहले से सेट है. पुष्टि करने के लिए, Cloud Shell में यह कमांड चलाएं:
gcloud auth list
- Cloud Shell में यह कमांड चलाकर पुष्टि करें कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है
gcloud config list project
- अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project <PROJECT_ID>
gcloud के निर्देशों और इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.
3. ट्रेनिंग डेटा तैयार करना
डेटा से जुड़े सभी प्रोजेक्ट, प्रॉडक्ट, और ऐप्लिकेशन के लिए यह एक अहम चरण है. इसमें, सबसे अच्छा डेटासेट तैयार करने और उसे एमएल प्रोजेक्ट के लिए तैयार करने के लिए, टेक्नोलॉजी के साथ-साथ डोमेन की बहुत सारी विशेषज्ञता की ज़रूरत होती है. इस कोडलैब के लिए, हम यह मान लेंगे कि डेटा पहले से तैयार है और पहले से प्रोसेस की गई डेटा फ़ाइल का इस्तेमाल किया जा रहा है.
4. डेटासेट बनाना और लोड करना
BigQuery डेटासेट, टेबल का कलेक्शन होता है. किसी डेटासेट की सभी टेबल, एक ही डेटा लोकेशन में सेव होती हैं. डेटासेट और उसकी टेबल का ऐक्सेस सीमित करने के लिए, कस्टम ऐक्सेस कंट्रोल भी अटैच किए जा सकते हैं.
- Cloud Shell में, "movies" नाम का डेटासेट बनाने के लिए, bq mk कमांड का इस्तेमाल करें.
bq mk --location=<<LOCATION>> movies
location को किसी क्षेत्र (asia-south1) पर सेट करें. इसे VERTEX AI चरण के लिए भी क्षेत्र के तौर पर सेट करना न भूलें. दोनों इंस्टेंस एक ही क्षेत्र में होने चाहिए.
- पक्का करें कि आपके पास डेटा फ़ाइल (.csv) तैयार हो. रिपॉज़िटरी को क्लोन करने और प्रोजेक्ट पर जाने के लिए, Cloud Shell में ये कमांड चलाएं:
git clone <<repository link>>
cd movie-score
- अपनी CSV फ़ाइल को BigQuery टेबल में लोड करने के लिए, bq load कमांड का इस्तेमाल करें. कृपया ध्यान दें कि सीधे 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
- इन तीन में से किसी एक तरीके से क्वेरी करें:
BigQuery के साथ तीन तरीकों से इंटरैक्ट किया जा सकता है. हम इनमें से दो तरीकों को आज़माएंगे: a. BigQuery वेब यूज़र इंटरफ़ेस b. bq कमांड c. एपीआई
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
मैंने क्वेरी चलाने के लिए, BigQuery वेब एसक्यूएल वर्कस्पेस का इस्तेमाल किया है. SQL फ़ाइल फ़ोल्डर ऐसा दिखता है:
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 से भी ऑटोएमएल का इस्तेमाल कर सकते हैं. साथ ही, VertexAI के साथ मॉडल को रजिस्टर करके, एंडपॉइंट को एक्सपोज़ कर सकते हैं. BigQuery AutoML के दस्तावेज़ देखें. हालांकि, इस उदाहरण में हम अपना मॉडल बनाने के लिए, Vertex AI AutoML का इस्तेमाल करेंगे.
Vertex AI डेटासेट बनाना
Google Cloud Console से Vertex AI पर जाएं. अगर आपने पहले से Vertex AI API चालू नहीं किया है, तो उसे चालू करें. इसके बाद, डेटा को बड़ा करें और डेटासेट चुनें. इसके बाद, डेटासेट बनाएं पर क्लिक करें. इसके बाद, TABULAR डेटा टाइप और "रिग्रेशन / क्लासिफ़िकेशन" विकल्प चुनें और बनाएं पर क्लिक करें:
डेटा सोर्स चुनना
अगले पेज पर, कोई डेटा सोर्स चुनें. "BigQuery से कोई टेबल या व्यू चुनें" विकल्प चुनें. इसके बाद, BigQuery पाथ के BROWSE फ़ील्ड में जाकर, BigQuery से टेबल चुनें. 'जारी रखें' पर क्लिक करें.
ध्यान रखें: BigQuery टेबल को Vertex AI में दिखाने के लिए, BigQuery इंस्टेंस और Vertex AI डेटा सेट का एक ही क्षेत्र होना चाहिए.
ब्राउज़ सूची से अपनी सोर्स टेबल/व्यू चुनते समय, रेडियो बटन पर क्लिक करना न भूलें. इसके बाद, नीचे दिया गया तरीका अपनाएं. अगर आपने गलती से टेबल/व्यू के नाम पर क्लिक किया है, तो आपको Dataplex पर ले जाया जाएगा. अगर ऐसा होता है, तो आपको Vertex AI पर वापस जाना होगा.
मॉडल को ट्रेनिंग देना
- डेटासेट बन जाने के बाद, आपको 'विश्लेषण करें' पेज दिखेगा. इस पेज पर, नए मॉडल को ट्रेन करने का विकल्प होगा. उस पर क्लिक करें:
- मकसद को 'क्लासिफ़िकेशन' के तौर पर छोड़ें और पहले पेज में AutoML विकल्प चुनें. इसके बाद, 'जारी रखें' पर क्लिक करें:
- अपने मॉडल को कोई नाम दें. इसके बाद, दिखने वाले ड्रॉपडाउन से टारगेट कॉलम का नाम "स्कोर" के तौर पर चुनें और 'जारी रखें' पर क्लिक करें.
- यह भी ध्यान दें कि "BigQuery में टेस्ट डेटासेट एक्सपोर्ट करें" विकल्प को चुना जा सकता है. इससे, डेटाबेस में नतीजों के साथ टेस्ट सेट को आसानी से देखा जा सकता है. इसके लिए, आपको किसी अतिरिक्त इंटिग्रेशन लेयर की ज़रूरत नहीं पड़ती या डेटा को सेवाओं के बीच ट्रांसफ़र नहीं करना पड़ता.
- अगले पेज पर, आपको ट्रेनिंग के लिए बेहतर विकल्प चुनने का विकल्प मिलता है. साथ ही, यह भी तय किया जा सकता है कि मॉडल को कितने घंटे ट्रेनिंग दी जाए. कृपया ध्यान दें कि ट्रेनिंग के लिए नोड के घंटों की संख्या बढ़ाने से पहले, कीमत पर ध्यान दें.
अपने नए मॉडल को ट्रेनिंग देने के लिए, 'ट्रेनिंग शुरू करें' पर क्लिक करें.
मॉडल का आकलन करना, उसे डिप्लॉय करना, और उसकी जांच करना
ट्रेनिंग पूरी होने के बाद, बाईं ओर मौजूद मेन्यू में मॉडल डेवलपमेंट के नीचे, ट्रेनिंग पर क्लिक करें. इसके बाद, ट्रेनिंग पाइपलाइन सेक्शन में अपनी ट्रेनिंग देखें. मॉडल रजिस्ट्री पेज पर जाने के लिए, उस पर क्लिक करें. आपके पास ये काम करने की अनुमति होगी:
- ट्रेनिंग के नतीजे देखना और उनका आकलन करना
- अपने एपीआई एंडपॉइंट की मदद से मॉडल को डिप्लॉय और टेस्ट करना
मॉडल को डिप्लॉय करने के बाद, एक एपीआई एंडपॉइंट बन जाता है. इसका इस्तेमाल आपके ऐप्लिकेशन में अनुरोध भेजने और रिस्पॉन्स में मॉडल के अनुमान के नतीजे पाने के लिए किया जा सकता है.
इस सेक्शन से आगे बढ़ने से पहले, पक्का करें कि आपने Vertex AI के एंडपॉइंट सेक्शन में, डिप्लॉय किए गए मॉडल के एंडपॉइंट आईडी, जगह, और अन्य जानकारी नोट कर ली हो.
6. ML को ट्रिगर करने के लिए Java Cloud फ़ंक्शन
याद रखें कि एमएल को डिप्लॉय करने के चरण में, एंडपॉइंट और अन्य जानकारी कैसे मिलती है? हम यहां इसका इस्तेमाल करेंगे. साथ ही, हम Java Cloud Functions का इस्तेमाल कर रहे हैं, इसलिए डिपेंडेंसी मैनेज करने के लिए, हम pom.xml का इस्तेमाल करेंगे. हम Vertex AI AutoML एंडपॉइंट एपीआई का इस्तेमाल करने के लिए, google-cloud-aiplatform लाइब्रेरी का इस्तेमाल करते हैं.
- Google Cloud Console में Cloud Functions खोजें और "फ़ंक्शन बनाएं" पर क्लिक करें.
- कॉन्फ़िगरेशन की जानकारी डालें. जैसे, एनवायरमेंट, फ़ंक्शन का नाम, क्षेत्र, ट्रिगर (इस मामले में, एचटीटीपीएस), अपनी पसंद के मुताबिक पुष्टि करने का तरीका, "एचटीटीपीएस की ज़रूरत है" को चालू करें, और आगे बढ़ें/सेव करें पर क्लिक करें
- अगले पेज पर, रनटाइम (Java 11), सोर्स कोड (इनलाइन या अपलोड), और बदलाव करना शुरू करें
- java और pom.xml फ़ाइलों को रिपॉज़िटरी से कॉपी करके, इनलाइन एडिटर में चिपकाएं. अगर स्थानीय एडिटर का इस्तेमाल किया जा रहा है (इसका सुझाव दिया जाता है), तो रिपॉज़िटरी से सोर्स को क्लोन करें
- इस उदाहरण के लिए, .java सोर्स फ़ाइल में प्रोजेक्ट आईडी, एंडपॉइंट आईडी, जगह, और एंडपॉइंट बदलें. हालांकि, कृपया ध्यान दें कि क्रेडेंशियल सेव करने के लिए, Secret Manager का इस्तेमाल करना सबसे सही तरीका है
- इस कोडलैब के दायरे के लिए, कॉपी किए गए सोर्स कोड में .java क्लास के MongoDB हिस्सों पर टिप्पणी करें
सभी बदलाव पूरे होने के बाद, फ़ंक्शन को डिप्लॉय करें. आपको वह एंडपॉइंट यूआरएल दिखेगा जिसका इस्तेमाल, क्लाइंट ऐप्लिकेशन में इस Cloud फ़ंक्शन को अनुरोध भेजने और जवाब के तौर पर फ़िल्म का स्कोर पाने के लिए किया जा सकता है.
7. व्यवस्थित करें
इस पोस्ट में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लगने के लिए, यह तरीका अपनाएं:
- Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं
- प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे मिटाना है. इसके बाद, मिटाएं पर क्लिक करें
- डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, प्रोजेक्ट मिटाने के लिए 'बंद करें' पर क्लिक करें
8. बधाई हो
बधाई हो! आपने Vertex AI AutoML में, मूवी के स्कोर का अनुमान लगाने वाला मॉडल बनाया और उसे डिप्लॉय किया है. साथ ही, डिप्लॉय किए गए मॉडल को Cloud Functions से ट्रिगर किया है.