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

अजगर पीपीपीआई

परिचय

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

आप एक विशिष्ट एमएल विकास प्रक्रिया का पालन करेंगे, जो डेटासेट की जांच करके शुरू होगी, और एक पूर्ण कार्यशील पाइपलाइन के साथ समाप्त होगी। जिस तरह से आप अपनी पाइपलाइन को डीबग करने और अपडेट करने और प्रदर्शन को मापने के तरीकों का पता लगाएंगे।

और अधिक जानें

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

क्रमशः

आप एक विशिष्ट एमएल विकास प्रक्रिया का पालन करते हुए, कदम दर कदम काम करके धीरे-धीरे अपनी पाइपलाइन तैयार करेंगे। यहाँ कदम हैं:

  1. अपना परिवेश सेट करें
  2. प्रारंभिक पाइपलाइन कंकाल लाओ
  3. अपने डेटा में गोता लगाएँ
  4. फ़ीचर इंजीनियरिंग
  5. प्रशिक्षण
  6. मॉडल प्रदर्शन का विश्लेषण
  7. उत्पादन के लिए तैयार

आवश्यक शर्तें

  • लिनक्स / मैकोज़
  • वर्चुअलएन्व
  • पायथन 3.5+
  • गीता

आवश्यक पैकेज

आपके पर्यावरण के आधार पर आपको कई पैकेज स्थापित करने की आवश्यकता हो सकती है:

sudo apt-get install \
    build-essential libssl-dev libffi-dev \
    libxml2-dev libxslt1-dev zlib1g-dev \
    python3-pip git software-properties-common

यदि आप पायथन 3.6 चला रहे हैं, तो आपको अजगर 3.6-देव स्थापित करना चाहिए:

sudo apt-get install python3.6-dev

यदि आप Python 3.7 चला रहे हैं तो आपको python3.7-dev इंस्टॉल करना चाहिए:

sudo apt-get install python3.7-dev

इसके अतिरिक्त, यदि आपके सिस्टम का GCC संस्करण <7 है, तो आपको GCC को अपडेट करना चाहिए। अन्यथा airflow webserver चलाते समय आपको त्रुटियां दिखाई देंगी। आप इसके साथ अपना वर्तमान संस्करण देख सकते हैं:

gcc --version

यदि आपको GCC को अपडेट करने की आवश्यकता है, तो आप इसे चला सकते हैं:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-7
sudo apt install g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7

मैकोज़ पर्यावरण

यदि आपके पास Python 3 और git पहले से इंस्टॉल नहीं है, तो आप Homebrew पैकेज मैनेजर का उपयोग करके उन्हें इंस्टॉल कर सकते हैं:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
brew update
brew install python
brew install git

MacOS को कभी-कभी कॉन्फ़िगरेशन के आधार पर Airflow चलाते समय थ्रेड्स को फोर्क करने में समस्या होती है। उन समस्याओं से बचने के लिए आपको अपना ~/.bash_profile संपादित करना चाहिए और फ़ाइल के अंत में निम्न पंक्ति जोड़ना चाहिए:

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

ट्यूटोरियल सामग्री

इस ट्यूटोरियल के लिए कोड यहां उपलब्ध है: https://github.com/tensorflow/tfx/tree/master/tfx/examples/airflow_workshop

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

यदि आप अटक जाते हैं, तो ट्यूटोरियल फाइलों में व्यायाम और व्यायाम का समाधान दोनों शामिल हैं।

व्यायाम

  • टैक्सी_पाइपलाइन.py
  • Taxi_utils.py
  • टैक्सी डीएजी

समाधान

  • टैक्सी_पाइपलाइन_समाधान.py
  • Taxi_utils_solution.py
  • टैक्सी_समाधान डीएजी

आप क्या कर रहे हैं

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

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

आप एक सामान्य एमएल विकास प्रक्रिया का पालन कर रहे हैं

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

प्रत्येक चरण के लिए कोड जोड़ना

ट्यूटोरियल को डिज़ाइन किया गया है ताकि सभी कोड फाइलों में शामिल हो, लेकिन चरण 3-7 के लिए सभी कोड पर टिप्पणी की गई और इनलाइन टिप्पणियों के साथ चिह्नित किया गया। इनलाइन टिप्पणियां पहचानती हैं कि कोड की रेखा किस चरण पर लागू होती है। उदाहरण के लिए, चरण 3 के लिए कोड # Step 3 टिप्पणी के साथ चिह्नित है।

प्रत्येक चरण के लिए आप जो कोड जोड़ेंगे, वह आमतौर पर कोड के 3 क्षेत्रों में आता है:

  • आयात
  • डीएजी विन्यास
  • create_pipeline() कॉल . से दी गई सूची
  • Taxi_utils.py . में सहायक कोड

जैसा कि आप ट्यूटोरियल के माध्यम से जाते हैं, आप उस ट्यूटोरियल चरण पर लागू होने वाले कोड की पंक्तियों को अनकम्मेंट करेंगे, जिस पर आप वर्तमान में काम कर रहे हैं। वह उस चरण के लिए कोड जोड़ देगा, और आपकी पाइपलाइन को अपडेट कर देगा। जब आप ऐसा करते हैं तो हम आपको उस कोड की समीक्षा करने के लिए दृढ़ता से प्रोत्साहित करते हैं जिस पर आप टिप्पणी नहीं कर रहे हैं

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

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

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

आप Google BigQuery में डेटासेट के बारे में अधिक पढ़ सकते हैं। BigQuery UI में संपूर्ण डेटासेट एक्सप्लोर करें.

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

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

चरण 1: अपना परिवेश सेट करें

सेटअप स्क्रिप्ट ( setup_demo.sh ) TFX और Airflow स्थापित करती है, और Airflow को इस तरह से कॉन्फ़िगर करती है जिससे इस ट्यूटोरियल के लिए काम करना आसान हो जाता है।

एक खोल में:

cd
virtualenv -p python3 tfx-env
source ~/tfx-env/bin/activate

git clone https://github.com/tensorflow/tfx.git
cd ~/tfx
# These instructions are specific to the 0.21 release
git checkout -f origin/r0.21
cd ~/tfx/tfx/examples/airflow_workshop/setup
./setup_demo.sh

यह क्या कर रहा है यह देखने के लिए आपको setup_demo.sh की समीक्षा करनी चाहिए।

चरण 2: प्रारंभिक पाइपलाइन कंकाल लाओ

नमस्ते दुनिया

एक खोल में:

# Open a new terminal window, and in that window ...
source ~/tfx-env/bin/activate
airflow webserver -p 8080

# Open another new terminal window, and in that window ...
source ~/tfx-env/bin/activate
airflow scheduler

# Open yet another new terminal window, and in that window ...
# Assuming that you've cloned the TFX repo into ~/tfx
source ~/tfx-env/bin/activate
cd ~/tfx/tfx/examples/airflow_workshop/notebooks
jupyter notebook

आपने इस चरण में ज्यूपिटर नोटबुक प्रारंभ की। बाद में आप इस फ़ोल्डर में नोटबुक चला रहे होंगे।

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

  • एक ब्राउज़र खोलें और http://127.0.0.1:8080 . पर जाएं

समस्या निवारण

यदि आपको अपने वेब ब्राउज़र में एयरफ्लो कंसोल लोड करने में कोई समस्या है, या airflow webserver चलाते समय कोई त्रुटि थी, तो आपके पास पोर्ट 8080 पर एक और एप्लिकेशन चल सकता है। यह एयरफ्लो के लिए डिफ़ॉल्ट पोर्ट है, लेकिन आप इसे बदल सकते हैं किसी अन्य उपयोगकर्ता पोर्ट के लिए जिसका उपयोग नहीं किया जा रहा है। उदाहरण के लिए, पोर्ट 7070 पर एयरफ्लो चलाने के लिए आप चला सकते हैं:

airflow webserver -p 7070

डीएजी व्यू बटन

डीएजी बटन

  • DAG को सक्षम करने के लिए बाईं ओर स्थित बटन का उपयोग करें
  • परिवर्तन करते समय DAG को ताज़ा करने के लिए दाईं ओर स्थित बटन का उपयोग करें
  • DAG को ट्रिगर करने के लिए दाईं ओर स्थित बटन का उपयोग करें
  • डीएजी के ग्राफ व्यू पर जाने के लिए टैक्सी पर क्लिक करें

ग्राफ़ ताज़ा करें बटन

एयरफ्लो सीएलआई

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

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

# trigger
airflow trigger_dag <your DAG name>

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

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

अभी तक आपके पास हमारी पाइपलाइन में केवल CsvExampleGen घटक है, इसलिए आपको इसके गहरे हरे (~ 1 मिनट) में बदलने के लिए प्रतीक्षा करने की आवश्यकता है।

सेटअप पूर्ण

चरण 3: अपने डेटा में गोता लगाएँ

किसी भी डेटा साइंस या एमएल प्रोजेक्ट में पहला काम डेटा को समझना और साफ करना होता है।

  • प्रत्येक सुविधा के लिए डेटा प्रकारों को समझें
  • विसंगतियों और लापता मूल्यों की तलाश करें
  • प्रत्येक सुविधा के वितरण को समझें

अवयव

डेटा घटकडेटा घटक

  • exampleGen इनपुट डेटासेट को अंतर्ग्रहण और विभाजित करता है।
  • स्टैटिस्टिक्सजेन डेटासेट के लिए आंकड़ों की गणना करता है।
  • SchemaGen SchemaGen आँकड़ों की जाँच करता है और एक डेटा स्कीमा बनाता है।
  • exampleValidator डेटासेट में विसंगतियों और अनुपलब्ध मानों की तलाश करता है।

एक संपादक में:

  • ~/airflow/dags में टैक्सी_पाइपलाइन.py . में Step 3 के रूप में चिह्नित लाइनों को taxi_pipeline.py
  • उस कोड की समीक्षा करने के लिए कुछ समय निकालें जिस पर आपने टिप्पणी नहीं की

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

  • ऊपरी बाएँ कोने में "DAGs" लिंक पर क्लिक करके एयरफ़्लो में DAGs सूची पृष्ठ पर वापस जाएँ
  • टैक्सी डीएजी के लिए दाईं ओर रिफ्रेश बटन पर क्लिक करें
    • आपको देखना चाहिए "DAG [टैक्सी] अब एक डेज़ी के रूप में ताज़ा है"
  • ट्रिगर टैक्सी
  • पाइपलाइन के पूरा होने की प्रतीक्षा करें
    • सभी गहरे हरे
    • दाईं ओर ताज़ा करें या पृष्ठ ताज़ा करें का उपयोग करें

डेटा में गोता लगाएँ

ज्यूपिटर पर वापस:

इससे पहले, आप jupyter notebook चलाते थे, जिसने ब्राउज़र टैब में Jupyter सत्र खोला था। अब अपने ब्राउज़र में उस टैब पर वापस आएं।

  • चरण 3.ipynb खोलें
  • नोटबुक का पालन करें

डेटा में गोता लगाएँ

अधिक उन्नत उदाहरण

यहां प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अधिक उन्नत उदाहरण के लिए TensorFlow Data Validation Colab देखें

किसी डेटासेट को एक्सप्लोर करने और सत्यापित करने के लिए TFDV का उपयोग करने के बारे में अधिक जानकारी के लिए, tensorflow.org पर उदाहरण देखें

चरण 4: फ़ीचर इंजीनियरिंग

आप अपने डेटा की भविष्य कहनेवाला गुणवत्ता बढ़ा सकते हैं और/या फीचर इंजीनियरिंग के साथ आयाम को कम कर सकते हैं।

  • फ़ीचर क्रॉस
  • शब्दसंग्रह
  • एम्बेडिंग
  • पीसीए
  • श्रेणीबद्ध एन्कोडिंग

TFX का उपयोग करने के लाभों में से एक यह है कि आप अपना परिवर्तन कोड एक बार लिखेंगे, और परिणामी परिवर्तन प्रशिक्षण और सेवा के बीच संगत होंगे।

अवयव

परिवर्तन

एक संपादक में:

  • ~/airflow/dags में टैक्सी_पाइपलाइन. taxi_pipeline.py और taxi_utils.py .py दोनों में Step 4 के रूप में चिह्नित लाइनों को अनकम्मेंट करें
  • उस कोड की समीक्षा करने के लिए कुछ समय निकालें जिस पर आपने टिप्पणी नहीं की

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

  • Airflow में DAGs सूची पृष्ठ पर वापस जाएँ
  • टैक्सी डीएजी के लिए दाईं ओर रिफ्रेश बटन पर क्लिक करें
    • आपको देखना चाहिए "DAG [टैक्सी] अब एक डेज़ी के रूप में ताज़ा है"
  • ट्रिगर टैक्सी
  • पाइपलाइन के पूरा होने की प्रतीक्षा करें
    • सभी गहरे हरे
    • दाईं ओर ताज़ा करें या पृष्ठ ताज़ा करें का उपयोग करें

फ़ीचर इंजीनियरिंग

ज्यूपिटर पर वापस:

अपने ब्राउज़र में जुपिटर टैब पर लौटें।

  • चरण4 खोलें।ipynb
  • नोटबुक का पालन करें

अधिक उन्नत उदाहरण

यहां प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अधिक उन्नत उदाहरण के लिए TensorFlow Transform Colab देखें।

चरण 5: प्रशिक्षण

अपने अच्छे, स्वच्छ, रूपांतरित डेटा के साथ एक TensorFlow मॉडल को प्रशिक्षित करें।

  • चरण 4 से परिवर्तन शामिल करें ताकि वे लगातार लागू हों
  • उत्पादन के लिए परिणामों को सहेजे गए मॉडल के रूप में सहेजें
  • TensorBoard का उपयोग करके प्रशिक्षण प्रक्रिया की कल्पना और अन्वेषण करें
  • मॉडल प्रदर्शन के विश्लेषण के लिए एक EvalSavedModel भी सहेजें

अवयव

एक संपादक में:

  • ~/airflow/dags में टैक्सी_पाइपलाइन. taxi_pipeline.py और taxi_utils.py .py दोनों में Step 5 के रूप में चिह्नित लाइनों को अनकम्मेंट करें
  • उस कोड की समीक्षा करने के लिए कुछ समय निकालें जिस पर आपने टिप्पणी नहीं की

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

  • Airflow में DAGs सूची पृष्ठ पर वापस जाएँ
  • टैक्सी डीएजी के लिए दाईं ओर रिफ्रेश बटन पर क्लिक करें
    • आपको देखना चाहिए "DAG [टैक्सी] अब एक डेज़ी के रूप में ताज़ा है"
  • ट्रिगर टैक्सी
  • पाइपलाइन के पूरा होने की प्रतीक्षा करें
    • सभी गहरे हरे
    • दाईं ओर ताज़ा करें या पृष्ठ ताज़ा करें का उपयोग करें

एक मॉडल का प्रशिक्षण

ज्यूपिटर पर वापस:

अपने ब्राउज़र में जुपिटर टैब पर लौटें।

  • चरण 5.ipynb खोलें
  • नोटबुक का पालन करें

एक मॉडल का प्रशिक्षण

अधिक उन्नत उदाहरण

यहां प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अधिक उन्नत उदाहरण के लिए TensorBoard Tutorial देखें।

चरण 6: मॉडल के प्रदर्शन का विश्लेषण

केवल शीर्ष स्तर के मेट्रिक्स से अधिक को समझना।

  • उपयोगकर्ता केवल अपने प्रश्नों के लिए मॉडल प्रदर्शन का अनुभव करते हैं
  • डेटा के स्लाइस पर खराब प्रदर्शन को शीर्ष स्तरीय मेट्रिक्स द्वारा छिपाया जा सकता है
  • मॉडल निष्पक्षता महत्वपूर्ण है
  • अक्सर उपयोगकर्ताओं या डेटा के प्रमुख उपसमुच्चय बहुत महत्वपूर्ण होते हैं, और छोटे हो सकते हैं
    • गंभीर लेकिन असामान्य परिस्थितियों में प्रदर्शन
    • प्रभावशाली दर्शकों जैसे प्रमुख दर्शकों के लिए प्रदर्शन
  • यदि आप किसी ऐसे मॉडल को बदल रहे हैं जो वर्तमान में उत्पादन में है, तो पहले सुनिश्चित करें कि नया मॉडल बेहतर है
  • मूल्यांकनकर्ता पुशर घटक को बताता है कि क्या मॉडल ठीक है

अवयव

  • मूल्यांकनकर्ता प्रशिक्षण परिणामों का गहन विश्लेषण करता है, और यह सुनिश्चित करता है कि मॉडल "काफी अच्छा" है जिसे उत्पादन में धकेला जा सकता है।

एक संपादक में:

  • ~/airflow/dags में टैक्सी_पाइपलाइन.py . दोनों में Step 6 के रूप में चिह्नित लाइनों को taxi_pipeline.py
  • उस कोड की समीक्षा करने के लिए कुछ समय निकालें जिस पर आपने टिप्पणी नहीं की

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

  • Airflow में DAGs सूची पृष्ठ पर वापस जाएँ
  • टैक्सी डीएजी के लिए दाईं ओर रिफ्रेश बटन पर क्लिक करें
    • आपको देखना चाहिए "DAG [टैक्सी] अब एक डेज़ी के रूप में ताज़ा है"
  • ट्रिगर टैक्सी
  • पाइपलाइन के पूरा होने की प्रतीक्षा करें
    • सभी गहरे हरे
    • दाईं ओर ताज़ा करें या पृष्ठ ताज़ा करें का उपयोग करें

मॉडल प्रदर्शन का विश्लेषण

ज्यूपिटर पर वापस:

अपने ब्राउज़र में जुपिटर टैब पर लौटें।

  • चरण 6 खोलें।आईपीएनबी
  • नोटबुक का पालन करें

मॉडल प्रदर्शन का विश्लेषण

अधिक उन्नत उदाहरण

यहां प्रस्तुत उदाहरण वास्तव में केवल आपको आरंभ करने के लिए है। अधिक उन्नत उदाहरण के लिए टीएफएमए शिकागो टैक्सी ट्यूटोरियल देखें।

चरण 7: उत्पादन के लिए तैयार

यदि नया मॉडल तैयार है, तो इसे बनाएं।

  • पुशर सहेजे गए मॉडल को प्रसिद्ध स्थानों पर तैनात करता है

परिनियोजन लक्ष्य प्रसिद्ध स्थानों से नए मॉडल प्राप्त करते हैं

  • टेंसरफ्लो सर्विंग
  • टेंसरफ्लो लाइट
  • टेंसरफ्लो जेएस
  • टेंसरफ्लो हब

अवयव

  • पुशर मॉडल को एक सेवारत बुनियादी ढांचे में तैनात करता है।

एक संपादक में:

  • ~/airflow/dags में दोनों taxi_pipeline.py .py . में Step 7 के रूप में चिह्नित लाइनों को अनकम्मेंट करें
  • उस कोड की समीक्षा करने के लिए कुछ समय निकालें जिस पर आपने टिप्पणी नहीं की

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

  • Airflow में DAGs सूची पृष्ठ पर वापस जाएँ
  • टैक्सी डीएजी के लिए दाईं ओर रिफ्रेश बटन पर क्लिक करें
    • आपको देखना चाहिए "DAG [टैक्सी] अब एक डेज़ी के रूप में ताज़ा है"
  • ट्रिगर टैक्सी
  • पाइपलाइन के पूरा होने की प्रतीक्षा करें
    • सभी गहरे हरे
    • दाईं ओर ताज़ा करें या पृष्ठ ताज़ा करें का उपयोग करें

उत्पादन के लिए तैयार

अगले कदम

आपने अब अपने मॉडल को प्रशिक्षित और मान्य किया है, और ~/airflow/saved_models/taxi SavedModel के तहत एक सहेजी गई मॉडल फ़ाइल निर्यात की है। आपका मॉडल अब उत्पादन के लिए तैयार है। अब आप अपने मॉडल को किसी भी TensorFlow परिनियोजन लक्ष्य पर परिनियोजित कर सकते हैं, जिसमें शामिल हैं:

  • TensorFlow सर्विंग , सर्वर या सर्वर फ़ार्म पर अपने मॉडल की सेवा और REST और/या gRPC अनुमान अनुरोधों को संसाधित करने के लिए।
  • TensorFlow Lite , आपके मॉडल को Android या iOS नेटिव मोबाइल एप्लिकेशन में, या रास्पबेरी पाई, IoT, या माइक्रोकंट्रोलर एप्लिकेशन में शामिल करने के लिए।
  • TensorFlow.js , आपके मॉडल को वेब ब्राउज़र या Node.JS एप्लिकेशन में चलाने के लिए।