הצטרף לקהילת SIG TFX-Addons ועזור לשפר את TFX!
דף זה תורגם על ידי Cloud Translation API.
Switch to English

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

פִּיתוֹן PyPI

מבוא

מדריך זה נועד להציג את TensorFlow Extended (TFX) ולעזור לך ללמוד ליצור צינורות למידת מכונה משלך. הוא פועל באופן מקומי ומציג אינטגרציה עם TFX ו- TensorBoard וכן אינטראקציה עם TFX במחברות Jupyter.

תוכלו לעקוב אחר תהליך פיתוח טיפוסי של ML, החל מבדיקת מערך הנתונים, ובסופו של דבר יהיה צינור עבודה מלא. בדרך תחקור דרכים לניפוי באגים ולעדכן את הצינור שלך ולמדוד ביצועים.

למד עוד

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

צעד אחר צעד

תיצור את הצינור שלך בהדרגה על ידי עבודה שלב אחר שלב, בעקבות תהליך פיתוח טיפוסי של ML. להלן השלבים:

  1. הגדר את הסביבה שלך
  2. העלו את שלד הצינור הראשוני
  3. צלול לנתונים שלך
  4. הנדסת תכונות
  5. הַדְרָכָה
  6. ניתוח ביצועי המודל
  7. מוכן להפקה

תנאים מוקדמים

  • לינוקס / MacOS
  • וירטואלי
  • פייתון 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

אם אין לך כבר מותקן Python 3 ו- git, תוכל להתקין אותם באמצעות מנהל החבילות של 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 יש בעיות בזיוף חוטים בעת הפעלת 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
  • מונית_פתרון DAG

מה אתה עושה

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

  • צינורות TFX מתאימים כאשר תפרוס יישום ML ייצור
  • צינורות TFX מתאימים כאשר מערכי הנתונים גדולים
  • צינורות TFX מתאימים כאשר חשובה עקביות האימון / הגשה
  • צינורות TFX מתאימים כאשר יש חשיבות לניהול גרסאות לצורך היסק
  • גוגל משתמשת בצינורות TFX לייצור ML

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

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

הוספת הקוד לכל שלב

ההדרכה תוכננה כך שכל הקוד ייכלל בקבצים, אך כל הקוד לשלבים 3-7 הועלה ומסומן בתגובות מוטבעות. ההערות המובנות מזהות על איזה שלב שורת הקוד חלה. לדוגמה, הקוד לשלב 3 מסומן בתגובה # Step 3 .

הקוד שתוסיף לכל שלב בדרך כלל נופל לשלושה אזורים בקוד:

  • יבוא
  • תצורת DAG
  • הרשימה חזרה משיחת create_pipeline ()
  • הקוד התומך ב- taxi_utils.py

כשתעבור את ההדרכה, תבטל את השורות של הקוד החלות על שלב ההדרכה עליו אתה עובד כעת. זה יוסיף את הקוד לאותו שלב, ועדכן את הצינור שלך. תוך כדי כך אנו ממליצים לך לבדוק את הקוד שאינך מציין .

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

מוֹנִיתמונית בשיקגו

אתה משתמש במערך הנסיעות של מוניות שהוציאה העיר שיקגו.

תוכל לקרוא עוד על מערך הנתונים ב- Google BigQuery . חקור את מערך הנתונים המלא בממשק המשתמש של BigQuery .

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

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

שלב 1: הגדר את הסביבה שלך

סקריפט ההתקנה ( setup_demo.sh ) מתקין את TFX ו- Airflow setup_demo.sh 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 בדפדפן האינטרנט שלך, או אם היו שגיאות בהפעלת airflow webserver , ייתכן שתופעל יישום אחר ביציאה 8080. זוהי יציאת ברירת המחדל עבור Airflow, אך תוכל לשנות אותה לכל יציאת משתמש אחרת שאינה בשימוש. לדוגמה, כדי להפעיל את Airflow בנמל 7070 תוכל להריץ:

airflow webserver -p 7070

לחצני תצוגה של DAG

כפתורי DAG

  • השתמש בכפתור בצד שמאל כדי להפעיל את ה- DAG
  • השתמש בכפתור בצד ימין כדי לרענן את ה- DAG כשאתה מבצע שינויים
  • השתמש בכפתור בצד ימין כדי להפעיל את ה- DAG
  • לחץ על מונית כדי לעבור לתצוגת הגרף של ה- DAG

לחצן רענון גרפים

זרימת אוויר CLI

אתה יכול גם להשתמש ב- CLI Airflow כדי להפעיל ולהפעיל את ה- DAG שלך:

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

# trigger
airflow trigger_dag <your DAG name>

ממתין להשלמת הצינור

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

עד כה רק ברכיב CsvExampleGen נמצא בצינור שלנו, אז אתה צריך לחכות שהוא יהפוך לירוק כהה (~ דקה אחת).

ההתקנה הושלמה

שלב 3: צלול לנתונים שלך

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

  • הבן את סוגי הנתונים עבור כל תכונה
  • חפש חריגות וערכים חסרים
  • הבן את ההפצות לכל תכונה

רכיבים

רכיבי נתוניםרכיבי נתונים

  • דוגמה גן בולע ומפצל את מערך הקלט.
  • StatisticsGen מחשבת נתונים סטטיסטיים עבור מערך הנתונים.
  • SchemaGen SchemaGen בוחן את הסטטיסטיקה ויוצר סכמת נתונים.
  • ExampleValidator מחפש חריגות וערכים חסרים במערך הנתונים.

בעורך:

  • taxi_pipeline.py ~ / taxi_pipeline.py / dags השורות המסומנות Step 3 ב- taxi_pipeline.py
  • הקדש רגע לסקור את הקוד שאינו מציב

בדפדפן:

  • חזור לדף רשימת ה- DAG ב- Airflow על ידי לחיצה על הקישור "DAGs" בפינה השמאלית העליונה
  • לחץ על כפתור הרענון בצד ימין של DAG המונית
    • אתה אמור לראות "DAG [מונית] עכשיו כמו חיננית"
  • מונית טריגר
  • המתן לסיום הצינור
    • הכל ירוק כהה
    • השתמש ברענון בצד ימין או בעמוד הרענון

צלול לנתונים

חזרה על Jupyter:

מוקדם יותר jupyter notebook , שפתחה הפעלה של Jupyter בכרטיסיית הדפדפן. כעת חזור לכרטיסייה זו בדפדפן שלך.

  • פתח את step3.ipynb
  • עקוב אחר המחברת

צלול לנתונים

דוגמה מתקדמת יותר

הדוגמה המוצגת כאן נועדה רק להתחיל. לדוגמא מתקדמת יותר עיין במכלול אימות הנתונים של TensorFlow .

למידע נוסף על השימוש ב- TFDV לחקירה ולאימות של מערך נתונים, עיין בדוגמאות באתר tensorflow.org .

שלב 4: הנדסת תכונות

אתה יכול להגדיל את איכות הניבוי של הנתונים שלך ו / או להקטין מימדיות באמצעות הנדסת תכונות.

  • צלבים של תכונות
  • אוצר מילים
  • טבילות
  • PCA
  • קידוד קטגורי

אחד היתרונות של השימוש ב- TFX הוא שתכתוב את קוד השינוי שלך פעם אחת, וההתמרות שהתקבלו יהיו עקביות בין אימון להגשה.

רכיבים

שינוי צורה

  • Transform מבצע הנדסת תכונות במערך הנתונים.

בעורך:

  • taxi_pipeline.py ~ / taxi_pipeline.py taxi_utils.py / dags השורות המסומנות Step 4 הן ב- taxi_pipeline.py והן ב- taxi_utils.py
  • הקדש רגע לסקור את הקוד שאינו מציב

בדפדפן:

  • חזור לדף רשימת DAG ב- Airflow
  • לחץ על כפתור הרענון בצד ימין של DAG המונית
    • אתה אמור לראות "DAG [מונית] עכשיו כמו חיננית"
  • מונית טריגר
  • המתן לסיום הצינור
    • הכל ירוק כהה
    • השתמש ברענון בצד ימין או בעמוד הרענון

הנדסת תכונות

חזרה על Jupyter:

חזור לכרטיסייה Jupyter בדפדפן שלך.

  • פתח את step4.ipynb
  • עקוב אחר המחברת

דוגמה מתקדמת יותר

הדוגמה המוצגת כאן נועדה רק להתחיל. לקבלת דוגמה מתקדמת יותר ראה את TensorFlow Transform Colab .

שלב 5: אימונים

אימן מודל TensorFlow עם הנתונים היפים שלך, נקיים והופכים.

  • כלול את השינויים משלב 4 כך שיוחלו באופן עקבי
  • שמור את התוצאות כ- SavedModel לייצור
  • דמיינו וחקרו את תהליך האימון באמצעות TensorBoard
  • שמור גם EvalSavedModel לצורך ניתוח ביצועי המודל

רכיבים

בעורך:

  • taxi_pipeline.py ~ / taxi_pipeline.py taxi_utils.py / dags השורות המסומנות Step 5 הן ב- taxi_pipeline.py והן ב- taxi_utils.py
  • הקדש רגע לסקור את הקוד שאינו מציב

בדפדפן:

  • חזור לדף רשימת ה- DAG ב- Airflow
  • לחץ על כפתור הרענון בצד ימין של DAG המונית
    • אתה אמור לראות "DAG [מונית] עכשיו כמו חיננית"
  • מונית טריגר
  • המתן לסיום הצינור
    • הכל ירוק כהה
    • השתמש ברענון בצד ימין או בעמוד הרענון

הכשרת מודל

חזרה על Jupyter:

חזור לכרטיסייה Jupyter בדפדפן שלך.

  • פתח את step5.ipynb
  • עקוב אחר המחברת

הכשרת מודל

דוגמה מתקדמת יותר

הדוגמה המוצגת כאן נועדה באמת רק להתחיל. לדוגמא מתקדמת יותר עיין במדריך TensorBoard .

שלב 6: ניתוח ביצועי המודל

הבנת יותר מדדי הרמה העליונה.

  • משתמשים חווים ביצועי מודל לשאילתות שלהם בלבד
  • ביצועים ירודים בפרוסות נתונים יכולים להיות מוסתרים על ידי מדדים ברמה העליונה
  • הגינות המודל חשובה
  • לעיתים קרובות קבוצות משנה מרכזיות של משתמשים או נתונים חשובות מאוד ועשויות להיות קטנות
    • ביצועים בתנאים קריטיים אך חריגים
    • ביצועים לקהלי מפתח כגון משפיעים
  • אם אתה מחליף דגם שנמצא כעת בייצור, ודא תחילה שהדגם החדש טוב יותר
  • Evaluator אומר לרכיב Pusher אם המודל תקין

רכיבים

  • Evalorator מבצע ניתוח מעמיק של תוצאות האימון, ומוודא שהמודל "מספיק טוב" כדי להידחק לייצור.

בעורך:

  • taxi_pipeline.py ~ / taxi_pipeline.py / dags השורות המסומנות Step 6 בשתי taxi_pipeline.py
  • הקדש רגע לסקור את הקוד שאינו מציב

בדפדפן:

  • חזור לדף רשימת DAG ב- Airflow
  • לחץ על כפתור הרענון בצד ימין של DAG המונית
    • אתה אמור לראות "DAG [מונית] עכשיו כמו חיננית"
  • מונית טריגר
  • המתן לסיום הצינור
    • הכל ירוק כהה
    • השתמש ברענון בצד ימין או בעמוד הרענון

ניתוח ביצועי המודל

חזרה על Jupyter:

חזור לכרטיסייה Jupyter בדפדפן שלך.

  • פתח את step6.ipynb
  • עקוב אחר המחברת

ניתוח ביצועי המודל

דוגמה מתקדמת יותר

הדוגמה המוצגת כאן נועדה רק להתחיל. לדוגמא מתקדמת יותר עיין במדריך המוניות של שיקגו TFMA .

שלב 7: מוכן לייצור

אם הדגם החדש מוכן, עשה זאת כך.

  • פושר פורס SavedModels למיקומים ידועים

יעדי הפריסה מקבלים דגמים חדשים ממקומות ידועים

  • הגשת TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • רכזת TensorFlow

רכיבים

  • פושר פורס את המודל לתשתית משרתת.

בעורך:

  • taxi_pipeline.py ~ / taxi_pipeline.py / dags השורות המסומנות Step 7 בשתי taxi_pipeline.py
  • הקדש רגע לסקור את הקוד שאינו מציב

בדפדפן:

  • חזור לדף רשימת DAG ב- Airflow
  • לחץ על כפתור הרענון בצד ימין של DAG המונית
    • אתה אמור לראות "DAG [מונית] עכשיו כמו חיננית"
  • מונית טריגר
  • המתן לסיום הצינור
    • הכל ירוק כהה
    • השתמש ברענון בצד ימין או בעמוד הרענון

מוכן להפקה

הצעדים הבאים

כעת אימנת SavedModel את המודל שלך, SavedModel קובץ SavedModel תחת SavedModel ~/airflow/saved_models/taxi . המודל שלך מוכן כעת לייצור. כעת תוכל לפרוס את המודל שלך לכל אחת ממטרות הפריסה של TensorFlow, כולל:

  • הגשת TensorFlow , לצורך הגשת המודל שלך בשרת או בחוות שרתים ועיבוד בקשות הסקת REST ו / או gRPC.
  • TensorFlow Lite , לכלול את הדגם שלך ביישום מובייל אנדרואיד או iOS, או ביישום Raspberry Pi, IoT או מיקרו-בקר.
  • TensorFlow.js , להפעלת המודל שלך בדפדפן אינטרנט או ביישום Node.JS.