TFX ב-Cloud AI Platform Pipelines

מבוא

מדריך זה נועד להציג את TensorFlow Extended (TFX) ו- AIPlatform Pipelines , ולעזור לך ללמוד ליצור צינורות למידת מכונה משלך ב-Google Cloud. זה מציג אינטגרציה עם TFX, AI Platform Pipelines ו-Kubeflow, כמו גם אינטראקציה עם TFX במחברות של Jupyter.

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

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

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

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

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

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

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

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

1. הגדר פרויקט של Google Cloud

1.א הגדר את הסביבה שלך ב-Google Cloud

כדי להתחיל, אתה צריך חשבון Google Cloud. אם כבר יש לך אחד, דלג קדימה ליצירת פרויקט חדש .

  1. עבור אל Google Cloud Console .

  2. הסכים לתנאים ולהגבלות של Google Cloud

  3. אם תרצה להתחיל עם חשבון ניסיון בחינם, לחץ על נסה בחינם (או התחל בחינם ).

    1. בחר את המדינה שלך.

    2. הסכים לתנאי השירות.

    3. הזן פרטי חיוב.

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

1.ב צור פרויקט חדש.

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

2. הגדר ופריסה של צינור AI Platform על אשכול Kubernetes חדש

  1. עבור לדף AI Platform Pipelines Clusters .

    תחת תפריט הניווט הראשי: ≡ > פלטפורמת AI > Pipelines

  2. לחץ על + מופע חדש כדי ליצור אשכול חדש.

  3. בדף הסקירה הכללית של Kubeflow Pipelines , לחץ על הגדר .

  4. לחץ על "הפעל" כדי להפעיל את Kubernetes Engine API

  5. בדף פריסת צינורות Kubeflow :

    1. בחר אזור (או "אזור") עבור האשכול שלך. ניתן להגדיר את הרשת ואת רשת המשנה, אך למטרות הדרכה זו נשאיר אותן כברירת מחדל.

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

    3. לחץ על צור אשכול חדש והמתן מספר דקות עד שהאשכול נוצר. זה ייקח כמה דקות. כשזה יסתיים תראה הודעה כמו:

      אשכול "אשכול-1" נוצר בהצלחה באזור "us-central1-a".

    4. בחר מרחב שמות ושם מופע (שימוש בברירות המחדל הוא בסדר). למטרות מדריך זה אל תבדוק את executor.emissary או managedstorage.enabled .

    5. לחץ על 'פרוס' והמתן מספר רגעים עד שהצינור יתבצע. על ידי פריסת Kubeflow Pipelines, אתה מקבל את התנאים וההגבלות.

3. הגדר מופע Cloud AI Platform Notebook.

  1. עבור לדף Vertex AI Workbench . בפעם הראשונה שתפעיל את Workbench תצטרך להפעיל את ה-API של Notebooks.

    תחת תפריט הניווט הראשי: ≡ -> Vertex AI -> Workbench

  2. אם תתבקש, הפעל את Compute Engine API.

  3. צור מחברת חדשה עם TensorFlow Enterprise 2.7 (או למעלה) מותקן.

    מחברת חדשה -> TensorFlow Enterprise 2.7 -> ללא GPU

    בחר אזור ואזור, ותן למופע המחברת שם.

    כדי להישאר בגבולות ה-Free Tier, ייתכן שיהיה עליך לשנות את הגדרות ברירת המחדל כאן כדי לצמצם את מספר ה-vCPUs הזמינים למופע זה מ-4 ל-2:

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

    3. המתן עד שהמחברת החדשה תיווצר, ולאחר מכן לחץ על Enable Notebooks API

4. הפעל את מחברת התחלת העבודה

  1. עבור לדף AI Platform Pipelines Clusters .

    תחת תפריט הניווט הראשי: ≡ -> AI Platform -> Pipelines

  2. בשורה של האשכול שבו אתה משתמש במדריך זה, לחץ על פתח את לוח המחוונים של צינורות .

  3. בדף תחילת העבודה , לחץ על פתח מחברת Cloud AI Platform ב-Google Cloud .

  4. בחר את המופע של Notebook שבו אתה משתמש עבור מדריך זה והמשך , ולאחר מכן אשר .

    מחברת בחר

5. המשך לעבוד במחברת

להתקין

ה-Getting Started Notebook מתחיל בהתקנת TFX ו- Kubeflow Pipelines (KFP) ב-VM שבו פועלת Jupyter Lab.

לאחר מכן הוא בודק איזו גרסה של TFX מותקנת, מבצע ייבוא ​​ומגדיר ומדפיס את מזהה הפרויקט:

בדוק את גרסת python וייבא

התחבר לשירותי Google Cloud שלך

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

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

כעת הגדר את נקודת הקצה של אשכול KFP שלך.

ניתן למצוא זאת מכתובת ה-URL של לוח המחוונים Pipelines. עבור אל לוח המחוונים של Kubeflow Pipeline והסתכל על כתובת האתר. נקודת הקצה היא כל מה שבכתובת האתר מתחיל ב- https:// , עד וכולל googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

לאחר מכן, המחברת מגדירה שם ייחודי לתמונת Docker המותאמת אישית:

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. העתק תבנית לספריית הפרויקט שלך

ערוך את התא הבא של המחברת כדי להגדיר שם לצינור שלך. במדריך זה נשתמש ב- my_pipeline .

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)

לאחר מכן, המחברת משתמשת ב- tfx CLI כדי להעתיק את תבנית הצינור. מדריך זה משתמש במערך הנתונים של Chicago Taxi כדי לבצע סיווג בינארי, כך שהתבנית מגדירה את המודל taxi :

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

לאחר מכן, המחברת משנה את הקשר CWD שלה לספריית הפרויקט:

%cd {PROJECT_DIR}

עיין בקבצי הצינור

בצד שמאל של ה-Cloud AI Platform Notebook, אתה אמור לראות דפדפן קבצים. צריכה להיות ספרייה עם שם הצינור שלך ( my_pipeline ). פתח אותו והצג את הקבצים. (תוכל לפתוח אותם ולערוך גם מסביבת המחברת.)

# You can also list the files from the shell
 ls

פקודת tfx template copy למעלה יצרה פיגום בסיסי של קבצים הבונים צינור. אלה כוללים קודי מקור של Python, נתונים לדוגמה ומחברות Jupyter. אלה נועדו לדוגמא הספציפית הזו. עבור הצינורות שלך, אלו יהיו הקבצים התומכים שהצינור שלך דורש.

להלן תיאור קצר של קבצי Python.

  • pipeline - ספרייה זו מכילה את ההגדרה של הצינור
    • configs.py - מגדיר קבועים נפוצים עבור רצי צינורות
    • pipeline.py - מגדיר רכיבי TFX וצינור
  • models - ספרייה זו מכילה הגדרות מודל ML.
    • features.py features_test.py - מגדיר תכונות עבור הדגם
    • preprocessing.py / preprocessing_test.py - מגדיר עבודות עיבוד מקדים באמצעות tf::Transform
    • estimator - ספרייה זו מכילה מודל מבוסס הערכה.
      • constants.py - מגדיר קבועים של המודל
      • model.py / model_test.py - מגדיר מודל DNN באמצעות מעריך TF
    • keras - ספרייה זו מכילה מודל מבוסס Keras.
      • constants.py - מגדיר קבועים של המודל
      • model.py / model_test.py - מגדיר מודל DNN באמצעות Keras
  • beam_runner.py / kubeflow_runner.py - הגדר רצים עבור כל מנוע תזמור

7. הפעל את צינור ה-TFX הראשון שלך ב-Kubeflow

המחברת תפעיל את הצינור באמצעות פקודת tfx run CLI.

התחבר לאחסון

צינורות פועלים יוצרים חפצים שיש לאחסן ב- ML-Metadata . חפצים מתייחסים למטענים, שהם קבצים שיש לאחסן במערכת קבצים או לחסום אחסון. עבור מדריך זה, נשתמש ב-GCS כדי לאחסן את עומסי המטא נתונים שלנו, באמצעות הדלי שנוצר באופן אוטומטי במהלך ההגדרה. השם שלו יהיה <your-project-id>-kubeflowpipelines-default .

צור את הצינור

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

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv

לאחר מכן, המחברת משתמשת בפקודה tfx pipeline create כדי ליצור את הצינור.

!tfx pipeline create  \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image

בזמן יצירת צינור, Dockerfile ייווצר כדי לבנות תמונת Docker. אל תשכח להוסיף את הקבצים האלה למערכת בקרת המקור שלך (לדוגמה, git) יחד עם קבצי מקור אחרים.

הפעל את הצינור

לאחר מכן, המחברת משתמשת בפקודה tfx run create כדי להתחיל ריצת ביצוע של הצינור שלך. אתה גם תראה את הריצה הזו ברשימה תחת ניסויים בלוח המחוונים של Kubeflow Pipelines.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

אתה יכול להציג את הצינור שלך מלוח המחוונים של Kubeflow Pipelines.

8. אמת את הנתונים שלך

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

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

רכיבים

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

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

בעורך הקבצים של Jupyter Lab:

ב- pipeline / pipeline.py , בטל את ההערה לשורות שמצרפות את הרכיבים האלה לצינור שלך:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

( ExampleGen כבר הופעל כאשר קובצי התבנית הועתקו.)

עדכן את הצינור והפעל אותו מחדש

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

בדוק את הצינור

עבור Kubeflow Orchestrator, בקר בלוח המחוונים של KFP ומצא פלטי צינור בדף עבור הפעלת הצינור שלך. לחץ על הכרטיסייה "ניסויים" בצד ימין, ועל "כל הריצות" בדף הניסויים. אתה אמור להיות מסוגל למצוא את הריצה עם שם הצינור שלך.

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

הדוגמה המוצגת כאן נועדה למעשה רק כדי להתחיל. לדוגמא מתקדמת יותר, עיין ב- TensorFlow Data Validation Colab .

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

9. הנדסת תכונות

אתה יכול להגדיל את איכות הניבוי של הנתונים שלך ו/או להפחית את הממדיות עם הנדסת תכונות.

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

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

רכיבים

שינוי צורה

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

בעורך הקבצים של Jupyter Lab:

ב- pipeline / pipeline.py , מצא ובטל את ההערה של השורה שמצרפת את Transform לצינור.

# components.append(transform)

עדכן את הצינור והפעל אותו מחדש

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

בדוק את תפוקות הצינור

עבור Kubeflow Orchestrator, בקר בלוח המחוונים של KFP ומצא פלטי צינור בדף עבור הפעלת הצינור שלך. לחץ על הכרטיסייה "ניסויים" בצד ימין, ועל "כל הריצות" בדף הניסויים. אתה אמור להיות מסוגל למצוא את הריצה עם שם הצינור שלך.

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

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

10. הדרכה

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

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

רכיבים

בעורך הקבצים של Jupyter Lab:

ב- pipeline / pipeline.py , מצא ובטל את ההערה שמצרף את המאמן לצינור:

# components.append(trainer)

עדכן את הצינור והפעל אותו מחדש

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

בדוק את תפוקות הצינור

עבור Kubeflow Orchestrator, בקר בלוח המחוונים של KFP ומצא פלטי צינור בדף עבור הפעלת הצינור שלך. לחץ על הכרטיסייה "ניסויים" בצד ימין, ועל "כל הריצות" בדף הניסויים. אתה אמור להיות מסוגל למצוא את הריצה עם שם הצינור שלך.

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

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

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

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

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

רכיבים

  • Evaluator מבצע ניתוח מעמיק של תוצאות האימון.

בעורך הקבצים של Jupyter Lab:

ב- pipeline / pipeline.py , מצא ובטל את ההערה של השורה שמצרפת את Evaluator לצינור:

components.append(evaluator)

עדכן את הצינור והפעל אותו מחדש

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

בדוק את תפוקות הצינור

עבור Kubeflow Orchestrator, בקר בלוח המחוונים של KFP ומצא פלטי צינור בדף עבור הפעלת הצינור שלך. לחץ על הכרטיסייה "ניסויים" בצד ימין, ועל "כל הריצות" בדף הניסויים. אתה אמור להיות מסוגל למצוא את הריצה עם שם הצינור שלך.

12. הגשת הדגם

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

  • Pusher פורס את SavedModels למיקומים ידועים

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

  • הגשה של TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

רכיבים

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

בעורך הקבצים של Jupyter Lab:

ב- pipeline / pipeline.py , מצא ובטל את ההערה של השורה שמצרפת את Pusher לצינור:

# components.append(pusher)

בדוק את תפוקות הצינור

עבור Kubeflow Orchestrator, בקר בלוח המחוונים של KFP ומצא פלטי צינור בדף עבור הפעלת הצינור שלך. לחץ על הכרטיסייה "ניסויים" בצד ימין, ועל "כל הריצות" בדף הניסויים. אתה אמור להיות מסוגל למצוא את הריצה עם שם הצינור שלך.

יעדי פריסה זמינים

כעת אימנת ואימתת את הדגם שלך, והדגם שלך מוכן כעת לייצור. כעת תוכל לפרוס את המודל שלך לכל אחד מיעדי הפריסה של TensorFlow, כולל:

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

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

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

שיקולי משאבים של Kubeflow Pipelines

בהתאם לדרישות של עומס העבודה שלך, תצורת ברירת המחדל עבור פריסת ה-Kubeflow Pipelines שלך עשויה לענות על הצרכים שלך או לא. אתה יכול להתאים אישית את תצורות המשאבים שלך באמצעות pipeline_operator_funcs בקריאה שלך אל KubeflowDagRunnerConfig .

pipeline_operator_funcs היא רשימה של פריטי OpFunc , אשר הופכת את כל מופעי ContainerOp שנוצרו במפרט הצינור של KFP אשר מורכב מ- KubeflowDagRunner .

לדוגמה, כדי להגדיר זיכרון נוכל להשתמש set_memory_request כדי להצהיר על כמות הזיכרון הדרושה. דרך טיפוסית לעשות זאת היא ליצור עטיפה עבור set_memory_request ולהשתמש בו כדי להוסיף לרשימת ה- OpFunc של הצינור:

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

פונקציות תצורת משאבים דומות כוללות:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

נסה BigQueryExampleGen

BigQuery הוא מחסן נתונים בענן חסר שרתים, ניתן להרחבה וחסכוני. BigQuery יכול לשמש כמקור לדוגמאות הדרכה ב-TFX. בשלב זה, נוסיף BigQueryExampleGen לצינור.

בעורך הקבצים של Jupyter Lab:

לחץ פעמיים כדי לפתוח pipeline.py . שים לב ל- CsvExampleGen ובטל את ההערה לשורה שיוצרת מופע של BigQueryExampleGen . עליך גם לבטל את ההערה לארגומנט query של הפונקציה create_pipeline .

עלינו לציין באיזה פרויקט GCP להשתמש עבור BigQuery, וזה נעשה על ידי הגדרת --project ב- beam_pipeline_args בעת יצירת צינור.

לחץ פעמיים כדי לפתוח configs.py . בטל את ההערה להגדרה של BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS ו- BIG_QUERY_QUERY . עליך להחליף את מזהה הפרויקט ואת ערך האזור בקובץ זה בערכים הנכונים עבור פרויקט ה-GCP שלך.

שנה ספרייה רמה אחת למעלה. לחץ על שם הספרייה מעל רשימת הקבצים. שם הספרייה הוא שם הצינור שהוא my_pipeline אם לא שינית את שם הצינור.

לחץ פעמיים כדי לפתוח את kubeflow_runner.py . בטל הערות לשני ארגומנטים, query ו- beam_pipeline_args , עבור הפונקציה create_pipeline .

כעת הצינור מוכן להשתמש ב-BigQuery כמקור לדוגמה. עדכן את הצינור כמו קודם וצור ריצת הפעלה חדשה כפי שעשינו בשלב 5 ו-6.

עדכן את הצינור והפעל אותו מחדש

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

נסה את Dataflow

מספר רכיבי TFX משתמשים ב-Apache Beam כדי ליישם צינורות מקבילים לנתונים, וזה אומר שאתה יכול להפיץ עומסי עבודה של עיבוד נתונים באמצעות Google Cloud Dataflow . בשלב זה, נגדיר את מתזמר Kubeflow להשתמש ב-Dataflow כחלק האחורי של עיבוד הנתונים עבור Apache Beam.

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

לחץ פעמיים על pipeline כדי לשנות ספרייה, ולחץ פעמיים כדי לפתוח configs.py . בטל את ההערה להגדרה של GOOGLE_CLOUD_REGION ו- DATAFLOW_BEAM_PIPELINE_ARGS .

שנה ספרייה רמה אחת למעלה. לחץ על שם הספרייה מעל רשימת הקבצים. שם הספרייה הוא שם הצינור שהוא my_pipeline אם לא שינית.

לחץ פעמיים כדי לפתוח את kubeflow_runner.py . בטל הערה beam_pipeline_args . (כמו כן הקפד להגיב על beam_pipeline_args נוכחיים שהוספת בשלב 7.)

עדכן את הצינור והפעל אותו מחדש

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

אתה יכול למצוא את משרות ה-Dataflow שלך ב- Dataflow ב-Cloud Console .

נסה הדרכה וחיזוי פלטפורמת AI בענן עם KFP

TFX פועלת יחד עם מספר שירותי GCP מנוהלים, כגון Cloud AI Platform for Training and Prediction . אתה יכול להגדיר את רכיב Trainer שלך לשימוש ב-Cloud AI Platform Training, שירות מנוהל לאימון מודלים של ML. יתרה מכך, כאשר הדגם שלך בנוי ומוכן להגשה, אתה יכול לדחוף את המודל שלך ל-Cloud AI Platform Prediction לצורך הגשה. בשלב זה, נגדיר את רכיב Trainer וה- Pusher שלנו לשימוש בשירותי Cloud AI Platform.

לפני עריכת קבצים, ייתכן שתצטרך להפעיל תחילה AI Platform Training & Prediction API .

לחץ פעמיים על pipeline כדי לשנות ספרייה, ולחץ פעמיים כדי לפתוח configs.py . בטל את ההערה להגדרה של GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS ו- GCP_AI_PLATFORM_SERVING_ARGS . אנו נשתמש בתמונת המיכל הבנויה בהתאמה אישית כדי להכשיר מודל ב-Cloud AI Platform Training, לכן עלינו להגדיר masterConfig.imageUri ב- GCP_AI_PLATFORM_TRAINING_ARGS לאותו ערך כמו CUSTOM_TFX_IMAGE לעיל.

שנה את הספרייה רמה אחת למעלה ולחץ פעמיים כדי לפתוח kubeflow_runner.py . בטל הערות ai_platform_training_args ו- ai_platform_serving_args .

עדכן את הצינור והפעל אותו מחדש

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

אתה יכול למצוא את משרות ההדרכה שלך ב- Cloud AI Platform Jobs . אם הצינור שלך הושלם בהצלחה, תוכל למצוא את הדגם שלך ב- Cloud AI Platform Models .

14. השתמש בנתונים שלך

במדריך זה, יצרת צינור למודל באמצעות מערך הנתונים של Chicago Taxi. כעת נסה להכניס את הנתונים שלך לצינור. ניתן לאחסן את הנתונים שלך בכל מקום שהצינור יכול לגשת אליהם, כולל Google Cloud Storage, BigQuery או קובצי CSV.

עליך לשנות את הגדרת הצינור כדי להתאים לנתונים שלך.

אם הנתונים שלך מאוחסנים בקבצים

  1. שנה DATA_PATH ב- kubeflow_runner.py , תוך ציון המיקום.

אם הנתונים שלך מאוחסנים ב-BigQuery

  1. שנה את BIG_QUERY_QUERY ב-configs.py להצהרת השאילתה שלך.
  2. הוסף תכונות ב- models / features.py .
  3. שנה models / preprocessing.py כדי להפוך נתוני קלט להדרכה .
  4. שנה את models / keras / model.py ואת models / keras / constants.py כדי לתאר את מודל ה-ML שלך .

למידע נוסף על Trainer

ראה מדריך רכיבי מאמן לפרטים נוספים על צינורות הדרכה.

ניקיון

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

לחלופין, תוכל לנקות משאבים בודדים על ידי ביקור בכל אחת מהקונסולות: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine