टीएफएक्स एयरफ्लो ट्यूटोरियल

सिंहावलोकन

सिंहावलोकन

यह ट्यूटोरियल आपको ऑर्केस्ट्रेटर के रूप में टेन्सरफ्लो एक्सटेंडेड (टीएफएक्स) और अपाचे एयरफ्लो का उपयोग करके अपनी खुद की मशीन लर्निंग पाइपलाइन बनाने में सीखने में मदद करने के लिए डिज़ाइन किया गया है। यह वर्टेक्स एआई वर्कबेंच पर चलता है, और टीएफएक्स और टेन्सरबोर्ड के साथ एकीकरण के साथ-साथ ज्यूपिटर लैब वातावरण में टीएफएक्स के साथ इंटरैक्शन दिखाता है।

आप क्या कर रहे होंगे?

आप सीखेंगे कि टीएफएक्स का उपयोग करके एमएल पाइपलाइन कैसे बनाई जाती है

  • टीएफएक्स पाइपलाइन एक डायरेक्टेड एसाइक्लिक ग्राफ़ या "डीएजी" है। हम अक्सर पाइपलाइनों को डीएजी के रूप में संदर्भित करेंगे।
  • जब आप उत्पादन एमएल एप्लिकेशन को तैनात करेंगे तो टीएफएक्स पाइपलाइन उपयुक्त हैं
  • टीएफएक्स पाइपलाइन तब उपयुक्त होती हैं जब डेटासेट बड़े होते हैं, या बड़े हो सकते हैं
  • जब प्रशिक्षण/सेवा में निरंतरता महत्वपूर्ण हो तो टीएफएक्स पाइपलाइन उपयुक्त होती हैं
  • जब अनुमान के लिए संस्करण प्रबंधन महत्वपूर्ण हो तो टीएफएक्स पाइपलाइन उपयुक्त होती हैं
  • Google उत्पादन ML के लिए TFX पाइपलाइनों का उपयोग करता है

अधिक जानने के लिए कृपया टीएफएक्स उपयोगकर्ता गाइड देखें।

आप एक विशिष्ट एमएल विकास प्रक्रिया का पालन करेंगे:

  • हमारे डेटा को ग्रहण करना, समझना और साफ़ करना
  • फ़ीचर इंजीनियरिंग
  • प्रशिक्षण
  • मॉडल प्रदर्शन का विश्लेषण
  • झाग बनाना, धोना, दोहराना
  • उत्पादन के लिए तैयार

पाइपलाइन ऑर्केस्ट्रेशन के लिए अपाचे एयरफ्लो

टीएफएक्स ऑर्केस्ट्रेटर पाइपलाइन द्वारा परिभाषित निर्भरता के आधार पर टीएफएक्स पाइपलाइन के घटकों को शेड्यूल करने के लिए जिम्मेदार हैं। टीएफएक्स को कई वातावरणों और ऑर्केस्ट्रेशन ढांचे के लिए पोर्टेबल होने के लिए डिज़ाइन किया गया है। TFX द्वारा समर्थित डिफ़ॉल्ट ऑर्केस्ट्रेटर में से एक Apache Airflow है। यह प्रयोगशाला टीएफएक्स पाइपलाइन ऑर्केस्ट्रेशन के लिए अपाचे एयरफ्लो के उपयोग को दर्शाती है। अपाचे एयरफ़्लो वर्कफ़्लो को प्रोग्रामेटिक रूप से लिखने, शेड्यूल करने और मॉनिटर करने का एक प्लेटफ़ॉर्म है। टीएफएक्स कार्यों के निर्देशित एसाइक्लिक ग्राफ़ (डीएजी) के रूप में वर्कफ़्लो लिखने के लिए एयरफ्लो का उपयोग करता है। समृद्ध उपयोगकर्ता इंटरफ़ेस उत्पादन में चल रही पाइपलाइनों की कल्पना करना, प्रगति की निगरानी करना और ज़रूरत पड़ने पर समस्याओं का निवारण करना आसान बनाता है। अपाचे एयरफ्लो वर्कफ़्लो को कोड के रूप में परिभाषित किया गया है। यह उन्हें अधिक रखरखाव योग्य, संस्करण योग्य, परीक्षण योग्य और सहयोगी बनाता है। अपाचे एयरफ़्लो बैच प्रोसेसिंग पाइपलाइनों के लिए उपयुक्त है। यह हल्का और सीखने में आसान है।

इस उदाहरण में, हम एयरफ्लो को मैन्युअल रूप से सेट करके एक उदाहरण पर टीएफएक्स पाइपलाइन चलाने जा रहे हैं।

टीएफएक्स द्वारा समर्थित अन्य डिफ़ॉल्ट ऑर्केस्ट्रेटर अपाचे बीम और क्यूबफ्लो हैं। अपाचे बीम एकाधिक डेटा प्रोसेसिंग बैकएंड (बीम रनर्स) पर चल सकता है। क्लाउड डेटाफ्लो एक ऐसा बीम रनर है जिसका उपयोग टीएफएक्स पाइपलाइन चलाने के लिए किया जा सकता है। अपाचे बीम का उपयोग स्ट्रीमिंग और बैच प्रोसेसिंग पाइपलाइन दोनों के लिए किया जा सकता है।
क्यूबफ़्लो एक खुला स्रोत एमएल प्लेटफ़ॉर्म है जो कुबेरनेट्स पर मशीन लर्निंग (एमएल) वर्कफ़्लो की तैनाती को सरल, पोर्टेबल और स्केलेबल बनाने के लिए समर्पित है। Kubeflow को TFFX पाइपलाइनों के लिए एक ऑर्केस्ट्रेटर के रूप में उपयोग किया जा सकता है, जब उन्हें Kubernetes क्लस्टर पर तैनात करने की आवश्यकता होती है। इसके अलावा, आप टीएफएक्स पाइपलाइन चलाने के लिए अपने स्वयं के कस्टम ऑर्केस्ट्रेटर का भी उपयोग कर सकते हैं।

एयरफ्लो के बारे में यहां और पढ़ें।

शिकागो टैक्सी डेटासेट

टैक्सी.jpg

शिकागो.पीएनजी

आप शिकागो शहर द्वारा जारी टैक्सी ट्रिप डेटासेट का उपयोग करेंगे।

मॉडल लक्ष्य - बाइनरी वर्गीकरण

क्या ग्राहक 20% से अधिक या कम टिप देगा?

Google क्लाउड प्रोजेक्ट सेटअप करें

स्टार्ट लैब बटन पर क्लिक करने से पहले इन निर्देशों को पढ़ें। प्रयोगशालाएँ समयबद्ध हैं और आप उन्हें रोक नहीं सकते। जब आप स्टार्ट लैब पर क्लिक करते हैं तो टाइमर शुरू होता है, जो दिखाता है कि Google क्लाउड संसाधन आपको कितने समय तक उपलब्ध कराए जाएंगे।

यह व्यावहारिक प्रयोगशाला आपको प्रयोगशाला गतिविधियों को वास्तविक क्लाउड वातावरण में स्वयं करने देती है, न कि सिमुलेशन या डेमो वातावरण में। यह आपको नए, अस्थायी क्रेडेंशियल देकर ऐसा करता है जिनका उपयोग आप लैब की अवधि के दौरान साइन इन करने और Google क्लाउड तक पहुंचने के लिए करते हैं।

आपको क्या चाहिए इस लैब को पूरा करने के लिए, आपको चाहिए:

  • एक मानक इंटरनेट ब्राउज़र तक पहुंच (क्रोम ब्राउज़र अनुशंसित)।
  • लैब पूरा करने का समय.

अपनी लैब कैसे शुरू करें और Google क्लाउड कंसोल में साइन इन करें 1. लैब प्रारंभ करें बटन पर क्लिक करें। यदि आपको लैब के लिए भुगतान करने की आवश्यकता है, तो आपकी भुगतान विधि चुनने के लिए एक पॉप-अप खुल जाएगा। बाईं ओर एक पैनल है जिसमें अस्थायी क्रेडेंशियल्स भरे हुए हैं जिनका उपयोग आपको इस प्रयोगशाला के लिए करना चाहिए।

qwiksetup1.png

  1. उपयोगकर्ता नाम कॉपी करें और फिर Google कंसोल खोलें पर क्लिक करें। प्रयोगशाला संसाधनों का उपयोग करती है, और फिर एक अन्य टैब खोलती है जो साइन इन पृष्ठ दिखाता है।

qwiksetup2.png

युक्ति: टैब को अलग-अलग विंडो में, साथ-साथ खोलें।

qwiksetup3.png

  1. साइन इन पेज में, उस उपयोगकर्ता नाम को पेस्ट करें जिसे आपने बाएं पैनल से कॉपी किया था। फिर पासवर्ड को कॉपी करके पेस्ट करें।
  1. अगले पृष्ठों पर क्लिक करें:
  2. नियम एवं शर्तें स्वीकार करें.
  • पुनर्प्राप्ति विकल्प या दो-कारक प्रमाणीकरण न जोड़ें (क्योंकि यह एक अस्थायी खाता है)।

  • निःशुल्क परीक्षण के लिए साइन अप न करें.

कुछ देर बाद इस टैब में क्लाउड कंसोल खुल जाता है.

qwiksetup4.png

क्लाउड शेल सक्रिय करें

क्लाउड शेल एक वर्चुअल मशीन है जो विकास उपकरणों से भरी हुई है। यह लगातार 5GB होम डायरेक्टरी प्रदान करता है और Google क्लाउड पर चलता है। क्लाउड शेल आपके Google क्लाउड संसाधनों तक कमांड-लाइन पहुंच प्रदान करता है।

क्लाउड कंसोल में, शीर्ष दाईं ओर टूलबार में, क्लाउड शेल सक्रिय करें बटन पर क्लिक करें।

qwiksetup5.png

जारी रखें पर क्लिक करें.

qwiksetup6.png

प्रावधान करने और पर्यावरण से जुड़ने में कुछ क्षण लगते हैं। जब आप कनेक्ट होते हैं, तो आप पहले से ही प्रमाणित होते हैं, और प्रोजेक्ट आपकी _PROJECT ID पर सेट हो जाता है। उदाहरण के लिए:

qwiksetup7.png

gcloud Google क्लाउड के लिए कमांड-लाइन टूल है। यह क्लाउड शेल पर पहले से इंस्टॉल आता है और टैब-पूर्णता का समर्थन करता है।

आप इस आदेश से सक्रिय खाता नाम सूचीबद्ध कर सकते हैं:

gcloud auth list

(आउटपुट)

सक्रिय: * खाता: छात्र-01-xxxxxxxxxxxx@qwiklabs.net सक्रिय खाता सेट करने के लिए, चलाएँ: $ gcloud config सेट खाता ACCOUNT

आप इस कमांड के साथ प्रोजेक्ट आईडी को सूचीबद्ध कर सकते हैं: gcloud config list project (आउटपुट)

[कोर] परियोजना =

(उदाहरण आउटपुट)

[कोर] प्रोजेक्ट = qwiklabs-gcp-44776a13dea667a6

Gcloud के पूर्ण दस्तावेज़ीकरण के लिए gcloud कमांड-लाइन टूल अवलोकन देखें।

Google क्लाउड सेवाएँ सक्षम करें

  1. क्लाउड शेल में, लैब में उपयोग की जाने वाली सेवाओं को सक्षम करने के लिए gcloud का उपयोग करें। gcloud services enable notebooks.googleapis.com

वर्टेक्स नोटबुक उदाहरण तैनात करें

  1. नेविगेशन मेनू पर क्लिक करें और वर्टेक्स एआई पर नेविगेट करें, फिर वर्कबेंच पर।

vertex-ai-workbench.png

  1. नोटबुक इंस्टेंस पेज पर, नई नोटबुक पर क्लिक करें।

  2. कस्टमाइज़ इंस्टेंस मेनू में, TensorFlow Enterprise का चयन करें और TensorFlow Enterprise 2.x (LTS के साथ) > बिना GPU के संस्करण चुनें।

वर्टेक्स-नोटबुक-क्रिएट-2.पीएनजी

  1. नए नोटबुक इंस्टेंस संवाद में, इंस्टेंस गुणों को संपादित करने के लिए पेंसिल आइकन पर क्लिक करें।

  2. उदाहरण नाम के लिए, अपने उदाहरण के लिए एक नाम दर्ज करें।

  3. क्षेत्र के लिए, us-east1 चुनें और क्षेत्र के लिए, चयनित क्षेत्र के भीतर एक क्षेत्र चुनें।

  4. मशीन कॉन्फ़िगरेशन तक नीचे स्क्रॉल करें और मशीन प्रकार के लिए e2-मानक-2 चुनें।

  5. शेष फ़ील्ड को उनके डिफ़ॉल्ट के साथ छोड़ दें और Create पर क्लिक करें।

कुछ मिनटों के बाद, वर्टेक्स एआई कंसोल आपके इंस्टेंस का नाम प्रदर्शित करेगा, उसके बाद ज्यूपिटरलैब खोलें

  1. ज्यूपिटरलैब खोलें पर क्लिक करें। एक JupyterLab विंडो एक नए टैब में खुलेगी।

परिवेश स्थापित करें

प्रयोगशाला भंडार का क्लोन बनाएं

इसके बाद आप अपने JupyterLab इंस्टेंस में tfx रिपॉजिटरी को क्लोन करेंगे। 1. JupyterLab में, नया टर्मिनल खोलने के लिए टर्मिनल आइकन पर क्लिक करें।

नोट: यदि संकेत दिया जाए, तो अनुशंसित बिल्ड के लिए Cancel पर क्लिक करें।

  1. tfx Github रिपॉजिटरी को क्लोन करने के लिए, निम्न कमांड टाइप करें, और Enter दबाएँ।
git clone https://github.com/tensorflow/tfx.git
  1. यह पुष्टि करने के लिए कि आपने रिपॉजिटरी को क्लोन किया है, tfx निर्देशिका पर डबल-क्लिक करें और पुष्टि करें कि आप इसकी सामग्री देख सकते हैं।

रेपो-निर्देशिका.png

प्रयोगशाला निर्भरताएँ स्थापित करें

  1. tfx/tfx/examples/airflow_workshop/taxi/setup/ फ़ोल्डर पर जाने के लिए निम्नलिखित चलाएँ, फिर प्रयोगशाला निर्भरताएँ स्थापित करने के लिए ./setup_demo.sh चलाएँ:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

उपरोक्त कोड होगा

  • आवश्यक पैकेज स्थापित करें.
  • होम फोल्डर में एक airflow फोल्डर बनाएं।
  • dags फ़ोल्डर tfx/tfx/examples/airflow_workshop/taxi/setup/ फ़ोल्डर से ~/airflow/ फ़ोल्डर में कॉपी करें।
  • सीएसवी फ़ाइल को tfx/tfx/examples/airflow_workshop/taxi/setup/data से ~/airflow/data कॉपी करें।

एयरफ्लो-होम.पीएनजी

एयरफ्लो सर्वर को कॉन्फ़िगर करना

ब्राउज़र में एयरफ्लो सर्वर तक पहुंचने के लिए फ़ायरवॉल नियम बनाएं

  1. <a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a> पर जाएं और सुनिश्चित करें प्रोजेक्ट का नाम उचित रूप से चुना गया है
  2. शीर्ष पर CREATE FIREWALL RULE विकल्प पर क्लिक करें

फ़ायरवॉल-नियम.png

फ़ायरवॉल बनाएं संवाद में, नीचे सूचीबद्ध चरणों का पालन करें।

  1. नाम के लिए, airflow-tfx डालें।
  2. प्राथमिकता के लिए, 1 चुनें.
  3. लक्ष्य के लिए, All instances in the network चुनें।
  4. स्रोत IPv4 श्रेणियों के लिए, 0.0.0.0/0 चुनें
  5. प्रोटोकॉल और पोर्ट के लिए, tcp पर क्लिक करें और tcp के बगल वाले बॉक्स में 7000 दर्ज करें
  6. Create क्लिक करें.

create-firewall-dialog.png

अपने शेल से एयरफ़्लो सर्वर चलाएँ

ज्यूपिटर लैब टर्मिनल विंडो में, होम डायरेक्टरी में बदलें, एयरफ्लो के लिए एक एडमिन यूजर बनाने के लिए airflow users create कमांड चलाएं:

cd
airflow users  create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin

फिर सर्वर को चलाने के लिए airflow webserver और airflow scheduler कमांड चलाएँ। पोर्ट 7000 चुनें क्योंकि फ़ायरवॉल के माध्यम से इसकी अनुमति है।

nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &

अपना बाहरी आईपी प्राप्त करें

  1. क्लाउड शेल में, बाहरी आईपी प्राप्त करने के लिए gcloud उपयोग करें।
gcloud compute instances list

gcloud-instance-ip.png

डीएजी/पाइपलाइन चलाना

एक ब्राउज़र में

ब्राउज़र खोलें और http:// पर जाएं :7000

  • लॉगिन पृष्ठ में, वह उपयोगकर्ता नाम ( admin ) और पासवर्ड ( admin ) दर्ज करें जिसे आपने airflow users create कमांड चलाते समय चुना था।

एयरफ़्लो-लॉगिन.png

एयरफ्लो पायथन स्रोत फ़ाइलों से डीएजी लोड करता है। यह प्रत्येक फ़ाइल लेता है और उसे निष्पादित करता है। फिर यह उस फ़ाइल से किसी भी DAG ऑब्जेक्ट को लोड करता है। DAG ऑब्जेक्ट को परिभाषित करने वाली सभी .py फ़ाइलें एयरफ्लो होमपेज में पाइपलाइन के रूप में सूचीबद्ध की जाएंगी।

इस ट्यूटोरियल में, एयरफ़्लो DAG ऑब्जेक्ट के लिए ~/airflow/dags/ फ़ोल्डर को स्कैन करता है।

यदि आप ~/airflow/dags/taxi_pipeline.py खोलते हैं और नीचे स्क्रॉल करते हैं, तो आप देख सकते हैं कि यह DAG नामक वेरिएबल में DAG ऑब्जेक्ट बनाता और संग्रहीत करता है। इसलिए इसे एयरफ्लो होमपेज में एक पाइपलाइन के रूप में सूचीबद्ध किया जाएगा जैसा कि नीचे दिखाया गया है:

dag-home-full.png

यदि आप टैक्सी पर क्लिक करते हैं, तो आपको डीएजी के ग्रिड व्यू पर पुनः निर्देशित किया जाएगा। डीएजी का ग्राफ़ दृश्य प्राप्त करने के लिए आप शीर्ष पर Graph विकल्प पर क्लिक कर सकते हैं।

एयरफ्लो-डेग-ग्राफ.पीएनजी

टैक्सी पाइपलाइन को ट्रिगर करें

मुखपृष्ठ पर आप वे बटन देख सकते हैं जिनका उपयोग डीएजी के साथ बातचीत करने के लिए किया जा सकता है।

dag-buttons.png

एक्शन हेडर के अंतर्गत, पाइपलाइन को ट्रिगर करने के लिए ट्रिगर बटन पर क्लिक करें।

टैक्सी डीएजी पृष्ठ में, पाइपलाइन चलने पर डीएजी के ग्राफ़ दृश्य की स्थिति को ताज़ा करने के लिए दाईं ओर दिए गए बटन का उपयोग करें। इसके अतिरिक्त, आप स्थिति बदलने पर ग्राफ दृश्य को स्वचालित रूप से रीफ्रेश करने के लिए एयरफ्लो को निर्देश देने के लिए ऑटो रीफ्रेश को सक्षम कर सकते हैं।

डैग-बटन-रिफ्रेश.पीएनजी

आप अपने डीएजी को सक्षम और ट्रिगर करने के लिए टर्मिनल में एयरफ्लो सीएलआई का भी उपयोग कर सकते हैं:

# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>

# trigger
airflow trigger_dag <your DAG name>

पाइपलाइन पूरी होने का इंतजार किया जा रहा है

अपनी पाइपलाइन को चालू करने के बाद, DAGs दृश्य में, आप अपनी पाइपलाइन के चलने के दौरान उसकी प्रगति देख सकते हैं। जैसे-जैसे प्रत्येक घटक चलता है, DAG ग्राफ़ में घटक की रूपरेखा का रंग उसकी स्थिति दिखाने के लिए बदल जाएगा। जब किसी घटक का प्रसंस्करण पूरा हो जाएगा तो रूपरेखा यह दिखाने के लिए गहरे हरे रंग में बदल जाएगी कि यह पूरा हो गया है।

dag-step7.png

घटकों को समझना

अब हम इस पाइपलाइन के घटकों को विस्तार से देखेंगे, और पाइपलाइन में प्रत्येक चरण द्वारा उत्पादित आउटपुट को व्यक्तिगत रूप से देखेंगे।

  1. JupyterLab में ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/ पर जाएं

  2. नोटबुक.ipynb खोलें। नोटबुक-ipynb.png

  3. नोटबुक में लैब जारी रखें, और रन पर क्लिक करके प्रत्येक सेल को चलाएं ( रन-बटन.png ) स्क्रीन के शीर्ष पर आइकन। वैकल्पिक रूप से, आप SHIFT + ENTER के साथ सेल में कोड निष्पादित कर सकते हैं।

कथा पढ़ें और सुनिश्चित करें कि आप समझें कि प्रत्येक कोशिका में क्या हो रहा है।