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:

  1. 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_zone gcp motorunun bölgesidir ve $gcp_project_id GCP projenizin proje kimliğidir.

  2. 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.

  3. 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.

  1. kubeflow_dag_runner.py'nin bulunduğu dizinde stub_component_launcher.py adı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)
    
  2. 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).

  3. kubeflow_dag_runner.py açın. Yeni eklediğimiz StubComponentLauncher sınıfını kullanmak için en üste aşağıdaki import ifadesini ekleyin.

    import stub_component_launcher
    
  4. Stub yürütücülerinin başlatılmasını etkinleştirmek için kubeflow_dag_runner.py dosyasında KubeflowDagRunnerConfig öğesinin supported_launcher_class öğesine StubComponentLauncher sı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