برنامج TFX Airflow

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

ملخص

ملخص

تم تصميم هذا البرنامج التعليمي لمساعدتك على تعلم كيفية إنشاء خطوط أنابيب التعلم الآلي الخاصة بك باستخدام TensorFlow Extended (TFX) و Apache Airflow كمنسق. يتم تشغيله على Vertex AI Workbench ، ويظهر التكامل مع TFX و TensorBoard بالإضافة إلى التفاعل مع TFX في بيئة Jupyter Lab.

ماذا ستفعل؟

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

  • خط أنابيب TFX هو رسم بياني دوري موجه ، أو "DAG". غالبًا ما نشير إلى خطوط الأنابيب باسم DAGs.
  • تكون خطوط أنابيب TFX مناسبة عندما تنشر تطبيق ML للإنتاج
  • تكون خطوط أنابيب TFX مناسبة عندما تكون مجموعات البيانات كبيرة أو قد تنمو لتصبح كبيرة
  • تكون خطوط أنابيب TFX مناسبة عندما يكون تناسق التدريب / الخدمة أمرًا مهمًا
  • تكون خطوط أنابيب TFX مناسبة عندما تكون إدارة الإصدار للاستدلال أمرًا مهمًا
  • تستخدم Google خطوط أنابيب TFX لإنتاج ML

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

ستتبع عملية تطوير نموذجية لـ ML:

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

تدفق الهواء أباتشي لتنسيق خطوط الأنابيب

منسقو TFX مسؤولون عن جدولة مكونات خط أنابيب TFX بناءً على التبعيات التي يحددها خط الأنابيب. تم تصميم TFX ليكون محمولاً إلى بيئات متعددة وأطر عمل تنسيق. يعد Apache Airflow أحد المنظمين الافتراضيين المدعومين من TFX. يوضح هذا المعمل استخدام Apache Airflow من أجل تنسيق خطوط أنابيب TFX. Apache Airflow هو نظام أساسي لتأليف وجدولة ومراقبة سير العمل برمجيًا. يستخدم TFX تدفق الهواء لتأليف مهام سير العمل كرسوم بيانية حلقية موجّهة (DAGs) للمهام. تسهل واجهة المستخدم الثرية تصور خطوط الأنابيب قيد الإنتاج ومراقبة التقدم واستكشاف المشكلات وإصلاحها عند الحاجة. يتم تعريف تدفقات عمل Apache Airflow على أنها رمز. وهذا يجعلها أكثر قابلية للصيانة ، وقابلة للإصدار ، وقابلة للاختبار ، وتعاونية. يناسب Apache Airflow خطوط أنابيب معالجة الدُفعات. إنه خفيف الوزن وسهل التعلم.

في هذا المثال ، سنقوم بتشغيل خط أنابيب TFX على مثيل عن طريق إعداد Airflow يدويًا.

المنظمان الافتراضيان الآخران المدعومان بواسطة TFX هما Apache Beam و Kubeflow. يمكن تشغيل Apache Beam على العديد من الخلفيات الخلفية لمعالجة البيانات (Beam Ruunners). Cloud Dataflow هو أحد عداء الحزمة الذي يمكن استخدامه لتشغيل خطوط أنابيب TFX. يمكن استخدام Apache Beam لكل من خطوط أنابيب التدفق والمعالجة الدفعية.
Kubeflow عبارة عن نظام أساسي مفتوح المصدر لتعلم الآلة ومخصص لجعل عمليات نشر سير عمل التعلم الآلي (ML) على Kubernetes بسيطة ومحمولة وقابلة للتطوير. يمكن استخدام Kubeflow كمنسق لخطوط أنابيب TFFX عندما يلزم نشرها على مجموعات Kubernetes. بالإضافة إلى ذلك ، يمكنك أيضًا استخدام المنسق المخصص الخاص بك لتشغيل خط أنابيب TFX.

اقرأ المزيد عن تدفق الهواء هنا .

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

taxi.jpg

chicago.png

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

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

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

قم بإعداد مشروع Google Cloud

قبل النقر فوق الزر "بدء المعمل" ، اقرأ هذه الإرشادات. الميزات الاختبارية موقوتة ولا يمكنك إيقافها مؤقتًا. يُظهر المؤقت ، الذي يبدأ عند النقر فوق Start Lab ، المدة التي ستتاح فيها موارد Google Cloud لك.

يتيح لك هذا المعمل العملي القيام بالأنشطة المعملية بنفسك في بيئة سحابية حقيقية ، وليس في بيئة محاكاة أو عرض. يقوم بذلك عن طريق منحك بيانات اعتماد جديدة ومؤقتة تستخدمها لتسجيل الدخول والوصول إلى Google Cloud طوال مدة المعمل.

ما تحتاجه لإكمال هذا المعمل ، أنت بحاجة إلى:

  • الوصول إلى متصفح الإنترنت القياسي (يوصى بمتصفح Chrome).
  • حان الوقت لإكمال المختبر.

كيفية بدء المعمل الخاص بك وتسجيل الدخول إلى Google Cloud Console 1. انقر فوق الزر Start Lab . إذا كنت بحاجة إلى الدفع للمختبر ، فسيتم فتح نافذة منبثقة لتحديد طريقة الدفع الخاصة بك. توجد لوحة على اليسار مملوءة ببيانات الاعتماد المؤقتة التي يجب عليك استخدامها لهذا التمرين المعملي.

qwiksetup1.png

  1. انسخ اسم المستخدم ، ثم انقر فوق فتح وحدة تحكم Google . يقوم المعمل بتدوير الموارد ، ثم يفتح علامة تبويب أخرى تعرض صفحة تسجيل الدخول .

qwiksetup2.png

نصيحة: افتح علامات التبويب في نوافذ منفصلة جنبًا إلى جنب.

qwiksetup3.png

  1. في صفحة تسجيل الدخول ، الصق اسم المستخدم الذي نسخته من اللوحة اليمنى. ثم انسخ والصق كلمة المرور.
  1. انقر من خلال الصفحات التالية:
  2. اقبل الشروط والأحكام.
  • لا تضف خيارات الاسترداد أو المصادقة الثنائية (لأن هذا حساب مؤقت).

  • لا تقم بالتسجيل في الإصدارات التجريبية المجانية.

بعد لحظات قليلة ، يتم فتح Cloud Console في علامة التبويب هذه.

qwiksetup4.png

قم بتنشيط Cloud Shell

Cloud Shell عبارة عن آلة افتراضية محملة بأدوات التطوير. يوفر دليلًا ثابتًا رئيسيًا بسعة 5 جيجابايت ويعمل على Google Cloud. يوفر Cloud Shell وصولاً عبر سطر الأوامر إلى موارد Google Cloud.

في Cloud Console ، في شريط الأدوات الأيمن العلوي ، انقر على زر تنشيط Cloud Shell .

qwiksetup5.png

انقر فوق متابعة .

qwiksetup6.png

يستغرق توفير البيئة والاتصال بها بضع لحظات. عندما تكون متصلاً ، تكون قد تمت مصادقتك بالفعل ، ويتم تعيين المشروع على معرف _PROJECT الخاص بك. فمثلا:

qwiksetup7.png

gcloud هي أداة سطر الأوامر لـ Google Cloud. يأتي مثبتًا مسبقًا على Cloud Shell ويدعم إكمال علامات التبويب.

يمكنك سرد اسم الحساب النشط باستخدام هذا الأمر:

gcloud auth list

(انتاج)

نشط: * الحساب: student-01-xxxxxxxxxxxx@qwiklabs.net لتعيين الحساب النشط ، قم بتشغيل: $ gcloud config set account ACCOUNT

يمكنك إدراج معرّف المشروع باستخدام هذا الأمر: gcloud config list project (Output)

[الأساسية] المشروع =

(مثال الإخراج)

المشروع [الأساسي] = qwiklabs-gcp-44776a13dea667a6

للحصول على التوثيق الكامل لـ gcloud ، راجع نظرة عامة على أداة سطر أوامر gcloud .

قم بتمكين خدمات Google Cloud

  1. في Cloud Shell ، استخدم gcloud لتمكين الخدمات المستخدمة في المعمل. gcloud services enable notebooks.googleapis.com

نشر مثيل Vertex Notebook

  1. انقر فوق قائمة التنقل وانتقل إلى Vertex AI ، ثم إلى Workbench .

vertex-ai-workbench.png

  1. في صفحة مثيلات دفتر الملاحظات ، انقر فوق دفتر ملاحظات جديد .

  2. في قائمة تخصيص المثيل ، حدد TensorFlow Enterprise واختر إصدار TensorFlow Enterprise 2.x (مع LTS) > بدون وحدات معالجة الرسومات .

قمة دفتر-إنشاء 2.png

  1. في مربع حوار مثيل دفتر ملاحظات جديد ، انقر فوق رمز القلم الرصاص لتحرير خصائص المثيل.

  2. بالنسبة إلى اسم المثيل ، أدخل اسمًا للمثيل الخاص بك.

  3. بالنسبة للمنطقة ، حدد us-east1 ، حدد منطقة داخل المنطقة المحددة.

  4. قم بالتمرير لأسفل إلى تكوين الجهاز وحدد e2-standard-2 لنوع الجهاز.

  5. اترك الحقول المتبقية مع الإعدادات الافتراضية الخاصة بها وانقر فوق إنشاء .

بعد بضع دقائق ، ستعرض وحدة التحكم Vertex AI اسم المثيل الخاص بك ، متبوعًا بـ Open Jupyterlab .

  1. انقر فوق Open JupyterLab . سيتم فتح نافذة JupyterLab في علامة تبويب جديدة.

جهز البيئة

استنساخ مستودع المختبر

بعد ذلك ، ستقوم باستنساخ مستودع tfx في مثيل JupyterLab الخاص بك. 1. في JupyterLab ، انقر فوق أيقونة Terminal لفتح محطة طرفية جديدة.

ملاحظة: إذا طُلب منك ذلك ، فانقر فوق Cancel من أجل إنشاء مستحسن.

  1. لاستنساخ مستودع tfx Github ، اكتب الأمر التالي ، واضغط على Enter .
git clone https://github.com/tensorflow/tfx.git
  1. لتأكيد أنك قمت بنسخ المستودع ، انقر نقرًا مزدوجًا فوق دليل tfx وتأكد من أنه يمكنك رؤية محتوياته.

repo-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/ folder إلى ~/airflow/ folder.
  • انسخ ملف 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 في الأعلى

firewall-rule.png

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

  1. للاسم ، ضع airflow-tfx .
  2. للأولوية ، حدد 1 .
  3. بالنسبة للأهداف ، حدد All instances in the network .
  4. بالنسبة لنطاقات Source IPv4 ، حدد 0.0.0.0/0
  5. بالنسبة للبروتوكولات والمنافذ ، انقر فوق tcp وأدخل 7000 في المربع بجوار tcp
  6. انقر فوق Create .

إنشاء جدار الحماية-الحوار. png

قم بتشغيل خادم تدفق الهواء من قوقعتك

في نافذة Jupyter Lab Terminal ، قم بالتغيير إلى الدليل الرئيسي ، وقم بتشغيل الأمر airflow Users airflow users create لإنشاء مستخدم إداري لـ Airflow:

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 &

احصل على عنوان IP الخارجي الخاص بك

  1. في Cloud Shell ، استخدم gcloud للحصول على IP الخارجي.
gcloud compute instances list

gcloud-example-ip.png

تشغيل DAG / Pipeline

في المتصفح

افتح متصفحًا وانتقل إلى http: // : 7000

  • في صفحة تسجيل الدخول ، أدخل اسم المستخدم ( admin ) وكلمة المرور ( admin ) اللذين اخترتهما عند تشغيل أمر airflow users create .

airflow-login.png

يقوم تدفق الهواء بتحميل DAGs من ملفات مصدر Python. يأخذ كل ملف وينفذه. ثم يقوم بتحميل أي كائنات DAG من هذا الملف. سيتم سرد جميع ملفات .py التي تحدد كائنات DAG كخطوط أنابيب في الصفحة الرئيسية لتدفق الهواء.

في هذا البرنامج التعليمي ، يقوم Airflow بمسح ~/airflow/dags/ المجلد بحثًا عن كائنات DAG.

إذا قمت بفتح ~/airflow/dags/taxi_pipeline.py وقم بالتمرير إلى الأسفل ، يمكنك أن ترى أنه يقوم بإنشاء وتخزين كائن DAG في متغير يسمى DAG . ومن ثم سيتم إدراجه كخط أنابيب في الصفحة الرئيسية لتدفق الهواء كما هو موضح أدناه:

dag-home-full.png

إذا نقرت على سيارة أجرة ، فسيتم إعادة توجيهك إلى عرض الشبكة لـ DAG. يمكنك النقر فوق خيار Graph في الأعلى للحصول على عرض الرسم البياني لـ DAG.

airflow-dag-graph.png

قم بتشغيل خط أنابيب سيارات الأجرة

في الصفحة الرئيسية ، يمكنك رؤية الأزرار التي يمكن استخدامها للتفاعل مع DAG.

أزرار dag.png

تحت عنوان الإجراءات ، انقر فوق زر التشغيل لتشغيل خط الأنابيب.

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

dag-button-Refresh.png

يمكنك أيضًا استخدام Airflow CLI في الجهاز لتمكين وتشغيل DAGs:

# 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.png

  3. تابع المعمل في دفتر الملاحظات ، وقم بتشغيل كل خلية بالنقر فوق الزر تشغيل ( run-button.png ) في الجزء العلوي من الشاشة. بدلاً من ذلك ، يمكنك تنفيذ التعليمات البرمجية في خلية باستخدام SHIFT + ENTER .

اقرأ السرد وتأكد من فهمك لما يحدث في كل خلية.