अपने Google क्लाउड खाते को सेट अप करना और उससे कनेक्ट करना

TensorFlow.org पर देखें Google Colab में चलाएँ GitHub पर देखें नोटबुक डाउनलोड करें कैगल लोगो Kaggle में चलाएँ

यह गाइड उन उपयोगकर्ताओं की मदद करने के लिए है जो पहली बार Google Cloud Platform पर खाता बना रहे हैं, खासकर tensorflow_cloud का उपयोग करके Google Cloud AI Platform पर बड़े पैमाने पर प्रशिक्षण चलाने के उद्देश्य से। TensorFlow Cloud API प्रदान करता है जो उपयोगकर्ताओं को स्थानीय या Kaggle वातावरण में Keras और TensorFlow कोड को डीबग करने, प्रशिक्षित करने और ट्यून करने से लेकर क्लाउड पर वितरित प्रशिक्षण/ट्यूनिंग तक आसानी से जाने की अनुमति देता है।

1. गूगल क्लाउड प्लेटफॉर्म के लिए साइन अप करें

शुरू करने के लिए https://cloud.google.com/ पर जाएं और "मुफ्त में शुरू करें" पर क्लिक करें। यह दो चरणों वाली साइन अप प्रक्रिया है, जिसमें आपको अपना नाम, पता और क्रेडिट कार्ड देना होगा। स्टार्टर अकाउंट मुफ्त है और इसके साथ आपको $300 का क्रेडिट मिलता है जिसका आप उपयोग कर सकते हैं। इस चरण के लिए आपको साइन इन करने के लिए एक Google अकाउंट (जैसे आपका Gmail अकाउंट) देना होगा।

साइन अप प्रक्रिया पूरी करने के बाद आपको Google क्लाउड प्लेटफ़ॉर्म के स्वागत पृष्ठ पर रीडायरेक्ट कर दिया जाएगा। "होम" टैब पर क्लिक करें और अपना प्रोजेक्ट आईडी और प्रोजेक्ट नंबर नोट कर लें। ( प्रोजेक्ट की पहचान करना देखें)

GCP_PROJECT_ID = 'YOUR_PROJECT_ID'
PROJECT_NUMBER = 'YOUR_PROJECT_NUMBER'

2. Google क्लाउड SDK को सक्षम करें और अपने नोटबुक को प्रमाणित करें।

अब जब आपने अपना प्रोजेक्ट सेट अप कर लिया है, तो हम इस नोटबुक से ही बाकी कॉन्फ़िगरेशन चरणों को पूरा कर सकते हैं। तीन प्रकार की नोटबुक हैं, यह चरण (चरण #2) प्रत्येक नोटबुक के लिए थोड़ा अलग है, बाकी के चरण (चरण #3 से #6) सभी नोटबुक के लिए समान हैं।

  • 2.1. कैगल नोटबुक के लिए प्राधिकरण
  • 2.2. कोलाब नोटबुक के लिए प्रमाणीकरण
  • 2.3. क्लाउड एआई नोटबुक के लिए प्रमाणीकरण - समर्थित नहीं है।

2.1 कैगल नोटबुक के लिए प्रमाणीकरण सेट अप करना

यदि आप Kaggle नोटबुक का उपयोग कर रहे हैं, तो इस प्रोजेक्ट के साथ उपयोग की जाने वाली किसी भी नई नोटबुक के लिए आपको यह चरण दोहराना होगा। अपनी नोटबुक में Add-ons -> Google Cloud SDK पर क्लिक करें और प्रॉम्प्ट पर दिए गए निर्देशों का पालन करें। फिर इस नोटबुक में अपने प्रमाणीकरण क्रेडेंशियल जोड़ने के लिए निम्न कमांड चलाएँ।

import sys
if "kaggle_secrets" in sys.modules:
    from kaggle_secrets import UserSecretsClient
    UserSecretsClient().set_gcloud_credentials(project=GCP_PROJECT_ID)

2.2 कोलाब नोटबुक के लिए प्रमाणीकरण सेट अप करना

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

import sys
if "google.colab" in sys.modules:
    from google.colab import auth
    auth.authenticate_user()

अगला चरण इस प्रोजेक्ट के लिए बिलिंग खाता सेट अप करना है। Google Cloud डिफ़ॉल्ट रूप से आपके लिए एक प्रोजेक्ट बनाता है जिसे "मेरा पहला प्रोजेक्ट" कहा जाता है। हम इसी डिफ़ॉल्ट प्रोजेक्ट का उपयोग करेंगे। चरण 1 से प्राप्त अपने प्रोजेक्ट आईडी का उपयोग करके निम्नलिखित कमांड चलाएँ। इससे आपको अपना बिलिंग खाता आईडी दिखाई देगा, इसे अगले चरण के लिए नोट कर लें।

gcloud beta billing accounts list

ऊपर दिए गए अपने बिलिंग अकाउंट_आईडी का उपयोग करें और अपने बिलिंग खाते को अपने प्रोजेक्ट से लिंक करने के लिए निम्नलिखित कमांड चलाएं।

ध्यान दें: यदि आप किसी मौजूदा प्रोजेक्ट का उपयोग कर रहे हैं, तो आपको Account_ID दिखाई नहीं दे सकता है। इसका मतलब है कि आपके पास निम्नलिखित कमांड चलाने के लिए उचित अनुमति नहीं है। अपने एडमिन से संपर्क करें या एक नया प्रोजेक्ट बनाएं।

BILLING_ACCOUNT_ID = 'YOUR_BILLING_ACCOUNT_ID'

!gcloud beta billing projects link $GCP_PROJECT_ID --billing-account $BILLING_ACCOUNT_ID

4. अपने प्रोजेक्ट में टेन्सरफ्लो-क्लाउड के लिए आवश्यक API को सक्षम करें।

tensorflow_cloud के लिए हम दो विशिष्ट API का उपयोग करते हैं: AI Platform Training Jobs API और Cloud builder API । ध्यान दें कि यह इस प्रोजेक्ट के लिए एक बार का सेटअप है, आपको हर नोटबुक के लिए इस कमांड को दोबारा चलाने की आवश्यकता नहीं है।

gcloud services --project $GCP_PROJECT_ID enable ml.googleapis.com cloudbuild.googleapis.com

5. एक गूगल क्लाउड स्टोरेज बकेट बनाएं

हम इस स्टोरेज बकेट का उपयोग अस्थायी संपत्तियों के साथ-साथ मॉडल चेकपॉइंट्स को सहेजने के लिए करेंगे। भविष्य में संदर्भ के लिए बकेट का नाम नोट कर लें। ध्यान दें कि बकेट के नाम विश्व स्तर पर अद्वितीय होते हैं।

BUCKET_NAME = 'YOUR_BUCKET_NAME'

GCS_BUCKET = f'gs://{BUCKET_NAME}'
!gsutil mb -p $GCP_PROJECT_ID $GCS_BUCKET

एचपी ट्यूनिंग जॉब्स के लिए एक सर्विस अकाउंट बनाएं

क्लाउडट्यूनर का उपयोग करके Google क्लाउड पर HP ट्यूनिंग का उपयोग करने के लिए यह चरण आवश्यक है। एक सेवा खाता बनाने और उसे प्रोजेक्ट एडिटर एक्सेस देने के लिए निम्न कमांड चलाएँ और अपने सेवा खाते का नाम नोट कर लें।

SERVICE_ACCOUNT_NAME ='YOUR_SERVICE_ACCOUNT_NAME'

SERVICE_ACCOUNT_EMAIL = f'{SERVICE_ACCOUNT_NAME}@{GCP_PROJECT_ID}.iam.gserviceaccount.com'
!gcloud iam --project $GCP_PROJECT_ID service-accounts create $SERVICE_ACCOUNT_NAME
!gcloud projects add-iam-policy-binding $GCP_PROJECT_ID \
    --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \
    --role=roles/editor

default AI Platform service account service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com प्रारूप वाले ईमेल पते द्वारा पहचाना जाता है। पहले चरण से आपके प्रोजेक्ट नंबर का उपयोग करके, हम सेवा खाता ईमेल बनाते हैं और आपके नए सेवा खाते पर default AI Platform service account व्यवस्थापक भूमिका (roles/iam.serviceAccountAdmin) प्रदान करते हैं।

DEFAULT_AI_PLATFORM_SERVICE_ACCOUNT = f'service-{PROJECT_NUMBER}@cloud-ml.google.com.iam.gserviceaccount.com'

!gcloud iam --project $GCP_PROJECT_ID service-accounts add-iam-policy-binding \
--role=roles/iam.serviceAccountAdmin \
--member=serviceAccount:$DEFAULT_AI_PLATFORM_SERVICE_ACCOUNT \
$SERVICE_ACCOUNT_EMAIL

बधाई हो !

अब आप टेन्सरफ्लो-क्लाउड चलाने के लिए तैयार हैं। ध्यान दें कि ये चरण केवल एक बार ही करने होंगे। एक बार आपका प्रोजेक्ट सेटअप हो जाने के बाद, आप भविष्य में चलाने के लिए उसी प्रोजेक्ट और बकेट कॉन्फ़िगरेशन का पुनः उपयोग कर सकते हैं। किसी भी नए नोटबुक के लिए, आपको अपने Google क्लाउड प्रमाणीकरण क्रेडेंशियल जोड़ने के लिए चरण दो को दोहराना होगा।

निम्नलिखित मानों को नोट कर लें क्योंकि टेन्सरफ्लो-क्लाउड को चलाने के लिए इनकी आवश्यकता होगी।

print(f"Your GCP_PROJECT_ID is:       {GCP_PROJECT_ID}")
print(f"Your SERVICE_ACCOUNT_NAME is: {SERVICE_ACCOUNT_NAME}")
print(f"Your BUCKET_NAME is:          {BUCKET_NAME}")
Your GCP_PROJECT_ID is:       YOUR_PROJECT_ID
Your SERVICE_ACCOUNT_NAME is: YOUR_SERVICE_ACCOUNT_NAME
Your BUCKET_NAME is:          YOUR_BUCKET_NAME