دروس تدفق الهواء TFX

ملخص

ملخص

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

ماذا ستفعل؟

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

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

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

ستتبع عملية تطوير تعلم الآلة النموذجية:

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

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

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

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

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

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

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

Taxi.jpg

Chicago.png

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

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

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

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

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

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

ما تحتاجه لإكمال هذا التمرين المعملي، تحتاج إلى:

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

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

qwiksetup1.png

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

qwiksetup2.png

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

qwiksetup3.png

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

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

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

qwiksetup4.png

تفعيل كلاود شل

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

في Cloud Console، في شريط الأدوات العلوي الأيمن، انقر فوق الزر Activate 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 .

تمكين خدمات جوجل السحابية

  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) > بدون وحدات معالجة الرسومات .

vertex-notebook-create-2.png

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

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

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

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

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

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

  1. انقر فوق فتح 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/ إلى المجلد ~/airflow/ .
  • انسخ ملف CSV من tfx/tfx/examples/airflow_workshop/taxi/setup/data إلى ~/airflow/data .

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

create-firewall-dialog.png

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

في نافذة Jupyter Lab Terminal، قم بالتغيير إلى الدليل الرئيسي، وقم بتشغيل أمر 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-instance-ip.png

تشغيل DAG/خط الأنابيب

في المتصفح

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

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

airflow-login.png

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

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

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

dag-home-full.png

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

تدفق الهواء-dag-graph.png

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

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

dag-buttons.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. افتح Notebook.ipynb. دفتر ipynb.png

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

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