בדיקת הצינור באמצעות Stub Executors

מָבוֹא

עליך להשלים מדריך template.ipynb עד שלב 6 כדי להמשיך במדריך זה.

מסמך זה יספק הנחיות לבדיקת צינור TensorFlow Extended (TFX) באמצעות BaseStubExecuctor , אשר יוצר חפצים מזויפים באמצעות נתוני הבדיקה המוזהבים. זה נועד למשתמשים להחליף מבצעים שהם לא רוצים לבדוק כדי שיוכלו לחסוך זמן מהפעלת המבצעים בפועל. Stub executor מסופק עם חבילת TFX Python תחת tfx.experimental.pipeline_testing.base_stub_executor .

מדריך זה משמש כהרחבה למדריך template.ipynb , ובכך תשתמש גם במערך הנתונים של Taxi Trips ששוחרר על ידי עיריית שיקגו. אנו ממליצים לך בחום לנסות לשנות את הרכיבים לפני השימוש ב-Stubs executors.

1. הקלט את פלטי הצינור ב-Google Cloud Storage

ראשית עלינו להקליט את יציאות הצינור כדי שמבצעי ה-Stub יוכלו להעתיק את החפצים מהפלטים המוקלטים.

מכיוון שמדריך זה מניח שהשלמת את template.ipynb עד שלב 6, הריצת צינור מוצלחת חייבת להישמר ב- MLMD . ניתן לגשת למידע הביצוע ב-MLMD באמצעות שרת gRPC.

פתח מסוף והפעל את הפקודות הבאות:

  1. צור קובץ kubeconfig עם אישורים מתאימים: bash gcloud container clusters get-credentials $cluster_name --zone $compute_zone --project $gcp_project_id $compute_zone הוא אזור עבור מנוע gcp ו- $gcp_project_id הוא מזהה הפרויקט של פרויקט ה-GCP שלך.

  2. הגדר העברת יציאות לחיבור ל-MLMD: bash nohup kubectl port-forward deployment/metadata-grpc-deployment -n $namespace $port:8080 & $namespace הוא מרחב השמות של האשכול ו- $port הוא כל יציאה שאינה בשימוש שתשמש עבור העברת יציאות.

  3. שיבוט את מאגר tfx GitHub. בתוך ספריית tfx, הפעל את הפקודה הבאה:

python tfx/experimental/pipeline_testing/pipeline_recorder.py \
--output_dir=gs://<gcp_project_id>-kubeflowpipelines-default/testdata \
--host=$host \
--port=$port \
--pipeline_name=$pipeline_name

יש להגדיר $output_dir לנתיב ב-Google Cloud Storage שבו יש לתעד את פלטי הצינור, לכן הקפד להחליף <gcp_project_id> במזהה פרויקט GCP.

$host ו- $port הם שם מארח ויציאה של שרת המטא נתונים grpc לחיבור ל-MLMD. יש להגדיר $port למספר היציאה שבו השתמשת להעברת יציאות ותוכל להגדיר "localhost" עבור שם המארח.

במדריך template.ipynb , שם הצינור מוגדר כ-"my_pipeline" כברירת מחדל, אז הגדר pipeline_name="my_pipeline" . אם שינית את שם הצינור בעת הפעלת המדריך של התבנית, עליך לשנות את --pipeline_name בהתאם.

2. הפעל Stub Executors ב- Kubeflow DAG Runner

ראשית, ודא שהתבנית המוגדרת מראש הועתקה לספריית הפרויקט שלך באמצעות פקודת tfx template copy CLI. יש צורך לערוך את שני הקבצים הבאים בקבצי המקור שהועתקו.

  1. צור קובץ בשם stub_component_launcher.py בספרייה שבה ממוקם kubeflow_dag_runner.py, והכנס אליו את התוכן הבא.

    from tfx.experimental.pipeline_testing import base_stub_component_launcher
    from pipeline import configs
    
    class StubComponentLauncher(
        base_stub_component_launcher.BaseStubComponentLauncher):
      pass
    
    # GCS directory where KFP outputs are recorded
    test_data_dir = "gs://{}/testdata".format(configs.GCS_BUCKET_NAME)
    # TODO: customize self.test_component_ids to test components, replacing other
    # component executors with a BaseStubExecutor.
    test_component_ids = ['Trainer']
    StubComponentLauncher.initialize(
        test_data_dir=test_data_dir,
        test_component_ids=test_component_ids)
    
  2. הגדר מזהי רכיבים להיות רשימה של מזהי רכיבים שיש לבדוק (במילים אחרות, המבצעים של רכיבים אחרים מוחלפים ב-BaseStubExecutor).

  3. פתח kubeflow_dag_runner.py . הוסף את הצהרת הייבוא ​​הבאה בחלק העליון כדי להשתמש במחלקת StubComponentLauncher שזה עתה הוספנו.

    import stub_component_launcher
    
  4. ב- kubeflow_dag_runner.py , הוסף את המחלקה StubComponentLauncher ל- supported_launcher_class של KubeflowDagRunnerConfig כדי לאפשר השקה של מפעילי stub:

    runner_config = kubeflow_dag_runner.KubeflowDagRunnerConfig(
        supported_launcher_classes=[
            stub_component_launcher.StubComponentLauncher
        ],
    

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

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

tfx pipeline update --pipeline-path=kubeflow_dag_runner.py \
  --endpoint=$endpoint --engine=kubeflow

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

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

tfx run create --pipeline-name $pipeline_name --endpoint=$endpoint \
  --engine=kubeflow

מנקים

השתמש בפקודה fg כדי לגשת ל-port-forwarding ברקע ואז ctrl-C כדי לסיים. אתה יכול למחוק את הספרייה עם יציאות צינור מוקלטות באמצעות gsutil -m rm -R $output_dir .

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

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