انضم إلى TensorFlow في مؤتمر Google I / O ، 11-12 مايو سجل الآن

برنامج TFX Airflow

بايثونPyPI

مقدمة

تم تصميم هذا البرنامج التعليمي لتقديم TensorFlow Extended (TFX) ومساعدتك على تعلم إنشاء خطوط أنابيب التعلم الآلي الخاصة بك. يتم تشغيله محليًا ، ويُظهر التكامل مع TFX و TensorBoard بالإضافة إلى التفاعل مع TFX في أجهزة الكمبيوتر المحمولة Jupyter.

ستتبع عملية تطوير نموذجية لـ ML ، بدءًا من فحص مجموعة البيانات ، وينتهي بك الأمر بخط أنابيب عمل كامل. على طول الطريق سوف تستكشف طرق تصحيح الأخطاء وتحديث خط الأنابيب الخاص بك ، وقياس الأداء.

يتعلم أكثر

الرجاء مراجعة TFX دليل المستخدم لمعرفة المزيد.

خطوة بخطوة

ستنشئ تدريجيًا خط الأنابيب الخاص بك من خلال العمل خطوة بخطوة ، باتباع عملية تطوير نموذجية لـ ML. فيما يلي الخطوات:

  1. قم بإعداد بيئتك
  2. اعرض هيكل خط الأنابيب الأولي
  3. الغوص في بياناتك
  4. هندسة الميزات
  5. تمرين
  6. تحليل أداء النموذج
  7. جاهز للإنتاج

المتطلبات الأساسية

  • لينكس / ماك
  • Virtualenv
  • Python 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 وبوابة مثبتة مسبقا، يمكنك تثبيتها باستخدام البيرة مدير مجموعة:

/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

يتم تنظيم الكود حسب الخطوات التي تعمل عليها ، لذلك سيكون لديك لكل خطوة الرمز الذي تحتاجه وإرشادات حول ما يجب فعله به.

تتضمن ملفات البرنامج التعليمي كلاً من التمرين والحل للتمرين ، في حالة تعثرك.

ممارسه الرياضه

  • taxi_pipeline.py
  • taxi_utils.py
  • سيارة أجرة DAG

المحلول

  • taxi_pipeline_solution.py
  • taxi_utils_solution.py
  • taxi_solution DAG

ماذا تفعل

أنت تتعلم كيفية إنشاء خط أنابيب ML باستخدام TFX

  • تكون خطوط أنابيب TFX مناسبة عندما تنشر تطبيق ML للإنتاج
  • تكون خطوط أنابيب TFX مناسبة عندما تكون مجموعات البيانات كبيرة
  • تكون خطوط أنابيب TFX مناسبة عندما يكون تناسق التدريب / الخدمة أمرًا مهمًا
  • تكون خطوط أنابيب TFX مناسبة عندما تكون إدارة الإصدار للاستدلال أمرًا مهمًا
  • تستخدم Google خطوط أنابيب TFX لإنتاج ML

أنت تتبع عملية تطوير نموذجية ML

  • استيعاب بياناتنا وفهمها وتنظيفها
  • هندسة الميزات
  • تمرين
  • تحليل أداء النموذج
  • رغوة الصابون تكرار شطف
  • جاهز للإنتاج

إضافة رمز لكل خطوة

تم تصميم البرنامج التعليمي بحيث يتم تضمين جميع التعليمات البرمجية في الملفات ، ولكن يتم التعليق على جميع التعليمات البرمجية للخطوات من 3 إلى 7 وتمييزها بالتعليقات المضمنة. تحدد التعليقات المضمنة الخطوة التي ينطبق عليها سطر التعليمات البرمجية. على سبيل المثال، يتم وضع علامة رمز للخطوة 3 مع التعليق # Step 3 .

عادةً ما يقع الكود الذي ستضيفه لكل خطوة في 3 مناطق من الكود:

  • الواردات
  • تكوين DAG
  • تم إرجاع القائمة من استدعاء create_pipeline ()
  • الكود الداعم في taxi_utils.py

أثناء استعراض البرنامج التعليمي ، ستقوم بإلغاء التعليق على سطور التعليمات البرمجية التي تنطبق على خطوة البرنامج التعليمي التي تعمل عليها حاليًا. سيؤدي ذلك إلى إضافة رمز لتلك الخطوة ، وتحديث خط الأنابيب الخاص بك. كما كنت تفعل ذلك نحن نحثكم على مراجعة التعليمات البرمجية أنك uncommenting.

مجموعة بيانات تاكسي شيكاغو

سيارة اجرهتاكسي شيكاغو

كنت تستخدم سيارات الأجرة الرحلات بيانات الصادرة عن مدينة شيكاغو.

يمكنك قراءة المزيد عن مجموعة البيانات في جوجل الاستعلام الشامل . استكشاف البيانات الكاملة في UI الاستعلام الشامل .

هدف النموذج - التصنيف الثنائي

هل سيقدم العميل إكرامية أكثر أم أقل من 20٪؟

الخطوة 1: قم بإعداد بيئتك

البرنامج النصي الإعداد ( setup_demo.sh ) بتثبيت TFX و تدفق الهواء ، وتكوين تدفق الهواء بطريقة تجعل من السهل العمل مع لهذا البرنامج التعليمي.

في القشرة:

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. هذا هو المنفذ الافتراضي لتدفق الهواء، ولكن يمكنك تغييره إلى أي منفذ مستخدم آخر لا يتم استخدامه. على سبيل المثال ، لتشغيل Airflow على المنفذ 7070 ، يمكنك تشغيل:

airflow webserver -p 7070

أزرار عرض DAG

أزرار DAG

  • استخدم زر على اليسار لتمكين DAG
  • استخدم زر على اليمين لتحديث DAG عند إجراء تغييرات
  • استخدم زر على اليمين لتحريك DAG
  • انقر فوق سيارة الأجرة للذهاب إلى عرض الرسم البياني لـ DAG

زر تحديث الرسم البياني

تدفق الهواء CLI

يمكنك أيضا استخدام تدفق الهواء CLI لتمكين ويؤدي DAGs الخاص بك:

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

# trigger
airflow trigger_dag <your DAG name>

في انتظار اكتمال خط الأنابيب

بعد تشغيل خط الأنابيب الخاص بك في عرض DAGs ، يمكنك مشاهدة خط الأنابيب الخاص بك يكمل المعالجة. مع تشغيل كل مكون ، سيتغير لون المخطط التفصيلي للمكون في الرسم البياني DAG لإظهار حالته. عندما ينتهي أحد المكونات من معالجة المخطط التفصيلي سيتحول إلى اللون الأخضر الداكن لإظهار أنه قد تم الانتهاء منه.

حتى الآن لديك فقط مكون CsvExampleGen في خط الأنابيب الخاص بنا ، لذلك عليك الانتظار حتى يتحول إلى اللون الأخضر الداكن (حوالي 1 دقيقة).

الإعداد الكامل

الخطوة 3: الغوص في بياناتك

المهمة الأولى في أي علم بيانات أو مشروع ML هي فهم البيانات وتنظيفها.

  • فهم أنواع البيانات لكل معلم
  • ابحث عن القيم الشاذة والقيم المفقودة
  • افهم توزيعات كل ميزة

عناصر

مكونات البياناتمكونات البيانات

  • ExampleGen يبتلع ويقسم بيانات الإدخال.
  • StatisticsGen بحساب إحصاءات عن مجموعة البيانات.
  • SchemaGen SchemaGen يدرس الإحصاءات ويخلق مخطط البيانات.
  • ExampleValidator يبحث عن الشذوذ والقيم المفقودة في ورقة العمل.

في محرر:

  • في ~ / تدفق الهواء / dags غير تعليق خطوط ملحوظ Step 3 في taxi_pipeline.py
  • توقف لحظة لمراجعة الكود الذي لم تقم بتعليقه

في المستعرض:

  • ارجع إلى صفحة قائمة DAGs في Airflow من خلال النقر على رابط "DAGs" في الزاوية اليسرى العليا
  • انقر فوق زر التحديث على الجانب الأيمن لسيارة الأجرة DAG
    • يجب أن تشاهد "DAG [سيارة أجرة] أصبحت الآن طازجة مثل ديزي"
  • الزناد سيارة أجرة
  • انتظر حتى يكتمل خط الأنابيب
    • كل أخضر غامق
    • استخدم التحديث على الجانب الأيمن أو تحديث الصفحة

الغوص في البيانات

مرة أخرى على Jupyter:

وفي وقت سابق، قمت بتشغيل jupyter notebook ، الذي افتتح جلسة Jupyter في علامة تبويب المتصفح. عد الآن إلى علامة التبويب تلك في متصفحك.

  • افتح step3.ipynb
  • اتبع دفتر الملاحظات

الغوص في البيانات

مثال أكثر تقدمًا

إن الغرض من المثال المعروض هنا هو البدء فقط. للمثال أكثر تقدما رؤية TensorFlow بيانات التحقق من صحة Colab .

لمزيد من المعلومات حول استخدام TFDV لاستكشاف والتحقق من صحة بيانات، راجع الأمثلة على tensorflow.org .

الخطوة 4: هندسة الميزات

يمكنك زيادة الجودة التنبؤية لبياناتك و / أو تقليل الأبعاد باستخدام هندسة الميزات.

  • تقاطعات الميزة
  • المفردات
  • حفلات الزفاف
  • PCA
  • الترميز القاطع

تتمثل إحدى مزايا استخدام TFX في أنك ستكتب رمز التحويل الخاص بك مرة واحدة ، وستكون التحولات الناتجة متسقة بين التدريب والخدمة.

عناصر

تحول

  • تحويل ينفذ الهندسة الميزة على مجموعة البيانات.

في محرر:

  • في ~ / تدفق الهواء / dags غير تعليق خطوط ملحوظ Step 4 في كل من taxi_pipeline.py و taxi_utils.py
  • توقف لحظة لمراجعة الكود الذي لم تقم بتعليقه

في المستعرض:

  • ارجع إلى صفحة قائمة DAGs في Airflow
  • انقر فوق زر التحديث على الجانب الأيمن لسيارة الأجرة DAG
    • يجب أن تشاهد "DAG [سيارة أجرة] أصبحت الآن طازجة مثل ديزي"
  • الزناد سيارة أجرة
  • انتظر حتى يكتمل خط الأنابيب
    • كل أخضر غامق
    • استخدم التحديث على الجانب الأيمن أو تحديث الصفحة

هندسة الخصائص

مرة أخرى على Jupyter:

ارجع إلى علامة التبويب Jupyter في متصفحك.

  • افتح step4.ipynb
  • اتبع دفتر الملاحظات

مثال أكثر تقدمًا

إن الغرض من المثال المعروض هنا هو البدء فقط. للمثال أكثر تقدما رؤية TensorFlow تحويل Colab .

الخطوة 5: التدريب

قم بتدريب نموذج TensorFlow باستخدام بياناتك المحولة والنظيفة والرائعة.

  • قم بتضمين التحويلات من الخطوة 4 حتى يتم تطبيقها بشكل متسق
  • حفظ النتائج كنموذج SavedModel للإنتاج
  • تصور واستكشف عملية التدريب باستخدام TensorBoard
  • احفظ أيضًا نموذج EvalSavedModel لتحليل أداء النموذج

عناصر

في محرر:

  • في ~ / تدفق الهواء / dags غير تعليق خطوط ملحوظ Step 5 في كل taxi_pipeline.py و taxi_utils.py
  • توقف لحظة لمراجعة الكود الذي لم تقم بتعليقه

في المستعرض:

  • ارجع إلى صفحة قائمة DAGs في Airflow
  • انقر فوق زر التحديث على الجانب الأيمن لسيارة الأجرة DAG
    • يجب أن تشاهد "DAG [سيارة أجرة] أصبحت الآن طازجة مثل ديزي"
  • الزناد سيارة أجرة
  • انتظر حتى يكتمل خط الأنابيب
    • كل أخضر غامق
    • استخدم التحديث على الجانب الأيمن أو تحديث الصفحة

تدريب نموذج

مرة أخرى على Jupyter:

ارجع إلى علامة التبويب Jupyter في متصفحك.

  • افتح step5.ipynb
  • اتبع دفتر الملاحظات

تدريب نموذج

مثال أكثر تقدمًا

إن الغرض من المثال المعروض هنا هو البدء فقط. للمثال أكثر تقدما رؤية TensorBoard التعليمي .

الخطوة السادسة: تحليل أداء النموذج

فهم أكثر من مجرد مقاييس المستوى الأعلى.

  • يختبر المستخدمون أداء نموذجي لاستفساراتهم فقط
  • يمكن إخفاء الأداء الضعيف لشرائح البيانات بواسطة مقاييس المستوى الأعلى
  • نموذج العدل مهم
  • غالبًا ما تكون المجموعات الفرعية الرئيسية للمستخدمين أو البيانات مهمة جدًا ، وقد تكون صغيرة
    • الأداء في الظروف الحرجة ولكن غير العادية
    • الأداء للجماهير الرئيسية مثل المؤثرين
  • إذا كنت تستبدل نموذجًا قيد الإنتاج حاليًا ، فتأكد أولاً من أن النموذج الجديد أفضل
  • المقيِّم يخبر مكون Pusher إذا كان النموذج على ما يرام

عناصر

  • مقيم ينفذ تحليل عميق للنتائج التدريب، ويضمن أن هذا النموذج هو "جيدة بما فيه الكفاية" لتكون دفعت للإنتاج.

في محرر:

  • في ~ / تدفق الهواء / dags غير تعليق خطوط ملحوظ Step 6 في كل taxi_pipeline.py
  • توقف لحظة لمراجعة الكود الذي لم تقم بتعليقه

في المستعرض:

  • ارجع إلى صفحة قائمة DAGs في Airflow
  • انقر فوق زر التحديث على الجانب الأيمن لسيارة الأجرة DAG
    • يجب أن تشاهد "DAG [سيارة أجرة] أصبحت الآن طازجة مثل ديزي"
  • الزناد سيارة أجرة
  • انتظر حتى يكتمل خط الأنابيب
    • كل أخضر غامق
    • استخدم التحديث على الجانب الأيمن أو تحديث الصفحة

تحليل أداء النموذج

مرة أخرى على Jupyter:

ارجع إلى علامة التبويب Jupyter في متصفحك.

  • افتح step6.ipynb
  • اتبع دفتر الملاحظات

تحليل أداء النموذج

مثال أكثر تقدمًا

إن الغرض من المثال المعروض هنا هو البدء فقط. للمثال أكثر تقدما رؤية TFMA شيكاغو تاكسي دروس .

الخطوة 7: جاهز للإنتاج

إذا كان النموذج الجديد جاهزًا ، فاجعله كذلك.

  • ينشر Pusher SavedModels في المواقع المعروفة

أهداف النشر تتلقى نماذج جديدة من مواقع معروفة

  • خدمة TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

عناصر

في محرر:

  • في ~ / تدفق الهواء / dags غير تعليق خطوط ملحوظ Step 7 في كل من taxi_pipeline.py
  • توقف لحظة لمراجعة الكود الذي لم تقم بتعليقه

في المستعرض:

  • ارجع إلى صفحة قائمة DAGs في Airflow
  • انقر فوق زر التحديث على الجانب الأيمن لسيارة الأجرة DAG
    • يجب أن تشاهد "DAG [سيارة أجرة] أصبحت الآن طازجة مثل ديزي"
  • الزناد سيارة أجرة
  • انتظر حتى يكتمل خط الأنابيب
    • كل أخضر غامق
    • استخدم التحديث على الجانب الأيمن أو تحديث الصفحة

جاهز للإنتاج

الخطوات التالية

لقد تدرب الآن والتحقق من صحة النموذج الخاص بك، وتصدير SavedModel الملف تحت ~/airflow/saved_models/taxi الدليل. نموذجك جاهز الآن للإنتاج. يمكنك الآن نشر النموذج الخاص بك على أي من أهداف نشر TensorFlow ، بما في ذلك:

  • TensorFlow خدمة ، لخدمة النموذج الخاص بك في الخادم أو الخادم الزراعية وتجهيز REST و / أو طلبات الاستدلال gRPC.
  • TensorFlow لايت ، لإدراج النموذج الخاص بك في تطبيق نظام Android أو iOS المحمول الأصلي، أو في بي توت العليق، تقنيات عمليات، أو تطبيق متحكم.
  • TensorFlow.js ، لتشغيل النموذج الخاص بك في متصفح ويب أو تطبيق نود.جي إس.