מדריך זרימת אוויר של TFX

סקירה כללית

סקירה כללית

הדרכה זו נועדה לעזור לך ללמוד ליצור צינורות למידת מכונה משלך באמצעות TensorFlow Extended (TFX) ו- Apache Airflow כמתזמר. הוא פועל על Vertex AI Workbench, ומציג אינטגרציה עם TFX ו-TensorBoard וכן אינטראקציה עם TFX בסביבת Jupyter Lab.

מה אתה תעשה?

תלמד כיצד ליצור צינור ML באמצעות TFX

  • צינור TFX הוא גרף אציקלי מכוון, או "DAG". לעתים קרובות נתייחס לצינורות כאל DAGs.
  • צינורות TFX מתאימים כאשר אתה מתכוון לפרוס יישום ML של ייצור
  • צינורות TFX מתאימים כאשר מערכי נתונים גדולים, או עשויים לגדול להיות גדולים
  • צינורות TFX מתאימים כאשר יש חשיבות לעקביות אימון/הגשה
  • צינורות TFX מתאימים כאשר ניהול גרסאות להסקה חשוב
  • גוגל משתמשת בצינורות TFX לייצור ML

אנא עיין במדריך למשתמש של TFX למידע נוסף.

אתה תעקוב אחר תהליך פיתוח ML טיפוסי:

  • בליעה, הבנה וניקוי הנתונים שלנו
  • הנדסת תכונות
  • הַדְרָכָה
  • ניתוח ביצועי המודל
  • להקציף, לשטוף, לחזור
  • מוכן לייצור

Apache Airflow עבור תזמור צינור

מתזמני 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 הוא רץ beam כזה שיכול לשמש להפעלת צינורות TFX. ניתן להשתמש ב- Apache Beam הן לזרימה והן לצינורות עיבוד אצווה.
Kubeflow היא פלטפורמת ML בקוד פתוח המוקדשת להפיכת פריסות של תהליכי עבודה של למידת מכונה (ML) ב-Kubernetes פשוטה, ניידת וניתנת להרחבה. ניתן להשתמש ב-Kubeflow כמתזמר עבור צינורות TFFX כאשר יש צורך לפרוס אותם באשכולות Kubernetes. בנוסף, אתה יכול גם להשתמש בתזמור מותאם אישית משלך כדי להפעיל צינור TFX.

קרא עוד על זרימת אוויר כאן .

ערכת נתונים של שיקגו מוניות

taxi.jpg

chicago.png

אתה תשתמש במערך הנתונים של Taxi Trips שפורסם על ידי עיריית שיקגו.

יעד מודל - סיווג בינארי

האם הלקוח טיפ יותר או פחות מ-20%?

הגדר את Google Cloud Project

לפני שתלחץ על כפתור התחל מעבדה קרא הוראות אלה. מעבדות מתוזמנות ואי אפשר להשהות אותן. הטיימר, שמתחיל כשאתה לוחץ על התחל מעבדה , מראה כמה זמן משאבי Google Cloud יהיו זמינים עבורך.

מעבדה מעשית זו מאפשרת לך לבצע את פעילויות המעבדה בעצמך בסביבת ענן אמיתית, לא בסביבת סימולציה או הדגמה. זה עושה זאת על ידי מתן אישורים חדשים וזמניים שבהם אתה משתמש כדי להיכנס ולגשת ל-Google Cloud למשך כל המעבדה.

מה אתה צריך כדי להשלים את המעבדה הזו, אתה צריך:

  • גישה לדפדפן אינטרנט רגיל (דפדפן כרום מומלץ).
  • הגיע הזמן להשלים את המעבדה.

כיצד להפעיל את המעבדה ולהיכנס ל-Google Cloud Console 1. לחץ על הלחצן התחל מעבדה . אם אתה צריך לשלם עבור המעבדה, נפתח חלון קופץ שבו תוכל לבחור את אמצעי התשלום שלך. בצד שמאל יש פאנל המאוכלס באישורים הזמניים שבהם עליך להשתמש עבור מעבדה זו.

qwiksetup1.png

  1. העתק את שם המשתמש ולאחר מכן לחץ על פתח את Google Console . המעבדה מעלה משאבים, ואז פותחת כרטיסייה נוספת המציגה את דף הכניסה .

qwiksetup2.png

טיפ: פתח את הכרטיסיות בחלונות נפרדים, זה לצד זה.

qwiksetup3.png

  1. בדף כניסה , הדבק את שם המשתמש שהעתקת מהחלונית השמאלית. לאחר מכן העתק והדבק את הסיסמה.
  1. לחץ על הדפים הבאים:
  2. קבל את התנאים וההגבלות.
  • אל תוסיף אפשרויות שחזור או אימות דו-גורמי (מכיוון שזהו חשבון זמני).

  • אל תירשם לנסיונות חינם.

לאחר מספר רגעים, מסוף הענן נפתח בכרטיסייה זו.

qwiksetup4.png

הפעל את ה-Cloud Shell

Cloud Shell היא מכונה וירטואלית שעמוסה בכלי פיתוח. הוא מציע ספריית בית קבועה של 5GB ופועל על Google Cloud. Cloud Shell מספקת גישה בשורת הפקודה למשאבי Google Cloud שלך.

ב-Cloud Console, בסרגל הכלים הימני העליון, לחץ על הלחצן הפעל מעטפת ענן .

qwiksetup5.png

לחץ על המשך .

qwiksetup6.png

זה לוקח כמה רגעים כדי לספק ולהתחבר לסביבה. כאשר אתה מחובר, אתה כבר מאומת, והפרויקט מוגדר ל-_PROJECT ID שלך. לדוגמה:

qwiksetup7.png

gcloud הוא כלי שורת הפקודה עבור Google Cloud. זה מגיע מותקן מראש ב-Cloud Shell ותומך בהשלמת כרטיסיות.

אתה יכול לרשום את שם החשבון הפעיל בפקודה זו:

gcloud auth list

(תְפוּקָה)

פעיל: * חשבון: student-01-xxxxxxxxxxxx@qwiklabs.net כדי להגדיר את החשבון הפעיל, הפעל: $ gcloud config הגדר חשבון ACCOUNT

אתה יכול לרשום את מזהה הפרויקט בפקודה זו: gcloud config list project (פלט)

פרויקט [הליבה] =

(פלט לדוגמה)

פרויקט [core] = 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) > ללא GPUs .

vertex-notebook-create-2.png

  1. בתיבת הדו-שיח של מופע מחברת חדשה , לחץ על סמל העיפרון כדי לערוך מאפייני מופע.

  2. עבור שם מופע , הזן שם עבור המופע שלך.

  3. עבור אזור , בחר us-east1 ועבור אזור , בחר אזור בתוך האזור שנבחר.

  4. גלול מטה אל תצורת מכונה ובחר e2-standard-2 עבור סוג מכונה.

  5. השאר את השדות הנותרים עם ברירת המחדל שלהם ולחץ על צור .

לאחר מספר דקות, מסוף ה-Vertex AI יציג את שם המופע שלך, ואחריו פתח את Jupyterlab .

  1. לחץ על פתח את JupyterLab . חלון JupyterLab ייפתח בלשונית חדשה.

הגדר את הסביבה

שכפל את מאגר המעבדה

לאחר מכן תשבט את מאגר tfx במופע JupyterLab שלך. 1. ב-JupyterLab, לחץ על סמל המסוף כדי לפתוח מסוף חדש.

הערה: אם תתבקש, לחץ על Cancel עבור Build מומלץ.

  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 .

airflow-home.png

הגדרת שרת Airflow

צור כלל חומת אש כדי לגשת לשרת זרימת אוויר בדפדפן

  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. עבור טווחי מקור IPv4 , בחר 0.0.0.0/0
  5. עבור פרוטוקולים ויציאות , לחץ על tcp והזן 7000 בתיבה שליד tcp
  6. לחץ על Create .

create-firewall-dialog.png

הפעל את שרת זרימת האוויר מהמעטפת שלך

בחלון 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/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-buttons.png

מתחת לכותרת הפעולות , לחץ על כפתור ההדק כדי להפעיל את הצינור.

בדף המונית DAG , השתמש בלחצן בצד ימין כדי לרענן את מצב תצוגת הגרף של DAG בזמן שהצינור פועל. בנוסף, אתה יכול לאפשר רענון אוטומטי כדי להורות לזרימת אוויר לרענן אוטומטית את תצוגת הגרף כאשר וכאשר המצב משתנה.

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. notebook-ipynb.png

  3. המשך במעבדה במחברת, והפעל כל תא על ידי לחיצה על ההפעלה ( run-button.png ) סמל בחלק העליון של המסך. לחלופין, אתה יכול להפעיל את הקוד בתא עם SHIFT + ENTER .

קרא את הנרטיב וודא שאתה מבין מה קורה בכל תא.