SIG TFX-Addons समुदाय में शामिल हों और TFX को और बेहतर बनाने में मदद करें!

TFX एयरफ्लो ट्यूटोरियल

अजगर PyPI

परिचय

यह ट्यूटोरियल 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

यदि आप Python 3.6 चला रहे हैं तो आपको python3.6-dev स्थापित करना चाहिए:

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
है

MacOS पर्यावरण

यदि आपके पास पायथन 3 नहीं है और पहले से ही स्थापित है, तो आप उन्हें 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 में कभी-कभी एयरफ्लो चलाने के दौरान थ्रेडिंग के लिए समस्याएँ होती हैं, जो कॉन्फ़िगरेशन पर निर्भर करता है। उन समस्याओं से बचने के लिए आपको अपनी ~/.bash_profile को संपादित करना चाहिए और फ़ाइल के अंत में निम्नलिखित पंक्ति जोड़ना चाहिए:

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

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

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

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

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

व्यायाम

  • taxi_pipeline.py
  • Taxi_utils.py
  • टैक्सी डीएजी

समाधान

  • Taxi_pipeline_solution.py
  • Taxi_utils_solution.py
  • Taxi_solution डीएजी

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

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

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

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

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

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

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

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

  • आयात
  • DAG कॉन्फ़िगरेशन
  • सूची 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

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

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

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

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

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

airflow webserver -p 7070

DAG देखें बटन

DAG बटन

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

ग्राफ रिफ्रेश बटन

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

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

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

# trigger
airflow trigger_dag <your DAG name>
है

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

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

अब तक आपके पास हमारी पाइपलाइन में केवल CsvExampleGen घटक है, इसलिए आपको गहरे हरे (~ 1 मिनट) को चालू करने के लिए इंतजार करना होगा।

सेटअप पूरा करें

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

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

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

अवयव

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

  • ExampleGen इनपुट डेटासेट्स को इनग्रेट और विभाजित करता है।
  • StatisticsGen डाटासेट के लिए आँकड़े गणना करता है।
  • स्कीमाजेन स्कीमासेन आँकड़ों की जाँच करता है और एक डेटा स्कीमा बनाता है।
  • ExampleValidator डेटासेट में विसंगतियों और लापता मूल्यों के लिए देखता है।

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

  • ~ / Airflow / dags में लाइनों Step 3 को taxi_pipeline.py में चिह्नित लाइनों को taxi_pipeline.py
  • उस कोड की समीक्षा करने के लिए कुछ क्षण लें जिसे आपने अनफॉलो किया था

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

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

डेटा में गोता

जयुपर पर वापस:

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

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

डेटा में गोता

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

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

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

चरण 4: सुविधा इंजीनियरिंग

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

  • सुविधा पार
  • शब्दसंग्रह
  • एंबेडिंग
  • पीसीए
  • श्रेणीबद्ध एन्कोडिंग

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

अवयव

परिवर्तन

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

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

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

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

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

जयुपर पर वापस:

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

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

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

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

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

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

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

अवयव

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

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

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

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

एक मॉडल को प्रशिक्षित करना

जयुपर पर वापस:

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

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

एक मॉडल को प्रशिक्षित करना

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

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

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

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

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

अवयव

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

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

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

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

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

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

जयुपर पर वापस:

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

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

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

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

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

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

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

  • Pusher SavedModels को प्रसिद्ध स्थानों तक पहुँचाता है

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

  • TensorFlow सर्व करना
  • TensorFlow Lite
  • TensorFlow जेएस
  • टेंसोरफ्लो हब

अवयव

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

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

  • ~ / Airflow / dags में लाइनों को Step 7 taxi_pipeline.py दोनों taxi_pipeline.py
  • उस कोड की समीक्षा करने के लिए कुछ क्षण लें जिसे आपने अनफॉलो किया था

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

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

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

अगला कदम

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

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