परिचय
यह ट्यूटोरियल TensorFlow Extended (TFX) और AIPlatform पाइपलाइनों को पेश करने के लिए डिज़ाइन किया गया है, और आपको Google क्लाउड पर अपनी मशीन लर्निंग पाइपलाइन बनाने में सीखने में मदद करता है। यह TFX, AI प्लेटफॉर्म पाइपलाइनों और Kubeflow के साथ एकीकरण के साथ-साथ Jupyter नोटबुक में TFX के साथ सहभागिता को दर्शाता है।
इस ट्यूटोरियल के अंत में, आपने Google क्लाउड पर होस्ट की गई एक ML पाइपलाइन बनाई और चलाई होगी। आप प्रत्येक रन के परिणामों की कल्पना करने में सक्षम होंगे, और निर्मित कलाकृतियों के वंश को देख सकेंगे।
आप एक सामान्य एमएल विकास प्रक्रिया का पालन करेंगे, जो डेटासेट की जांच करके शुरू होगी, और एक पूर्ण कामकाजी पाइपलाइन के साथ समाप्त होगी। जिस तरह से आप अपनी पाइपलाइन को डीबग करने और अपडेट करने और प्रदर्शन को मापने के तरीकों का पता लगाएंगे।
शिकागो टैक्सी डेटासेट
आप शिकागो शहर द्वारा जारी टैक्सी ट्रिप डेटासेट का उपयोग कर रहे हैं।
आप Google BigQuery में डेटासेट के बारे में अधिक पढ़ सकते हैं। BigQuery UI में संपूर्ण डेटासेट एक्सप्लोर करें.
मॉडल लक्ष्य - बाइनरी वर्गीकरण
क्या ग्राहक 20% से अधिक या कम से कम टिप देगा?
1. एक Google क्लाउड प्रोजेक्ट सेट करें
1.a Google क्लाउड पर अपना परिवेश सेट करें
आरंभ करने के लिए, आपको एक Google क्लाउड खाते की आवश्यकता है। यदि आपके पास पहले से एक है, तो नया प्रोजेक्ट बनाएं पर जाएं।
Google क्लाउड कंसोल पर जाएं।
Google क्लाउड के नियमों और शर्तों से सहमत हों
यदि आप एक नि:शुल्क परीक्षण खाते से शुरुआत करना चाहते हैं, तो नि:शुल्क प्रयास करें (या नि:शुल्क आरंभ करें ) पर क्लिक करें।
अपने देश का चयन करें।
सेवा की शर्तों से सहमत हों।
बिलिंग विवरण दर्ज करें।
इस बिंदु पर आपसे शुल्क नहीं लिया जाएगा। यदि आपके पास कोई अन्य Google क्लाउड प्रोजेक्ट नहीं है, तो आप Google क्लाउड फ्री टियर सीमा को पार किए बिना इस ट्यूटोरियल को पूरा कर सकते हैं, जिसमें एक ही समय में चलने वाले अधिकतम 8 कोर शामिल हैं।
1.b एक नया प्रोजेक्ट बनाएं।
- मुख्य Google क्लाउड डैशबोर्ड से, Google क्लाउड प्लेटफ़ॉर्म हेडर के आगे प्रोजेक्ट ड्रॉपडाउन पर क्लिक करें और नया प्रोजेक्ट चुनें।
- अपने प्रोजेक्ट को एक नाम दें और अन्य प्रोजेक्ट विवरण दर्ज करें
- एक बार जब आप कोई प्रोजेक्ट बना लेते हैं, तो उसे प्रोजेक्ट ड्रॉप-डाउन से चुनना सुनिश्चित करें।
2. एक नए कुबेरनेट्स क्लस्टर पर एआई प्लेटफॉर्म पाइपलाइन की स्थापना और तैनाती
एआई प्लेटफॉर्म पाइपलाइन क्लस्टर पेज पर जाएं।
मुख्य नेविगेशन मेनू के तहत: ≡ > एआई प्लेटफॉर्म > पाइपलाइन
नया क्लस्टर बनाने के लिए + न्यू इंस्टेंस पर क्लिक करें।
Kubeflow Pipelines सिंहावलोकन पृष्ठ पर, कॉन्फ़िगर करें पर क्लिक करें।
कुबेरनेट्स इंजन एपीआई को सक्षम करने के लिए "सक्षम करें" पर क्लिक करें
क्यूबफ़्लो पाइपलाइन परिनियोजित करें पृष्ठ पर:
अपने क्लस्टर के लिए एक क्षेत्र (या "क्षेत्र") चुनें। नेटवर्क और सबनेटवर्क को सेट किया जा सकता है, लेकिन इस ट्यूटोरियल के प्रयोजनों के लिए हम उन्हें डिफ़ॉल्ट के रूप में छोड़ देंगे।
महत्वपूर्ण निम्नलिखित क्लाउड एपीआई तक पहुंच की अनुमति दें लेबल वाले बॉक्स को चेक करें। (इस क्लस्टर के लिए आपके प्रोजेक्ट के अन्य हिस्सों तक पहुंचने के लिए यह आवश्यक है। यदि आप इस चरण को याद करते हैं, तो इसे बाद में ठीक करना थोड़ा मुश्किल है।)
नया क्लस्टर बनाएं क्लिक करें, और क्लस्टर बनने तक कई मिनट प्रतीक्षा करें। इसमें कुछ ही मिनट लगेंगे। जब यह पूरा हो जाएगा तो आपको एक संदेश दिखाई देगा जैसे:
"us-central1-a" क्षेत्र में क्लस्टर "क्लस्टर-1" सफलतापूर्वक बनाया गया।
एक नाम स्थान और इंस्टेंस नाम चुनें (डिफ़ॉल्ट का उपयोग करना ठीक है)। इस ट्यूटोरियल के प्रयोजनों के लिए executor.emissary या managestorage.enabled चेक न करें।
परिनियोजन पर क्लिक करें, और पाइपलाइन के परिनियोजित होने तक कई क्षण प्रतीक्षा करें। Kubeflow पाइपलाइनों को परिनियोजित करके, आप सेवा की शर्तों को स्वीकार करते हैं।
3. क्लाउड एआई प्लेटफॉर्म नोटबुक इंस्टेंस सेट करें।
वर्टेक्स एआई वर्कबेंच पेज पर जाएं। पहली बार जब आप वर्कबेंच चलाते हैं तो आपको नोटबुक एपीआई को सक्षम करने की आवश्यकता होगी।
मुख्य नेविगेशन मेनू के तहत: ≡ -> वर्टेक्स एआई -> कार्यक्षेत्र
यदि संकेत दिया जाए, तो कंप्यूट इंजन API को सक्षम करें।
TensorFlow Enterprise 2.7 (या ऊपर) स्थापित के साथ एक नई नोटबुक बनाएं।
नई नोटबुक -> TensorFlow Enterprise 2.7 -> GPU के बिना
एक क्षेत्र और क्षेत्र चुनें, और नोटबुक इंस्टेंस को एक नाम दें।
फ्री टियर सीमा के भीतर रहने के लिए, आपको इस उदाहरण के लिए उपलब्ध वीसीपीयू की संख्या को 4 से 2 तक कम करने के लिए यहां डिफ़ॉल्ट सेटिंग्स को बदलने की आवश्यकता हो सकती है:
- नई नोटबुक प्रपत्र के निचले भाग में उन्नत विकल्प चुनें।
यदि आप फ्री टियर में रहना चाहते हैं तो मशीन कॉन्फ़िगरेशन के तहत आप 1 या 2 वीसीपीयू के साथ एक कॉन्फ़िगरेशन का चयन करना चाह सकते हैं।
नई नोटबुक के बनने की प्रतीक्षा करें, और फिर नोटबुक्स API सक्षम करें पर क्लिक करें
4. प्रारंभ करना नोटबुक लॉन्च करें
एआई प्लेटफॉर्म पाइपलाइन क्लस्टर पेज पर जाएं।
मुख्य नेविगेशन मेनू के तहत: ≡ -> एआई प्लेटफार्म -> पाइपलाइन
इस ट्यूटोरियल में आप जिस क्लस्टर का उपयोग कर रहे हैं, उस लाइन पर ओपन पाइपलाइन डैशबोर्ड पर क्लिक करें।
प्रारंभ करना पृष्ठ पर, Google क्लाउड पर एक क्लाउड AI प्लेटफ़ॉर्म नोटबुक खोलें पर क्लिक करें।
इस ट्यूटोरियल के लिए आप जिस नोटबुक इंस्टेंस का उपयोग कर रहे हैं उसे चुनें और जारी रखें , और फिर पुष्टि करें ।
5. नोटबुक में काम करना जारी रखें
स्थापित करना
गेटिंग स्टार्टेड नोटबुक वीएम में टीएफएक्स और क्यूबफ्लो पाइपलाइन (केएफपी) स्थापित करके शुरू होता है, जिसमें ज्यूपिटर लैब चल रहा है।
यह तब जांचता है कि TFX का कौन सा संस्करण स्थापित है, आयात करता है, और प्रोजेक्ट आईडी सेट और प्रिंट करता है:
अपनी Google क्लाउड सेवाओं से जुड़ें
पाइपलाइन कॉन्फ़िगरेशन को आपकी प्रोजेक्ट आईडी की आवश्यकता होती है, जिसे आप नोटबुक के माध्यम से प्राप्त कर सकते हैं और एक पर्यावरण चर के रूप में सेट कर सकते हैं।
# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)
अब अपना KFP क्लस्टर एंडपॉइंट सेट करें।
यह पाइपलाइन डैशबोर्ड के URL से पाया जा सकता है। क्यूबफ्लो पाइपलाइन डैशबोर्ड पर जाएं और यूआरएल देखें। समापन बिंदु URL में https://
से शुरू होकर , googleusercontent.com
तक और इसमें शामिल सब कुछ है।
ENDPOINT='' # Enter YOUR ENDPOINT here.
नोटबुक तब कस्टम डॉकर छवि के लिए एक अद्वितीय नाम सेट करता है:
# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'
6. अपनी परियोजना निर्देशिका में एक टेम्पलेट की प्रतिलिपि बनाएँ
अपनी पाइपलाइन के लिए एक नाम सेट करने के लिए अगले नोटबुक सेल को संपादित करें। इस ट्यूटोरियल में हम my_pipeline
का उपयोग करेंगे।
PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)
नोटबुक तब पाइपलाइन टेम्पलेट की प्रतिलिपि बनाने के लिए tfx
CLI का उपयोग करता है। यह ट्यूटोरियल बाइनरी वर्गीकरण करने के लिए शिकागो टैक्सी डेटासेट का उपयोग करता है, इसलिए टेम्पलेट मॉडल को taxi
पर सेट करता है:
!tfx template copy \
--pipeline-name={PIPELINE_NAME} \
--destination-path={PROJECT_DIR} \
--model=taxi
तब नोटबुक अपने CWD संदर्भ को प्रोजेक्ट निर्देशिका में बदल देती है:
%cd {PROJECT_DIR}
पाइपलाइन फ़ाइलें ब्राउज़ करें
क्लाउड एआई प्लेटफॉर्म नोटबुक के बाईं ओर, आपको एक फ़ाइल ब्राउज़र देखना चाहिए। आपके पाइपलाइन नाम ( my_pipeline
) के साथ एक निर्देशिका होनी चाहिए। इसे खोलें और फाइलों को देखें। (आप उन्हें खोल सकेंगे और नोटबुक परिवेश से भी संपादित कर सकेंगे।)
# You can also list the files from the shell
ls
ऊपर दिए गए tfx template copy
कमांड ने एक पाइपलाइन बनाने वाली फाइलों का एक मूल मचान बनाया है। इनमें पायथन स्रोत कोड, नमूना डेटा और ज्यूपिटर नोटबुक शामिल हैं। ये इस विशेष उदाहरण के लिए हैं। आपकी अपनी पाइपलाइनों के लिए ये सहायक फ़ाइलें होंगी जिनकी आपकी पाइपलाइन को आवश्यकता होती है।
यहां पायथन फाइलों का संक्षिप्त विवरण दिया गया है।
-
pipeline
- इस निर्देशिका में पाइपलाइन की परिभाषा है-
configs.py
- पाइपलाइन धावकों के लिए सामान्य स्थिरांक को परिभाषित करता है -
pipeline.py
— TFX घटकों और एक पाइपलाइन को परिभाषित करता है
-
-
models
- इस निर्देशिका में एमएल मॉडल परिभाषाएँ हैं।-
features.py
features_test.py
— मॉडल के लिए सुविधाओं को परिभाषित करता है -
preprocessing.py
/preprocessing_test.py
-tf::Transform
. का उपयोग करके प्रीप्रोसेसिंग नौकरियों को परिभाषित करता है -
estimator
- इस निर्देशिका में एक अनुमानक आधारित मॉडल है।-
constants.py
.py - मॉडल के स्थिरांक को परिभाषित करता है -
model.py
/model_test.py
— TF अनुमानक का उपयोग करके DNN मॉडल को परिभाषित करता है
-
-
keras
- इस निर्देशिका में केरस आधारित मॉडल है।-
constants.py
.py - मॉडल के स्थिरांक को परिभाषित करता है -
model.py
/model_test.py
— Keras . का उपयोग करके DNN मॉडल को परिभाषित करता है
-
-
-
beam_runner.py
.py /kubeflow_runner.py
— प्रत्येक ऑर्केस्ट्रेशन इंजन के लिए धावकों को परिभाषित करें
7. Kubeflow . पर अपनी पहली TFX पाइपलाइन चलाएं
नोटबुक tfx run
सीएलआई कमांड का उपयोग करके पाइपलाइन चलाएगा।
भंडारण से कनेक्ट करें
चल रही पाइपलाइन ऐसी कलाकृतियाँ बनाती हैं जिन्हें ML-Metadata में संग्रहित करना होता है। कलाकृतियां पेलोड को संदर्भित करती हैं, जो ऐसी फाइलें हैं जिन्हें एक फाइल सिस्टम या ब्लॉक स्टोरेज में संग्रहित किया जाना चाहिए। इस ट्यूटोरियल के लिए, हम सेटअप के दौरान स्वचालित रूप से बनाए गए बकेट का उपयोग करके अपने मेटाडेटा पेलोड को संग्रहीत करने के लिए GCS का उपयोग करेंगे। इसका नाम <your-project-id>-kubeflowpipelines-default
।
पाइपलाइन बनाएं
नोटबुक हमारे नमूना डेटा को GCS बकेट में अपलोड करेगा ताकि हम इसे बाद में अपनी पाइपलाइन में उपयोग कर सकें।
gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv
नोटबुक तब पाइपलाइन बनाने के लिए tfx pipeline create
कमांड का उपयोग करता है।
!tfx pipeline create \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image
एक पाइपलाइन बनाते समय, Dockerfile
एक Docker छवि बनाने के लिए जनरेट की जाएगी। इन फ़ाइलों को अन्य स्रोत फ़ाइलों के साथ अपने स्रोत नियंत्रण प्रणाली (उदाहरण के लिए, git) में जोड़ना न भूलें।
पाइपलाइन चलाएं
नोटबुक तब आपकी पाइपलाइन का निष्पादन रन शुरू करने के लिए tfx run create
कमांड का उपयोग करता है। आप इस रन को Kubeflow पाइपलाइन डैशबोर्ड में प्रयोगों के अंतर्गत सूचीबद्ध भी देखेंगे।
tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}
आप Kubeflow पाइपलाइन डैशबोर्ड से अपनी पाइपलाइन देख सकते हैं।
8. अपना डेटा सत्यापित करें
किसी भी डेटा साइंस या एमएल प्रोजेक्ट में पहला काम डेटा को समझना और साफ करना होता है।
- प्रत्येक सुविधा के लिए डेटा प्रकारों को समझें
- विसंगतियों और लापता मूल्यों की तलाश करें
- प्रत्येक सुविधा के वितरण को समझें
अवयव
- exampleGen इनपुट डेटासेट को अंतर्ग्रहण और विभाजित करता है।
- स्टैटिस्टिक्सजेन डेटासेट के लिए आंकड़ों की गणना करता है।
- SchemaGen SchemaGen आँकड़ों की जाँच करता है और एक डेटा स्कीमा बनाता है।
- exampleValidator डेटासेट में विसंगतियों और अनुपलब्ध मानों की तलाश करता है।
जुपिटर लैब फ़ाइल संपादक में:
pipeline
/ pipeline.py
में, उन लाइनों को अनकम्मेंट करें जो इन घटकों को आपकी पाइपलाइन में जोड़ती हैं:
# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)
( ExampleGen
पहले से ही सक्षम था जब टेम्पलेट फ़ाइलों की प्रतिलिपि बनाई गई थी।)
पाइपलाइन को अपडेट करें और इसे फिर से चलाएँ
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
पाइपलाइन की जाँच करें
क्यूबफ्लो ऑर्केस्ट्रेटर के लिए, केएफपी डैशबोर्ड पर जाएं और अपने पाइपलाइन रन के लिए पेज में पाइपलाइन आउटपुट खोजें। बाईं ओर "प्रयोग" टैब और प्रयोग पृष्ठ में "सभी चलता है" पर क्लिक करें। आपको अपनी पाइपलाइन के नाम से रन ढूंढने में सक्षम होना चाहिए।
अधिक उन्नत उदाहरण
यहां प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अधिक उन्नत उदाहरण के लिए TensorFlow Data Validation Colab देखें ।
किसी डेटासेट को एक्सप्लोर करने और सत्यापित करने के लिए TFDV का उपयोग करने के बारे में अधिक जानकारी के लिए, tensorflow.org पर उदाहरण देखें ।
9. फ़ीचर इंजीनियरिंग
आप अपने डेटा की भविष्य कहनेवाला गुणवत्ता बढ़ा सकते हैं और/या फीचर इंजीनियरिंग के साथ आयाम को कम कर सकते हैं।
- फ़ीचर क्रॉस
- शब्दसंग्रह
- एम्बेडिंग
- पीसीए
- श्रेणीबद्ध एन्कोडिंग
TFX का उपयोग करने के लाभों में से एक यह है कि आप अपना परिवर्तन कोड एक बार लिखेंगे, और परिणामी परिवर्तन प्रशिक्षण और सेवा के बीच संगत होंगे।
अवयव
- ट्रांसफॉर्म डेटासेट पर फीचर इंजीनियरिंग करता है।
जुपिटर लैब फ़ाइल संपादक में:
pipeline
/ pipeline.py
में, उस लाइन को ढूंढें और अनकम्मेंट करें जो ट्रांसफॉर्म को पाइपलाइन में जोड़ती है।
# components.append(transform)
पाइपलाइन को अपडेट करें और इसे फिर से चलाएँ
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
पाइपलाइन आउटपुट की जाँच करें
क्यूबफ्लो ऑर्केस्ट्रेटर के लिए, केएफपी डैशबोर्ड पर जाएं और अपने पाइपलाइन रन के लिए पेज में पाइपलाइन आउटपुट खोजें। बाईं ओर "प्रयोग" टैब और प्रयोग पृष्ठ में "सभी चलता है" पर क्लिक करें। आपको अपनी पाइपलाइन के नाम से रन ढूंढने में सक्षम होना चाहिए।
अधिक उन्नत उदाहरण
यहां प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अधिक उन्नत उदाहरण के लिए TensorFlow Transform Colab देखें।
10. प्रशिक्षण
अपने अच्छे, स्वच्छ, रूपांतरित डेटा के साथ एक TensorFlow मॉडल को प्रशिक्षित करें।
- पिछले चरण के परिवर्तनों को शामिल करें ताकि वे लगातार लागू हों
- उत्पादन के लिए परिणामों को सहेजे गए मॉडल के रूप में सहेजें
- TensorBoard का उपयोग करके प्रशिक्षण प्रक्रिया की कल्पना और अन्वेषण करें
- मॉडल प्रदर्शन के विश्लेषण के लिए एक EvalSavedModel भी सहेजें
अवयव
- ट्रेनर एक TensorFlow मॉडल को प्रशिक्षित करता है।
जुपिटर लैब फ़ाइल संपादक में:
pipeline
/ pipeline.py
में, पाइपलाइन में ट्रेनर को जोड़ने वाले को ढूंढें और अनकम्मेंट करें:
# components.append(trainer)
पाइपलाइन को अपडेट करें और इसे फिर से चलाएँ
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
पाइपलाइन आउटपुट की जाँच करें
क्यूबफ्लो ऑर्केस्ट्रेटर के लिए, केएफपी डैशबोर्ड पर जाएं और अपने पाइपलाइन रन के लिए पेज में पाइपलाइन आउटपुट खोजें। बाईं ओर "प्रयोग" टैब और प्रयोग पृष्ठ में "सभी चलता है" पर क्लिक करें। आपको अपनी पाइपलाइन के नाम से रन ढूंढने में सक्षम होना चाहिए।
अधिक उन्नत उदाहरण
यहां प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अधिक उन्नत उदाहरण के लिए TensorBoard Tutorial देखें।
11. मॉडल प्रदर्शन का विश्लेषण
केवल शीर्ष स्तर के मेट्रिक्स से अधिक को समझना।
- उपयोगकर्ता केवल अपने प्रश्नों के लिए मॉडल प्रदर्शन का अनुभव करते हैं
- डेटा के स्लाइस पर खराब प्रदर्शन को शीर्ष स्तरीय मेट्रिक्स द्वारा छिपाया जा सकता है
- मॉडल निष्पक्षता महत्वपूर्ण है
- अक्सर उपयोगकर्ताओं या डेटा के प्रमुख उपसमुच्चय बहुत महत्वपूर्ण होते हैं, और छोटे हो सकते हैं
- गंभीर लेकिन असामान्य परिस्थितियों में प्रदर्शन
- प्रभावशाली दर्शकों जैसे प्रमुख दर्शकों के लिए प्रदर्शन
- यदि आप किसी ऐसे मॉडल को बदल रहे हैं जो वर्तमान में उत्पादन में है, तो पहले सुनिश्चित करें कि नया मॉडल बेहतर है
अवयव
- मूल्यांकनकर्ता प्रशिक्षण परिणामों का गहन विश्लेषण करता है।
जुपिटर लैब फ़ाइल संपादक में:
pipeline
/ pipeline.py
में, उस लाइन को ढूंढें और असम्बद्ध करें जो मूल्यांकनकर्ता को पाइपलाइन में जोड़ती है:
components.append(evaluator)
पाइपलाइन को अपडेट करें और इसे फिर से चलाएँ
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
पाइपलाइन आउटपुट की जाँच करें
क्यूबफ्लो ऑर्केस्ट्रेटर के लिए, केएफपी डैशबोर्ड पर जाएं और अपने पाइपलाइन रन के लिए पेज में पाइपलाइन आउटपुट खोजें। बाईं ओर "प्रयोग" टैब और प्रयोग पृष्ठ में "सभी चलता है" पर क्लिक करें। आपको अपनी पाइपलाइन के नाम से रन ढूंढने में सक्षम होना चाहिए।
12. मॉडल की सेवा
यदि नया मॉडल तैयार है, तो इसे बनाएं।
- पुशर सहेजे गए मॉडल को प्रसिद्ध स्थानों पर तैनात करता है
परिनियोजन लक्ष्य प्रसिद्ध स्थानों से नए मॉडल प्राप्त करते हैं
- टेंसरफ्लो सर्विंग
- टेंसरफ्लो लाइट
- टेंसरफ्लो जेएस
- टेंसरफ्लो हब
अवयव
- पुशर मॉडल को एक सेवारत बुनियादी ढांचे में तैनात करता है।
जुपिटर लैब फ़ाइल संपादक में:
pipeline
/ pipeline.py
में, पाइप लाइन में पुशर को जोड़ने वाली लाइन को ढूंढें और अनकम्मेंट करें:
# components.append(pusher)
पाइपलाइन आउटपुट की जाँच करें
क्यूबफ्लो ऑर्केस्ट्रेटर के लिए, केएफपी डैशबोर्ड पर जाएं और अपने पाइपलाइन रन के लिए पेज में पाइपलाइन आउटपुट खोजें। बाईं ओर "प्रयोग" टैब और प्रयोग पृष्ठ में "सभी चलता है" पर क्लिक करें। आपको अपनी पाइपलाइन के नाम से रन ढूंढने में सक्षम होना चाहिए।
उपलब्ध परिनियोजन लक्ष्य
आपने अब अपने मॉडल को प्रशिक्षित और मान्य किया है, और आपका मॉडल अब उत्पादन के लिए तैयार है। अब आप अपने मॉडल को किसी भी TensorFlow परिनियोजन लक्ष्य पर परिनियोजित कर सकते हैं, जिसमें शामिल हैं:
- TensorFlow सर्विंग , सर्वर या सर्वर फ़ार्म पर अपने मॉडल की सेवा और REST और/या gRPC अनुमान अनुरोधों को संसाधित करने के लिए।
- TensorFlow Lite , आपके मॉडल को Android या iOS नेटिव मोबाइल एप्लिकेशन में, या रास्पबेरी पाई, IoT, या माइक्रोकंट्रोलर एप्लिकेशन में शामिल करने के लिए।
- TensorFlow.js , आपके मॉडल को वेब ब्राउज़र या Node.JS एप्लिकेशन में चलाने के लिए।
अधिक उन्नत उदाहरण
ऊपर प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अन्य क्लाउड सेवाओं के साथ एकीकरण के कुछ उदाहरण नीचे दिए गए हैं।
Kubeflow पाइपलाइन संसाधन विचार
आपके कार्यभार की आवश्यकताओं के आधार पर, आपके Kubeflow पाइपलाइन परिनियोजन के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन आपकी आवश्यकताओं को पूरा कर सकता है या नहीं भी कर सकता है। KubeflowDagRunnerConfig
पर कॉल करने के लिए आप pipeline_operator_funcs
का उपयोग करके अपने संसाधन कॉन्फ़िगरेशन को कस्टमाइज़ कर सकते हैं।
pipeline_operator_funcs
OpFunc
आइटम्स की एक सूची है, जो KubeflowDagRunner
ContainerOp
बदल देता है।
उदाहरण के लिए, मेमोरी को कॉन्फ़िगर करने के लिए हम आवश्यक मेमोरी की मात्रा घोषित करने के लिए set_memory_request
का उपयोग कर सकते हैं। ऐसा करने का एक सामान्य तरीका है set_memory_request
के लिए एक रैपर बनाना और पाइपलाइन OpFunc
s की सूची में जोड़ने के लिए इसका उपयोग करना:
def request_more_memory():
def _set_memory_spec(container_op):
container_op.set_memory_request('32G')
return _set_memory_spec
# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
pipeline_operator_funcs=pipeline_op_funcs,
...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)
समान संसाधन कॉन्फ़िगरेशन फ़ंक्शंस में शामिल हैं:
-
set_memory_limit
-
set_cpu_request
-
set_cpu_limit
-
set_gpu_limit
BigQueryExampleGen
आज़माएं
BigQuery एक सर्वर रहित, अत्यधिक स्केलेबल और किफ़ायती क्लाउड डेटा वेयरहाउस है। BigQuery को TFX में प्रशिक्षण उदाहरणों के स्रोत के रूप में उपयोग किया जा सकता है। इस चरण में, हम BigQueryExampleGen
को पाइपलाइन में जोड़ेंगे।
जुपिटर लैब फ़ाइल संपादक में:
pipeline.py
खोलने के लिए डबल-क्लिक करें । CsvExampleGen
पर टिप्पणी करें और BigQueryExampleGen
का उदाहरण बनाने वाली लाइन को अनकम्मेंट करें। आपको create_pipeline
फ़ंक्शन के query
तर्क को असम्बद्ध करने की भी आवश्यकता है।
हमें यह निर्दिष्ट करने की आवश्यकता है कि BigQuery के लिए किस GCP प्रोजेक्ट का उपयोग करना है, और यह पाइपलाइन बनाते समय beam_pipeline_args
को --project
में सेट करके किया जाता है।
configs.py
खोलने के लिए डबल-क्लिक करें । BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS
और BIG_QUERY_QUERY
की परिभाषा पर टिप्पणी न करें। आपको इस फ़ाइल में प्रोजेक्ट आईडी और क्षेत्र मान को अपने GCP प्रोजेक्ट के लिए सही मानों से बदलना चाहिए।
निर्देशिका को एक स्तर ऊपर बदलें। फ़ाइल सूची के ऊपर निर्देशिका के नाम पर क्लिक करें। निर्देशिका का नाम पाइपलाइन का नाम है जो कि my_pipeline
है यदि आपने पाइपलाइन का नाम नहीं बदला है।
kubeflow_runner.py
खोलने के लिए डबल-क्लिक करें । create_pipeline फ़ंक्शन के लिए दो तर्क, query
और beam_pipeline_args
को create_pipeline
करें।
अब पाइपलाइन एक उदाहरण स्रोत के रूप में BigQuery का उपयोग करने के लिए तैयार है। पाइपलाइन को पहले की तरह अपडेट करें और एक नया निष्पादन रन बनाएं जैसा कि हमने चरण 5 और 6 में किया था।
पाइपलाइन को अपडेट करें और इसे फिर से चलाएँ
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
डेटाफ़्लो आज़माएं
कई टीएफएक्स घटक डेटा-समानांतर पाइपलाइनों को लागू करने के लिए अपाचे बीम का उपयोग करते हैं , और इसका मतलब है कि आप Google क्लाउड डेटाफ्लो का उपयोग करके डेटा प्रोसेसिंग वर्कलोड वितरित कर सकते हैं। इस चरण में, हम अपाचे बीम के लिए डेटा प्रोसेसिंग बैक-एंड के रूप में डेटाफ्लो का उपयोग करने के लिए क्यूबफ्लो ऑर्केस्ट्रेटर सेट करेंगे।
# Select your project:
gcloud config set project YOUR_PROJECT_ID
# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow
# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API. See your account adminstrator.
# Enable the Dataflow service:
gcloud services enable dataflow.googleapis.com
निर्देशिका बदलने के लिए pipeline
पर डबल-क्लिक करें, और configs.py
खोलने के लिए डबल-क्लिक करें । GOOGLE_CLOUD_REGION
, और DATAFLOW_BEAM_PIPELINE_ARGS
की परिभाषा पर टिप्पणी न करें।
निर्देशिका को एक स्तर ऊपर बदलें। फ़ाइल सूची के ऊपर निर्देशिका के नाम पर क्लिक करें। निर्देशिका का नाम पाइपलाइन का नाम है जो my_pipeline
है यदि आपने नहीं बदला है।
kubeflow_runner.py
खोलने के लिए डबल-क्लिक करें । beam_pipeline_args
पर टिप्पणी न करें। (यह भी सुनिश्चित करें कि आपने चरण 7 में जोड़े गए वर्तमान beam_pipeline_args
पर टिप्पणी की है।)
पाइपलाइन को अपडेट करें और इसे फिर से चलाएं
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
आप क्लाउड कंसोल में डेटाफ़्लो में अपनी डेटाफ़्लो नौकरियां ढूंढ सकते हैं।
KFP के साथ क्लाउड एआई प्लेटफॉर्म प्रशिक्षण और भविष्यवाणी का प्रयास करें
टीएफएक्स कई प्रबंधित जीसीपी सेवाओं के साथ इंटरऑपरेट करता है, जैसे प्रशिक्षण और भविष्यवाणी के लिए क्लाउड एआई प्लेटफॉर्म । आप अपने Trainer
घटक को क्लाउड एआई प्लेटफॉर्म ट्रेनिंग का उपयोग करने के लिए सेट कर सकते हैं, जो एमएल मॉडल के प्रशिक्षण के लिए एक प्रबंधित सेवा है। इसके अलावा, जब आपका मॉडल तैयार हो जाता है और परोसने के लिए तैयार हो जाता है, तो आप अपने मॉडल को परोसने के लिए क्लाउड एआई प्लेटफॉर्म प्रेडिक्शन पर धकेल सकते हैं। इस चरण में, हम अपने Trainer
और Pusher
घटक को क्लाउड एआई प्लेटफ़ॉर्म सेवाओं का उपयोग करने के लिए सेट करेंगे।
फ़ाइलों को संपादित करने से पहले, आपको पहले AI प्लेटफ़ॉर्म प्रशिक्षण और भविष्यवाणी API को सक्षम करना पड़ सकता है।
निर्देशिका बदलने के लिए pipeline
पर डबल-क्लिक करें, और configs.py
खोलने के लिए डबल-क्लिक करें । GOOGLE_CLOUD_REGION
, GCP_AI_PLATFORM_TRAINING_ARGS
और GCP_AI_PLATFORM_SERVING_ARGS
की परिभाषा पर टिप्पणी न करें। हम क्लाउड AI प्लेटफ़ॉर्म प्रशिक्षण में एक मॉडल को प्रशिक्षित करने के लिए अपनी कस्टम निर्मित कंटेनर छवि का उपयोग करेंगे, इसलिए हमें masterConfig.imageUri
में GCP_AI_PLATFORM_TRAINING_ARGS
को ऊपर CUSTOM_TFX_IMAGE
के समान मान पर सेट करना चाहिए।
निर्देशिका को एक स्तर ऊपर बदलें, और kubeflow_runner.py
खोलने के लिए डबल-क्लिक करें । ai_platform_training_args
और ai_platform_serving_args
।
पाइपलाइन को अपडेट करें और इसे फिर से चलाएँ
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
आप Cloud AI Platform Jobs में अपनी ट्रेनिंग जॉब पा सकते हैं। यदि आपकी पाइपलाइन सफलतापूर्वक पूरी हो गई है, तो आप अपने मॉडल को क्लाउड AI प्लेटफ़ॉर्म मॉडल में पा सकते हैं।
14. अपने खुद के डेटा का प्रयोग करें
इस ट्यूटोरियल में, आपने शिकागो टैक्सी डेटासेट का उपयोग करके एक मॉडल के लिए एक पाइपलाइन बनाई है। अब अपना खुद का डेटा पाइपलाइन में डालने का प्रयास करें। आपका डेटा कहीं भी संग्रहीत किया जा सकता है जहां पाइपलाइन इसे एक्सेस कर सकती है, जिसमें Google क्लाउड स्टोरेज, BigQuery, या CSV फ़ाइलें शामिल हैं।
आपको अपने डेटा को समायोजित करने के लिए पाइपलाइन परिभाषा को संशोधित करने की आवश्यकता है।
यदि आपका डेटा फाइलों में संग्रहीत है
-
kubeflow_runner.py
कोDATA_PATH
में संशोधित करें, जो स्थान को दर्शाता है।
अगर आपका डेटा BigQuery में सेव है
- अपने क्वेरी स्टेटमेंट में
BIG_QUERY_QUERY
में BIG_QUERY_QUERY को संशोधित करें। -
models
/features.py
में सुविधाएँ जोड़ें। - प्रशिक्षण के लिए इनपुट डेटा को बदलने के लिए
models
/preprocessing.py
को संशोधित करें। - अपने एमएल मॉडल का वर्णन करने के लिए
models
/model.py
keras
models
/keras
/constants.py
को संशोधित करें।
ट्रेनर के बारे में और जानें
प्रशिक्षण पाइपलाइनों के बारे में अधिक जानकारी के लिए ट्रेनर घटक मार्गदर्शिका देखें।
सफाई
इस प्रोजेक्ट में उपयोग किए गए सभी Google क्लाउड संसाधनों को साफ़ करने के लिए, आप ट्यूटोरियल के लिए उपयोग किए गए Google क्लाउड प्रोजेक्ट को हटा सकते हैं।
वैकल्पिक रूप से, आप प्रत्येक कंसोल पर जाकर व्यक्तिगत संसाधनों को साफ कर सकते हैं: - Google क्लाउड स्टोरेज - Google कंटेनर रजिस्ट्री - Google Kubernetes Engine