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

अवलोकन

अवलोकन

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

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

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

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

अधिक जानने के लिए कृपया TFX उपयोगकर्ता मार्गदर्शिका देखें।

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

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

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

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

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

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

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

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

टैक्सी.जेपीजी

शिकागो.png

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

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

क्या ग्राहक 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 आईडी पर सेट हो जाता है। उदाहरण के लिए:

qwiksetup7.png

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

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

gcloud auth list

(आउटपुट)

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

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

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

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

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

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

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

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

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

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

शीर्ष-ऐ-workbench.png

  1. नोटबुक उदाहरण पृष्ठ पर, नई नोटबुक पर क्लिक करें।

  2. उदाहरण अनुकूलित करें मेनू में, TensorFlow Enterprise चुनें और TensorFlow Enterprise 2.x (LTS के साथ) > GPU के बिना का संस्करण चुनें।

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

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

  2. इंस्टेंस नाम के लिए, अपने इंस्टेंस के लिए एक नाम दर्ज करें।

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

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

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

कुछ मिनटों के बाद, Vertex AI कंसोल आपके इंस्टेंस नाम को प्रदर्शित करेगा, उसके बाद Open Jupyterlab

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

पर्यावरण की स्थापना करें

लैब रिपॉजिटरी को क्लोन करें

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

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

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

रेपो-directory.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/ फोल्डर में कॉपी करें।
  • csv फ़ाइल को tfx/tfx/examples/airflow_workshop/taxi/setup/data से ~/airflow/data पर कॉपी करें।

airflow-home.png

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

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

  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. Name के लिए 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. क्लाउड शेल में, बाहरी IP प्राप्त करने के लिए gcloud का उपयोग करें।
gcloud compute instances list

gcloud-instance-ip.png

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

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

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

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

हवा का प्रवाह-login.png

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

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

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

dag-home-full.png

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

airflow-dag-graph.png

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

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

dag-buttons.png

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

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

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

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

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

# trigger
airflow trigger_dag <your DAG name>

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

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

डेग-स्टेप7.png

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

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

  1. JupyterLab में ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/

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

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

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