Stub Executors'ı kullanarak işlem hattını test etme
giriiş
Bu eğitime devam etmek için şablon.ipynb eğitimini Adım 6'ya kadar tamamlamanız gerekir.
Bu belge, altın test verilerini kullanarak sahte yapılar oluşturan BaseStubExecuctor kullanarak TensorFlow Extended (TFX) ardışık düzenini test etmeye yönelik talimatlar sağlayacaktır. Bu, kullanıcıların test etmek istemedikleri uygulayıcıları değiştirmeleri ve böylece gerçek uygulayıcıları çalıştırmaktan zaman kazanmaları için tasarlanmıştır. Stub yürütücüsü, tfx.experimental.pipeline_testing.base_stub_executor altında TFX Python paketiyle sağlanır.
Bu eğitim, template.ipynb eğitiminin bir uzantısı olarak hizmet vermektedir, dolayısıyla Chicago Şehri tarafından yayınlanan Taxi Trips veri kümesini de kullanacaksınız. Saplama yürütücülerini kullanmadan önce bileşenleri değiştirmeyi denemenizi önemle tavsiye ederiz.
1. Ardışık düzen çıktılarını Google Cloud Storage'a kaydedin
Saplama yürütücülerinin kaydedilen çıktılardaki yapıtları kopyalayabilmesi için öncelikle boru hattı çıktılarını kaydetmemiz gerekir.
Bu öğreticide, template.ipynb 6. adıma kadar tamamladığınızı varsaydığından, başarılı bir işlem hattı çalıştırmasının MLMD'ye kaydedilmiş olması gerekir. MLMD'deki yürütme bilgilerine gRPC sunucusu kullanılarak erişilebilir.
Bir Terminal açın ve aşağıdaki komutları çalıştırın:
Uygun kimlik bilgilerine sahip bir kubeconfig dosyası oluşturun:
bash gcloud container clusters get-credentials $cluster_name --zone $compute_zone --project $gcp_project_id$compute_zonegcp motorunun bölgesidir ve$gcp_project_idGCP projenizin proje kimliğidir.MLMD'ye bağlanmak için bağlantı noktası iletmeyi ayarlayın:
bash nohup kubectl port-forward deployment/metadata-grpc-deployment -n $namespace $port:8080 &$namespace, küme ad alanıdır ve$port, bunun için kullanılacak kullanılmayan herhangi bir bağlantı noktasıdır. bağlantı noktası yönlendirme.Tfx GitHub deposunu klonlayın. Tfx dizininin içinde aşağıdaki komutu çalıştırın:
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'da ardışık düzen çıktılarının kaydedileceği bir yola ayarlanmalıdır; bu nedenle, <gcp_project_id> kimliğini GCP proje kimliğiyle değiştirdiğinizden emin olun.
$host ve $port MLMD'ye bağlanmak için meta veri grpc sunucusunun ana bilgisayar adı ve bağlantı noktasıdır. $port bağlantı noktası yönlendirme için kullandığınız bağlantı noktası numarasına ayarlanmalıdır ve ana bilgisayar adı için "localhost" ayarını yapabilirsiniz.
template.ipynb eğitiminde, boru hattı adı varsayılan olarak "my_pipeline" olarak ayarlanmıştır, dolayısıyla pipeline_name="my_pipeline" ayarlayın. Şablon eğitimini çalıştırırken işlem hattı adını değiştirdiyseniz --pipeline_name buna göre değiştirmelisiniz.
2. Kubeflow DAG Runner'da Saplama Yürütücülerini Etkinleştirin
Öncelikle tfx template copy CLI komutunu kullanarak önceden tanımlanmış şablonun proje dizininize kopyalandığından emin olun. Kopyalanan kaynak dosyalar içerisinde aşağıdaki iki dosyayı düzenlemek gerekmektedir.
kubeflow_dag_runner.py'nin bulunduğu dizinde
stub_component_launcher.pyadında bir dosya oluşturun ve bu dosyaya aşağıdaki içeriği koyun.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)Bileşen kimliklerini, test edilecek bileşen kimliklerinin listesi olacak şekilde ayarlayın (başka bir deyişle, diğer bileşenlerin yürütücüleri, BaseStubExecutor ile değiştirilir).
kubeflow_dag_runner.pyaçın. Yeni eklediğimizStubComponentLaunchersınıfını kullanmak için en üste aşağıdaki import ifadesini ekleyin.import stub_component_launcherStub yürütücülerinin başlatılmasını etkinleştirmek için
kubeflow_dag_runner.pydosyasındaKubeflowDagRunnerConfigöğesininsupported_launcher_classöğesineStubComponentLaunchersınıfını ekleyin:runner_config = kubeflow_dag_runner.KubeflowDagRunnerConfig( supported_launcher_classes=[ stub_component_launcher.StubComponentLauncher ],
3. İşlem hattını saplama yürütücüleriyle güncelleyin ve çalıştırın
Mevcut işlem hattını, saplama yürütücüleriyle değiştirilmiş işlem hattı tanımıyla güncelleyin.
tfx pipeline update --pipeline-path=kubeflow_dag_runner.py \
--endpoint=$endpoint --engine=kubeflow
$endpoint KFP kümenizin uç noktasına ayarlanmalıdır.
Güncelleştirilmiş işlem hattınızın yeni bir yürütme çalıştırmasını oluşturmak için aşağıdaki komutu çalıştırın.
tfx run create --pipeline-name $pipeline_name --endpoint=$endpoint \
--engine=kubeflow
Temizleme
Arka planda bağlantı noktası yönlendirmeye erişmek için fg komutunu, ardından sonlandırmak için ctrl-C'yi kullanın. gsutil -m rm -R $output_dir kullanarak kayıtlı ardışık düzen çıktılarının bulunduğu dizini silebilirsiniz.
Bu projede kullanılan tüm Google Cloud kaynaklarını temizlemek için eğitim için kullandığınız Google Cloud projesini silebilirsiniz .
Alternatif olarak, her bir konsolu ziyaret ederek kaynakları ayrı ayrı temizleyebilirsiniz: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine