آزمایش خط لوله با استفاده از Stub Executors
مقدمه
برای ادامه این آموزش، باید آموزش template.ipynb را تا مرحله 6 کامل کنید.
این سند دستورالعملهایی را برای آزمایش خط لوله TensorFlow Extended (TFX) با استفاده از BaseStubExecuctor ارائه میکند، که مصنوعات جعلی را با استفاده از دادههای آزمایش طلایی تولید میکند. این برای کاربران در نظر گرفته شده است تا مجری هایی را که نمی خواهند آزمایش کنند جایگزین کنند تا بتوانند در زمان اجرای مجری های واقعی صرفه جویی کنند. اجراکننده خرد با بسته TFX Python تحت tfx.experimental.pipeline_testing.base_stub_executor ارائه شده است.
این آموزش به عنوان یک افزونه برای آموزش template.ipynb عمل می کند، بنابراین شما همچنین از مجموعه داده سفرهای تاکسی منتشر شده توسط شهر شیکاگو استفاده خواهید کرد. ما قویاً شما را تشویق میکنیم که قبل از استفاده از اجراکنندههای خرد سعی کنید مؤلفهها را اصلاح کنید.
1. خروجی های خط لوله را در Google Cloud Storage ثبت کنید
ابتدا باید خروجی های خط لوله را ضبط کنیم تا مجریان خرد بتوانند از روی مصنوعات خروجی های ضبط شده کپی کنند.
از آنجایی که این آموزش فرض می کند که شما template.ipynb تا مرحله 6 تکمیل کرده اید، یک اجرای موفقیت آمیز خط لوله باید در MLMD ذخیره شده باشد. اطلاعات اجرا در MLMD با استفاده از سرور gRPC قابل دسترسی است.
یک ترمینال را باز کنید و دستورات زیر را اجرا کنید:
یک فایل kubeconfig با اعتبار مناسب ایجاد کنید:
bash gcloud container clusters get-credentials $cluster_name --zone $compute_zone --project $gcp_project_id$compute_zoneمنطقهای برای موتور gcp و$gcp_project_idشناسه پروژه پروژه GCP شما است.راه اندازی پورت فورواردینگ برای اتصال به MLMD:
bash nohup kubectl port-forward deployment/metadata-grpc-deployment -n $namespace $port:8080 &$namespaceفضای نام خوشه است و$portهر پورت استفاده نشده ای است که برای پورت فورواردینگمخزن 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 را در Kubeflow DAG Runner فعال کنید
ابتدا مطمئن شوید که الگوی از پیش تعریف شده با استفاده از دستور tfx template copy CLI در دایرکتوری پروژه شما کپی شده است. لازم است دو فایل زیر را در فایل های منبع کپی شده ویرایش کنید.
یک فایل به نام
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)شناسههای مؤلفه را بهعنوان فهرستی از شناسههای مؤلفهای تنظیم کنید که باید آزمایش شوند (به عبارت دیگر، اجراکنندههای مؤلفههای دیگر با BaseStubExecutor جایگزین میشوند).
kubeflow_dag_runner.pyرا باز کنید. برای استفاده از کلاسStubComponentLauncherکه به تازگی اضافه کردیم، عبارت import زیر را در بالا اضافه کنید.import stub_component_launcherدر
kubeflow_dag_runner.py، کلاسStubComponentLauncherرا بهsupported_launcher_classKubeflowDagRunnerConfigاضافه کنید تا راهاندازی اجراکنندگان خرد را فعال کنید: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 برای دسترسی به پورت فورواردینگ در پسزمینه و سپس از ctrl-C برای خاتمه استفاده کنید. می توانید دایرکتوری با خروجی های خط لوله ضبط شده را با استفاده از gsutil -m rm -R $output_dir حذف کنید.
برای پاکسازی تمام منابع Google Cloud مورد استفاده در این پروژه، میتوانید پروژه Google Cloud را که برای آموزش استفاده کردهاید حذف کنید .
از طرف دیگر، میتوانید با مراجعه به هر کنسول، منابع فردی را پاکسازی کنید: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine