Menguji pipeline menggunakan Stub Executors
Perkenalan
Anda harus menyelesaikan tutorial template.ipynb hingga Langkah 6 untuk melanjutkan tutorial ini.
Dokumen ini akan memberikan petunjuk untuk menguji pipeline TensorFlow Extended (TFX) menggunakan BaseStubExecuctor , yang menghasilkan artefak palsu menggunakan data pengujian emas. Hal ini ditujukan bagi pengguna untuk mengganti eksekutor yang tidak ingin mereka uji sehingga dapat menghemat waktu dalam menjalankan eksekutor yang sebenarnya. Pelaksana rintisan disediakan dengan paket TFX Python di bawah tfx.experimental.pipeline_testing.base_stub_executor .
Tutorial ini berfungsi sebagai perpanjangan dari tutorial template.ipynb , sehingga Anda juga akan menggunakan dataset Taxi Trips yang dirilis oleh Kota Chicago. Kami sangat menganjurkan Anda untuk mencoba memodifikasi komponen sebelum menggunakan eksekutor stub.
1. Catat keluaran saluran di Google Cloud Storage
Pertama-tama kita perlu mencatat keluaran pipa sehingga pelaksana stub dapat menyalin artefak dari keluaran yang direkam.
Karena tutorial ini mengasumsikan bahwa Anda telah menyelesaikan template.ipynb hingga langkah 6, alur yang berhasil dijalankan harus disimpan di MLMD . Informasi eksekusi di MLMD dapat diakses menggunakan server gRPC.
Buka Terminal dan jalankan perintah berikut:
Buat file kubeconfig dengan kredensial yang sesuai:
bash gcloud container clusters get-credentials $cluster_name --zone $compute_zone --project $gcp_project_id$compute_zoneadalah wilayah untuk mesin gcp dan$gcp_project_idadalah id proyek proyek GCP Anda.Siapkan penerusan port untuk menghubungkan ke MLMD:
bash nohup kubectl port-forward deployment/metadata-grpc-deployment -n $namespace $port:8080 &$namespaceadalah namespace cluster dan$portadalah port yang tidak terpakai yang akan digunakan untuk penerusan porta.Kloning repositori tfx GitHub. Di dalam direktori tfx, jalankan perintah berikut:
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 harus disetel ke jalur di Google Cloud Storage tempat keluaran pipeline dicatat, jadi pastikan untuk mengganti <gcp_project_id> dengan id proyek GCP.
$host dan $port adalah nama host dan port server metadata grpc untuk terhubung ke MLMD. $port harus disetel ke nomor port yang Anda gunakan untuk penerusan port dan Anda dapat menyetel "localhost" untuk nama host.
Dalam tutorial template.ipynb , nama pipa disetel sebagai "my_pipeline" secara default, jadi setel pipeline_name="my_pipeline" . Jika Anda telah mengubah nama saluran pipa saat menjalankan tutorial templat, Anda harus mengubah --pipeline_name sesuai dengan itu.
2. Aktifkan Stub Executors di Kubeflow DAG Runner
Pertama, pastikan templat yang telah ditentukan sebelumnya telah disalin ke direktori proyek Anda menggunakan perintah CLI tfx template copy . Dua file berikut perlu diedit dalam file sumber yang disalin.
Buat file bernama
stub_component_launcher.pydi direktori tempat kubeflow_dag_runner.py berada, dan masukkan konten berikut ke dalamnya.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)Tetapkan id komponen menjadi daftar id komponen yang akan diuji (dengan kata lain, pelaksana komponen lain diganti dengan BaseStubExecutor) .
Buka
kubeflow_dag_runner.py. Tambahkan pernyataan import berikut di bagian atas untuk menggunakan kelasStubComponentLauncheryang baru saja kita tambahkan.import stub_component_launcherDi
kubeflow_dag_runner.py, tambahkan kelasStubComponentLauncherkesupported_launcher_classKubeflowDagRunnerConfiguntuk mengaktifkan peluncuran eksekutor stub:runner_config = kubeflow_dag_runner.KubeflowDagRunnerConfig( supported_launcher_classes=[ stub_component_launcher.StubComponentLauncher ],
3. Perbarui dan jalankan pipeline dengan eksekutor stub
Perbarui alur yang ada dengan definisi alur yang dimodifikasi dengan pelaksana rintisan.
tfx pipeline update --pipeline-path=kubeflow_dag_runner.py \
--endpoint=$endpoint --engine=kubeflow
$endpoint harus disetel ke titik akhir klaster KFP Anda.
Jalankan perintah berikut untuk membuat eksekusi baru dari alur Anda yang diperbarui.
tfx run create --pipeline-name $pipeline_name --endpoint=$endpoint \
--engine=kubeflow
Membersihkan
Gunakan perintah fg untuk mengakses penerusan porta di latar belakang lalu ctrl-C untuk mengakhiri. Anda dapat menghapus direktori dengan keluaran pipa yang direkam menggunakan gsutil -m rm -R $output_dir .
Untuk membersihkan semua resource Google Cloud yang digunakan dalam proyek ini, Anda dapat menghapus proyek Google Cloud yang Anda gunakan untuk tutorial.
Alternatifnya, Anda dapat membersihkan sumber daya individual dengan mengunjungi setiap konsol: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine