1. खास जानकारी
इस लैब में, BigQuery Machine Learning का इस्तेमाल करके एक मॉडल को ट्रेन किया जाएगा. इसके बाद, उस मॉडल को Vertex AI में एक्सपोर्ट और डिप्लॉय किया जाएगा. यह Google Cloud पर उपलब्ध, एआई वाला सबसे नया प्रॉडक्ट है.
आपको ये सब सीखने को मिलेगा
आपको, इनके बारे में जानकारी मिलेगी:
- BigQuery मशीन लर्निंग (BQML) की मदद से मॉडल को ट्रेन करना
- अपने BQML मॉडल को Cloud Storage में एक्सपोर्ट करना
- ट्रेन किए गए BQML मॉडल को Vertex AI पर डिप्लॉय करना
- डिप्लॉय किए गए मॉडल के आधार पर अनुमान पाना
इस लैब को Google Cloud पर चलाने की कुल लागत करीब 2 डॉलर है.
2. Vertex AI के बारे में जानकारी
इस लैब में, Google Cloud पर उपलब्ध एआई प्रॉडक्ट की नई सुविधा का इस्तेमाल किया जाता है. Vertex AI, Google Cloud के सभी एमएल प्रॉडक्ट को एक साथ इंटिग्रेट करता है, ताकि डेवलपर को बेहतर अनुभव मिल सके. पहले, AutoML और कस्टम मॉडल से ट्रेन किए गए मॉडल को अलग-अलग सेवाओं के ज़रिए ऐक्सेस किया जा सकता था. नए ऑफ़र में, इन दोनों को एक ही एपीआई में शामिल किया गया है. साथ ही, इसमें अन्य नए प्रॉडक्ट भी शामिल हैं. मौजूदा प्रोजेक्ट को भी Vertex AI पर माइग्रेट किया जा सकता है. अगर आपको कोई सुझाव देना है या शिकायत करनी है, तो कृपया सहायता पेज पर जाएं.
Vertex AI में कई अलग-अलग प्रॉडक्ट शामिल हैं, ताकि मशीन लर्निंग के वर्कफ़्लो को शुरू से लेकर आखिर तक सपोर्ट किया जा सके. इस लैब में, नीचे हाइलाइट किए गए प्रॉडक्ट पर फ़ोकस किया जाएगा: अनुमान और नोटबुक.

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

तीसरा चरण: Notebooks इंस्टेंस बनाना
मॉडल को डिप्लॉय करने के बाद, हम अनुमान पाने के लिए Notebooks का इस्तेमाल करेंगे. Cloud Console के Vertex AI सेक्शन में जाकर, Notebooks पर क्लिक करें:

इसके बाद, नया इंस्टेंस को चुनें. इसके बाद, TensorFlow Enterprise 2.3 इंस्टेंस टाइप without GPUs चुनें:

डिफ़ॉल्ट विकल्पों का इस्तेमाल करें. इसके बाद, बनाएं पर क्लिक करें. इंस्टेंस बन जाने के बाद, JupyterLab खोलें को चुनें:

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

डेटासेट आईडी फ़ील्ड में, cc_default डालें. बाकी फ़ील्ड को डिफ़ॉल्ट रूप से सेट रहने दें. इसके बाद, डेटासेट बनाएं पर क्लिक करें.
दूसरा चरण: CREATE MODEL क्वेरी चलाना
BigQuery के क्वेरी एडिटर में, यहां दी गई CREATE MODEL क्वेरी चलाएं. इससे, हम जिस सार्वजनिक डेटासेट का इस्तेमाल करेंगे उस पर BigQuery ML मॉडल बनाया और ट्रेन किया जा सकेगा. your-project की जगह अपने Cloud प्रोजेक्ट का नाम डालना न भूलें:
CREATE OR REPLACE MODEL
`your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
input_label_cols=['default_payment_next_month']) AS
SELECT
limit_balance,
sex,
education_level,
marital_status,
age,
pay_0,
pay_2,
pay_3,
pay_4,
pay_5,
pay_6,
bill_amt_1,
bill_amt_2,
bill_amt_3,
bill_amt_4,
bill_amt_5,
bill_amt_6,
pay_amt_1,
pay_amt_2,
pay_amt_3,
pay_amt_4,
pay_amt_5,
pay_amt_6,
default_payment_next_month
FROM
`bigquery-public-data.ml_datasets.credit_card_default`
इससे एक लॉजिस्टिक रिग्रेशन मॉडल तैयार होगा. यह 0 से 1 के बीच की कोई संख्या आउटपुट करेगा. इसे चलने में करीब एक मिनट लगेगा. प्रोसेस पूरी होने के बाद, आपको मॉडल अपने डेटासेट में दिखेगा:

मॉडल की ट्रेनिंग और आकलन की मेट्रिक देखने के लिए, उस पर क्लिक करें.
5. BigQuery ML मॉडल एक्सपोर्ट करना
ट्रेन किए गए BQML मॉडल की मदद से, अनुमान पाने के लिए BQML एसक्यूएल सिंटैक्स का इस्तेमाल किया जा सकता है. इसके अलावा, मॉडल को एक्सपोर्ट करके किसी दूसरी जगह पर डिप्लॉय किया जा सकता है. यहां हम अपने मॉडल को एक्सपोर्ट करेंगे, ताकि इसे Vertex AI पर डिप्लॉय किया जा सके. इससे मॉडल को बड़े पैमाने पर इस्तेमाल किया जा सकेगा और अनुमान लगाए जा सकेंगे.
पहला चरण: अपने मॉडल के लिए Cloud Storage बकेट बनाना
मॉडल की जानकारी में, मॉडल एक्सपोर्ट करें पर क्लिक करें:

इससे आपको Google Cloud Storage (GCS) की उस जगह की जानकारी डालने के लिए कहा जाएगा जहां आपको अपने मॉडल की ऐसेट एक्सपोर्ट करनी हैं. अगर आपके पास अब तक कोई GCS बकेट नहीं है, तो चिंता न करें! हम एक नया खाता बनाने जा रहे हैं. सबसे पहले, ब्राउज़ करें पर क्लिक करें:

इसके बाद, नई बकेट बनाने के लिए + आइकॉन पर क्लिक करें:

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

डिफ़ॉल्ट स्टोरेज क्लास का इस्तेमाल करें. साथ ही, ऐक्सेस कंट्रोल में जाकर पक्का करें कि यूनिफ़ॉर्म चुना गया हो:

जारी रखें पर क्लिक करें और बाकी विकल्पों के लिए डिफ़ॉल्ट सेटिंग का इस्तेमाल करें. और फिर बनाएं पर क्लिक करें.
दूसरा चरण: BQML मॉडल एक्सपोर्ट करना
नया बकेट बनाने के बाद, नाम फ़ील्ड में model-assets या अपनी पसंद का कोई भी नाम डालें. इसके बाद, चुनें पर क्लिक करें:

इसके बाद, एक्सपोर्ट करें पर क्लिक करें. इससे BigQuery में एक जॉब बन जाएगा. यह जॉब, आपके मॉडल को TensorFlow के SavedModel फ़ॉर्मैट में, आपके बताए गए नए GCS बकेट में एक्सपोर्ट करेगा. इसे एक्सपोर्ट होने में करीब एक मिनट लगेगा.
मॉडल एक्सपोर्ट होने के दौरान, Cloud Console के स्टोरेज सेक्शन पर जाएं. टास्क पूरा होने के बाद, आपको अपनी मॉडल ऐसेट, उस बकेट में एक्सपोर्ट की गई दिखेंगी जिसे आपने अभी-अभी model-assets सबडायरेक्ट्री में बनाया है:

6. मॉडल को Vertex AI में इंपोर्ट करना
इस चरण में, हम GCS स्टोरेज की उस जगह का रेफ़रंस देंगे जहां हमने अभी-अभी अपने मॉडल की ऐसेट एक्सपोर्ट की हैं. इससे Vertex AI में मॉडल बनाया और इंपोर्ट किया जा सकेगा.
पहला चरण: मॉडल इंपोर्ट करना
Cloud Console में, Vertex AI के मॉडल सेक्शन पर जाएं. इसके बाद, इंपोर्ट करें को चुनें:

पहले चरण में, अपने मॉडल को predict_default नाम दें. वही क्षेत्र चुनें जहां आपने बकेट बनाया था. जैसे, us-central1, europe-west4 या asia-east1. इसके बाद, जारी रखें पर क्लिक करें. मॉडल की सेटिंग में, "मॉडल के आर्टफ़ैक्ट को पहले से बने नए कंटेनर में इंपोर्ट करें" विकल्प को चुना हुआ रखें.
मॉडल फ़्रेमवर्क ड्रॉपडाउन में, TensorFlow चुनें. इसके बाद, फ़्रेमवर्क के वर्शन के तौर पर 2.3 चुनें.
मॉडल आर्टफ़ैक्ट की जगह फ़ील्ड में, ब्राउज़ करें पर क्लिक करें. इसके बाद, अभी-अभी बनाए गए GCS बकेट पर क्लिक करें. इसके बाद, model-assets डायरेक्ट्री पर क्लिक करें:

इसके बाद, इंपोर्ट करें पर क्लिक करें. आपके मॉडल को इंपोर्ट करने में कुछ मिनट लगेंगे. बन जाने के बाद, यह आपको Cloud Console के मॉडल सेक्शन में दिखेगा:

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

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

आप काफ़ी करीब पहुंच गए हैं! अब आपके पास डिप्लॉय किए गए मॉडल के आधार पर अनुमान पाने का विकल्प है.
8. डिप्लॉय किए गए मॉडल से अनुमान पाना
मॉडल से अनुमान पाने के कुछ विकल्प यहां दिए गए हैं:
- Vertex AI का यूज़र इंटरफ़ेस (यूआई)
- Vertex AI API
यहां हम एपीआई के ज़रिए अनुमान पाने का तरीका बताएंगे
पहला चरण: Vertex AI API की मदद से मॉडल के अनुमान पाना
यहां हम आपको मॉडल के अनुमानों को पाने का तरीका दिखाएंगे. इसके लिए, हम इस लैब की शुरुआत में बनाए गए Vertex Notebook इंस्टेंस का इस्तेमाल करेंगे.
इसके बाद, बनाए गए नोटबुक इंस्टेंस को खोलें. साथ ही, लॉन्चर से Python 3 नोटबुक खोलें:

अपनी नोटबुक में, सेल में यह कोड चलाकर default-pred.json नाम की JSON फ़ाइल में टेस्ट का उदाहरण लिखें. हम इस उदाहरण को अपने मॉडल को भेजेंगे, ताकि वह अनुमान लगा सके:
%%writefile default-pred.json
{
"instances": [
{"age": 39,
"bill_amt_1": 47174,
"bill_amt_2": 47974,
"bill_amt_3": 48630,
"bill_amt_4": 50803,
"bill_amt_5": 30789,
"bill_amt_6": 15874,
"education_level": "1",
"limit_balance": 50000,
"marital_status": "2",
"pay_0": 0,
"pay_2":0,
"pay_3": 0,
"pay_4": 0,
"pay_5": "0",
"pay_6": "0",
"pay_amt_1": 1800,
"pay_amt_2": 2000,
"pay_amt_3": 3000,
"pay_amt_4": 2000,
"pay_amt_5": 2000,
"pay_amt_6": 2000,
"sex": "1"}
]
}
इसके बाद, Vertex UI में, उस एंडपॉइंट के लिए सैंपल अनुरोध पर क्लिक करें जिसे आपने अभी डिप्लॉय किया है:

REST टैब पर मौजूद चौथे चरण से कोड को अपनी नोटबुक में कॉपी करें और सेल को चलाएं:

इसके बाद, उस देश/इलाके के लिए एक वैरिएबल जोड़ें जहां आपने बकेट और मॉडल बनाया है. नीचे दी गई स्ट्रिंग में your-region की जगह यह डालें:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
आखिर में, curl की मदद से अपने एंडपॉइंट पर अनुमान लगाने का अनुरोध करें. इसके लिए, यहां दिए गए कोड को अपनी नोटबुक में कॉपी करें:
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"
आपको कुछ ऐसा दिखेगा (अनुमान की सटीक वैल्यू में थोड़ा अंतर हो सकता है):
{
"predictions": [
{
"default_payment_next_month_values": [
"1",
"0"
],
"default_payment_next_month_probs": [
0.180815295299778,
0.819184704700222
],
"predicted_default_payment_next_month": [
"0"
]
}
],
"deployedModelId": "your-model-id"
}
default_payment_next_month_probs में मौजूद वैल्यू से, हर क्लास की संभावना का पता चलता है. इस उदाहरण के लिए, हमारा मॉडल अनुमान लगाता है कि इस व्यक्ति के अगले पेमेंट में डिफ़ॉल्ट होने की संभावना 81% नहीं है. .819 वैल्यू, 0 क्लास (डिफ़ॉल्ट नहीं) से मेल खाती है.
🎉 बधाई हो! 🎉
आपने इनके बारे में जानकारी पा ली है:
- BQML में मॉडल को ट्रेन करना
- अपने BQML मॉडल को Cloud Storage में एक्सपोर्ट करना
- अनुमान के लिए, BQML मॉडल को Vertex AI में इंपोर्ट करना
- Vertex AI मॉडल बनाना और उसे किसी एंडपॉइंट पर डिप्लॉय करना
- Vertex Notebooks और curl की मदद से, डिप्लॉय किए गए एंडपॉइंट पर अनुमान पाएं
Vertex AI के अलग-अलग हिस्सों के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
9. साफ़-सफ़ाई सेवा
अगर आपको इस लैब में बनाई गई नोटबुक का इस्तेमाल जारी रखना है, तो हमारा सुझाव है कि इस्तेमाल न करने पर इसे बंद कर दें. Cloud Console में Notebooks के यूज़र इंटरफ़ेस (यूआई) में जाकर, नोटबुक चुनें. इसके बाद, बंद करें को चुनें:

अगर आपको पूरी नोटबुक मिटानी है, तो सबसे ऊपर दाईं ओर मौजूद 'मिटाएं' बटन पर क्लिक करें.
डिप्लॉय किए गए एंडपॉइंट को मिटाने के लिए, Vertex AI कंसोल के एंडपॉइंट सेक्शन पर जाएं और मिटाएं आइकॉन पर क्लिक करें:

स्टोरेज बकेट को मिटाने के लिए, Cloud Console में नेविगेशन मेन्यू का इस्तेमाल करके, स्टोरेज पर जाएं. इसके बाद, अपनी बकेट चुनें और मिटाएं पर क्लिक करें:
