Cloud AI Platform Ardışık Düzenlerinde TFX

giriiş

Bu eğitici, TensorFlow Extended (TFX) ve AIPlatform Pipelines'ı tanıtmak ve Google Cloud'da kendi makine öğrenimi ardışık düzenlerinizi oluşturmayı öğrenmenize yardımcı olmak için tasarlanmıştır. Jupyter dizüstü bilgisayarlarda TFX, AI Platform Pipelines ve Kubeflow ile entegrasyonun yanı sıra TFX ile etkileşimi gösterir.

Bu eğiticinin sonunda, Google Cloud'da barındırılan bir ML Pipeline oluşturmuş ve çalıştırmış olacaksınız. Her çalıştırmanın sonuçlarını görselleştirebilecek ve oluşturulan eserlerin kökenini görüntüleyebileceksiniz.

Veri kümesini inceleyerek ve eksiksiz bir çalışma hattı ile biten tipik bir makine öğrenimi geliştirme sürecini izleyeceksiniz. Yol boyunca, ardışık düzeninizde hata ayıklamanın ve güncellemenin ve performansı ölçmenin yollarını keşfedeceksiniz.

Chicago Taksi Veri Kümesi

TaksiChicago taksi

Chicago Şehri tarafından yayınlanan Taksi Gezileri veri setini kullanıyorsunuz.

Google BigQuery'de veri kümesi hakkında daha fazla bilgi edinebilirsiniz. BigQuery kullanıcı arayüzündeki tüm veri kümesini keşfedin.

Model Hedefi - İkili sınıflandırma

Müşteri %20'den fazla mı yoksa daha az mı bahşiş verecek?

1. Bir Google Cloud projesi oluşturun

1.a Ortamınızı Google Cloud'da kurun

Başlamak için bir Google Bulut Hesabına ihtiyacınız var. Zaten bir tane varsa, Yeni Proje Yarat'a atlayın.

  1. Google Bulut Konsolu'na gidin.

  2. Google Cloud şartlar ve koşullarını kabul edin

  3. Ücretsiz bir deneme hesabıyla başlamak istiyorsanız, Ücretsiz Dene'ye (veya Ücretsiz Başlayın ) tıklayın.

    1. Ülkeni seç.

    2. Hizmet şartlarını kabul edin.

    3. Fatura ayrıntılarını girin.

      Bu noktada sizden ücret alınmaz. Başka bir Google Cloud projeniz yoksa, aynı anda çalışan maksimum 8 çekirdeği içeren Google Cloud Ücretsiz Katman sınırlarını aşmadan bu eğiticiyi tamamlayabilirsiniz.

1.b Yeni bir proje oluşturun.

  1. Ana Google Cloud kontrol panelinde , Google Cloud Platform başlığının yanındaki proje açılır menüsünü tıklayın ve Yeni Proje 'yi seçin.
  2. Projenize bir isim verin ve diğer proje detaylarını girin
  3. Bir proje oluşturduktan sonra, proje açılır menüsünden onu seçtiğinizden emin olun.

2. Yeni bir Kubernetes kümesinde bir AI Platform Pipeline kurun ve dağıtın

  1. AI Platform Pipelines Clusters sayfasına gidin.

    Ana Gezinme Menüsü altında: ≡ > AI Platform > Pipelines

  2. Yeni bir küme oluşturmak için + Yeni Örnek'e tıklayın.

  3. Kubeflow Pipelines genel bakış sayfasında Yapılandır öğesine tıklayın.

  4. Kubernetes Engine API'yi etkinleştirmek için "Etkinleştir"i tıklayın

  5. Kubeflow Pipelines Dağıtma sayfasında:

    1. Kümeniz için bir bölge (veya "bölge") seçin. Ağ ve alt ağ ayarlanabilir, ancak bu eğitimin amaçları doğrultusunda bunları varsayılan olarak bırakacağız.

    2. ÖNEMLİ Aşağıdaki bulut API'lerine erişime izin ver etiketli kutuyu işaretleyin. (Bu kümenin projenizin diğer parçalarına erişmesi için bu gereklidir. Bu adımı kaçırırsanız, daha sonra düzeltmek biraz zor olabilir.)

    3. Yeni Küme Oluştur öğesine tıklayın ve küme oluşturulana kadar birkaç dakika bekleyin. Bu birkaç dakika sürecek. Tamamlandığında şöyle bir mesaj göreceksiniz:

      Küme "küme-1", "us-central1-a" bölgesinde başarıyla oluşturuldu.

    4. Bir ad alanı ve örnek adı seçin (varsayılanları kullanmak uygundur). Bu öğreticinin amaçları doğrultusunda executor.emissary veya Managedstorage.enabled öğelerini kontrol etmeyin.

    5. Dağıt öğesine tıklayın ve işlem hattı dağıtılana kadar birkaç dakika bekleyin. Kubeflow Pipelines'ı dağıtarak Hizmet Şartları'nı kabul etmiş olursunuz.

3. Cloud AI Platform Notebook örneğini ayarlayın.

  1. Vertex AI Workbench sayfasına gidin. Workbench'i ilk çalıştırdığınızda Notebooks API'sini etkinleştirmeniz gerekir.

    Ana Gezinme Menüsü altında: ≡ -> Vertex AI -> Workbench

  2. İstenirse Compute Engine API'sini etkinleştirin.

  3. TensorFlow Enterprise 2.7 (veya üstü) yüklü Yeni bir Defter oluşturun.

    Yeni Defter -> TensorFlow Enterprise 2.7 -> GPU'suz

    Bir bölge ve bölge seçin ve not defteri örneğine bir ad verin.

    Ücretsiz Kullanım sınırları içinde kalmak için, bu örnekte kullanılabilen vCPU sayısını 4'ten 2'ye düşürmek için buradaki varsayılan ayarları değiştirmeniz gerekebilir:

    1. Yeni not defteri formunun altındaki Gelişmiş Seçenekler'i seçin.
    2. Ücretsiz katmanda kalmanız gerekiyorsa, Makine yapılandırması altında 1 veya 2 vCPU'lu bir yapılandırma seçmek isteyebilirsiniz.

    3. Yeni not defterinin oluşturulmasını bekleyin ve ardından Defterler API'sini Etkinleştir'e tıklayın.

4. Başlangıç ​​Not Defterini Başlatın

  1. AI Platform Pipelines Clusters sayfasına gidin.

    Ana Gezinme Menüsü altında: ≡ -> AI Platformu -> İşlem Hatları

  2. Bu öğreticide kullandığınız küme satırında, Pipelines Dashboard'u Aç öğesine tıklayın.

  3. Başlarken sayfasında, Google Cloud'da bir Bulut AI Platformu Not Defteri Aç 'ı tıklayın.

  4. Bu öğretici için kullandığınız Defter örneğini seçin ve Devam'ı ve ardından Onayla'yı seçin.

    not defterini seç

5. Defterde çalışmaya devam edin

Düzenlemek

Başlangıç ​​Not Defteri, Jupyter Lab'ın çalıştığı VM'ye TFX ve Kubeflow Pipelines (KFP) yükleyerek başlar.

Ardından TFX'in hangi sürümünün kurulu olduğunu kontrol eder, içe aktarma yapar ve Proje Kimliğini ayarlar ve yazdırır:

python sürümünü kontrol edin ve içe aktarın

Google Cloud hizmetlerinizle bağlantı kurun

İşlem hattı yapılandırması, not defterinden alıp çevresel değişken olarak ayarlayabileceğiniz proje kimliğinize ihtiyaç duyar.

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

Şimdi KFP küme uç noktanızı ayarlayın.

Bu, Pipelines panosunun URL'sinden bulunabilir. Kubeflow Pipeline panosuna gidin ve URL'ye bakın. Bitiş noktası, https:// ile başlayan ve googleusercontent.com dahil olmak üzere URL'deki her şeydir.

ENDPOINT='' # Enter YOUR ENDPOINT here.

Dizüstü bilgisayar daha sonra özel Docker görüntüsü için benzersiz bir ad belirler:

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. Bir şablonu proje dizininize kopyalayın

İşlem hattınız için bir ad belirlemek üzere sonraki not defteri hücresini düzenleyin. Bu eğitimde my_pipeline .

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)

Not defteri daha sonra işlem hattı şablonunu kopyalamak için tfx CLI'yi kullanır. Bu öğretici, ikili sınıflandırma gerçekleştirmek için Chicago Taksi veri kümesini kullanır, bu nedenle şablon, modeli taxi olarak ayarlar:

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

Dizüstü bilgisayar daha sonra CWD içeriğini proje dizinine değiştirir:

%cd {PROJECT_DIR}

İşlem hattı dosyalarına göz atın

Cloud AI Platform Notebook'un sol tarafında bir dosya tarayıcısı görmelisiniz. İşlem hattı adınızla ( my_pipeline ) bir dizin olmalıdır. Açın ve dosyaları görüntüleyin. (Onları açıp not defteri ortamından da düzenleyebilirsiniz.)

# You can also list the files from the shell
 ls

Yukarıdaki tfx template copy komutu, bir işlem hattı oluşturan temel bir dosya iskelesi oluşturdu. Bunlara Python kaynak kodları, örnek veriler ve Jupyter not defterleri dahildir. Bunlar, bu özel örnek içindir. Kendi işlem hatlarınız için bunlar, işlem hattınızın gerektirdiği destekleyici dosyalar olacaktır.

İşte Python dosyalarının kısa açıklaması.

  • pipeline - Bu dizin boru hattının tanımını içerir
    • configs.py — işlem hattı koşucuları için ortak sabitleri tanımlar
    • pipeline.py hattı.py — TFX bileşenlerini ve bir işlem hattını tanımlar
  • models - Bu dizin, ML model tanımlarını içerir.
    • feature.py features_test.py — modelin features.py tanımlar
    • preprocessing.py / preprocessing_test.pytf::Transform kullanarak ön işleme işlerini tanımlar
    • estimator - Bu dizin Tahminci tabanlı bir model içerir.
      • constants.py — modelin sabitlerini tanımlar
      • model.py / model_test.py — TF tahmincisi kullanarak DNN modelini tanımlar
    • keras - Bu dizin Keras tabanlı bir model içerir.
      • constants.py — modelin sabitlerini tanımlar
      • model.py / model_test.py — Keras kullanarak DNN modelini tanımlar
  • beam_runner.py / kubeflow_runner.py — her düzenleme motoru için koşucular tanımlayın

7. İlk TFX ardışık düzeninizi Kubeflow'ta çalıştırın

Not defteri, tfx run CLI komutunu kullanarak işlem hattını çalıştıracaktır.

Depolamaya bağlan

Çalışan işlem hatları, ML-Metadata içinde depolanması gereken yapılar oluşturur. Yapıtlar, bir dosya sisteminde veya blok depolamada saklanması gereken dosyalar olan yükleri ifade eder. Bu eğitimde, kurulum sırasında otomatik olarak oluşturulan paketi kullanarak meta veri yüklerimizi depolamak için GCS'yi kullanacağız. Adı <your-project-id>-kubeflowpipelines-default .

İşlem hattını oluşturun

Not defteri, daha sonra ardışık düzenimizde kullanabilmemiz için örnek verilerimizi GCS paketine yükleyecektir.

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv

Dizüstü bilgisayar daha sonra işlem hattını oluşturmak için tfx pipeline create komutunu kullanır.

!tfx pipeline create  \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image

Bir işlem hattı oluştururken, bir Docker görüntüsü oluşturmak için Dockerfile oluşturulur. Bu dosyaları diğer kaynak dosyalarla birlikte kaynak kontrol sisteminize (örneğin git) eklemeyi unutmayın.

Boru hattını çalıştırın

Not defteri daha sonra işlem hattınızın yürütme çalıştırmasını başlatmak için tfx run create komutunu kullanır. Bu çalıştırmanın Kubeflow Pipelines Dashboard'daki Denemeler altında listelendiğini de göreceksiniz.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

İşlem hattınızı Kubeflow Pipelines Dashboard'dan görüntüleyebilirsiniz.

8. Verilerinizi doğrulayın

Herhangi bir veri bilimi veya makine öğrenimi projesindeki ilk görev, verileri anlamak ve temizlemektir.

  • Her özellik için veri türlerini anlayın
  • Anormallikleri ve eksik değerleri arayın
  • Her özelliğin dağılımlarını anlayın

Bileşenler

Veri BileşenleriVeri Bileşenleri

  • ExampleGen , giriş veri kümesini alır ve böler.
  • İstatistiklerGen , veri kümesi için istatistikleri hesaplar.
  • SchemaGen SchemaGen istatistikleri inceler ve bir veri şeması oluşturur.
  • ExampleValidator , veri kümesindeki anormallikleri ve eksik değerleri arar.

Jupyter lab dosya düzenleyicisinde:

pipeline / pipeline.py hattı.py içinde, bu bileşenleri işlem hattınıza ekleyen satırların yorumunu kaldırın:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

(Şablon dosyaları kopyalandığında ExampleGen zaten etkindi.)

İşlem hattını güncelleyin ve yeniden çalıştırın

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Boru hattını kontrol edin

Kubeflow Orchestrator için KFP panosunu ziyaret edin ve işlem hattı çalıştırmanız için sayfada işlem hattı çıktılarını bulun. Soldaki "Deneyler" sekmesini ve Deneyler sayfasında "Tüm çalıştırmalar"ı tıklayın. İşlem hattınızın adıyla çalıştırmayı bulabilmelisiniz.

Daha gelişmiş örnek

Burada sunulan örnek, gerçekten yalnızca başlamanıza yöneliktir. Daha gelişmiş bir örnek için TensorFlow Data Validation Colab'a bakın.

Bir veri kümesini keşfetmek ve doğrulamak için TFDV'yi kullanma hakkında daha fazla bilgi için tensorflow.org'daki örneklere bakın .

9. Özellik mühendisliği

Özellik mühendisliği ile verilerinizin tahmine dayalı kalitesini artırabilir ve/veya boyutluluğu azaltabilirsiniz.

  • Özellik çaprazları
  • kelime dağarcığı
  • Gömmeler
  • PCA
  • kategorik kodlama

TFX kullanmanın faydalarından biri, dönüşüm kodunuzu bir kez yazmanız ve elde edilen dönüşümlerin eğitim ile hizmet arasında tutarlı olmasıdır.

Bileşenler

dönüştürmek

  • Transform , veri kümesinde özellik mühendisliği gerçekleştirir.

Jupyter lab dosya düzenleyicisinde:

pipeline / pipeline.py hattı.py içinde, boru hattına Dönüştür öğesinin eklendiği satırı bulun ve yorumunu kaldırın.

# components.append(transform)

İşlem hattını güncelleyin ve yeniden çalıştırın

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Boru hattı çıkışlarını kontrol edin

Kubeflow Orchestrator için KFP panosunu ziyaret edin ve işlem hattı çalıştırmanız için sayfada işlem hattı çıktılarını bulun. Soldaki "Deneyler" sekmesini ve Deneyler sayfasında "Tüm çalıştırmalar"ı tıklayın. İşlem hattınızın adıyla çalıştırmayı bulabilmelisiniz.

Daha gelişmiş örnek

Burada sunulan örnek, gerçekten yalnızca başlamanıza yöneliktir. Daha gelişmiş bir örnek için TensorFlow Transform Colab'a bakın.

10. Eğitim

Güzel, temiz, dönüştürülmüş verilerinizle bir TensorFlow modeli eğitin.

  • Tutarlı bir şekilde uygulanmaları için önceki adımdaki dönüşümleri dahil edin
  • Sonuçları üretim için SavedModel olarak kaydedin
  • TensorBoard kullanarak eğitim sürecini görselleştirin ve keşfedin
  • Ayrıca model performansının analizi için bir EvalSavedModel kaydedin

Bileşenler

  • Trainer , bir TensorFlow modelini eğitir.

Jupyter lab dosya düzenleyicisinde:

pipeline / pipeline.py içinde, Trainer'ı ardışık düzene ekleyen öğesini bulun ve yorumunu kaldırın:

# components.append(trainer)

İşlem hattını güncelleyin ve yeniden çalıştırın

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Boru hattı çıkışlarını kontrol edin

Kubeflow Orchestrator için KFP panosunu ziyaret edin ve işlem hattı çalıştırmanız için sayfada işlem hattı çıktılarını bulun. Soldaki "Deneyler" sekmesini ve Deneyler sayfasında "Tüm çalıştırmalar"ı tıklayın. İşlem hattınızın adıyla çalıştırmayı bulabilmelisiniz.

Daha gelişmiş örnek

Burada sunulan örnek, gerçekten yalnızca başlamanıza yöneliktir. Daha gelişmiş bir örnek için TensorBoard Eğitimine bakın.

11. Model performansını analiz etme

En üst düzey metriklerden daha fazlasını anlama.

  • Kullanıcılar yalnızca sorguları için model performansını deneyimler
  • Veri dilimlerindeki düşük performans, üst düzey metrikler tarafından gizlenebilir
  • Model adaleti önemlidir
  • Kullanıcıların veya verilerin temel alt kümeleri genellikle çok önemlidir ve küçük olabilir
    • Kritik ancak olağandışı koşullarda performans
    • Etkileyenler gibi önemli kitleler için performans
  • Halihazırda üretimde olan bir modeli değiştiriyorsanız, önce yenisinin daha iyi olduğundan emin olun.

Bileşenler

  • Değerlendirici , eğitim sonuçlarının derin analizini gerçekleştirir.

Jupyter lab dosya düzenleyicisinde:

pipeline / pipeline.py hattı.py içinde, Değerlendiriciyi boru hattına ekleyen satırı bulun ve yorumunu kaldırın:

components.append(evaluator)

İşlem hattını güncelleyin ve yeniden çalıştırın

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Boru hattı çıkışlarını kontrol edin

Kubeflow Orchestrator için KFP panosunu ziyaret edin ve işlem hattı çalıştırmanız için sayfada işlem hattı çıktılarını bulun. Soldaki "Deneyler" sekmesini ve Deneyler sayfasında "Tüm çalıştırmalar"ı tıklayın. İşlem hattınızın adıyla çalıştırmayı bulabilmelisiniz.

12. Modele hizmet etmek

Yeni model hazırsa, öyle yapın.

  • Pusher, SavedModel'leri iyi bilinen konumlara dağıtır

Dağıtım hedefleri, iyi bilinen konumlardan yeni modeller alır

  • TensorFlow Sunumu
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Merkezi

Bileşenler

  • Pusher , modeli hizmet veren bir altyapıya dağıtır.

Jupyter lab dosya düzenleyicisinde:

pipeline / pipeline.py hattı.py içinde, boru hattına İtici ekleyen satırı bulun ve yorumunu kaldırın:

# components.append(pusher)

Boru hattı çıkışlarını kontrol edin

Kubeflow Orchestrator için KFP panosunu ziyaret edin ve işlem hattı çalıştırmanız için sayfada işlem hattı çıktılarını bulun. Soldaki "Deneyler" sekmesini ve Deneyler sayfasında "Tüm çalıştırmalar"ı tıklayın. İşlem hattınızın adıyla çalıştırmayı bulabilmelisiniz.

Kullanılabilir dağıtım hedefleri

Artık modelinizi eğitip doğruladınız ve modeliniz artık üretime hazır. Artık modelinizi aşağıdakiler de dahil olmak üzere TensorFlow dağıtım hedeflerinden herhangi birine dağıtabilirsiniz:

  • Modelinize bir sunucu veya sunucu grubunda hizmet vermek ve REST ve/veya gRPC çıkarım isteklerini işlemek için TensorFlow Serving .
  • Modelinizi bir Android veya iOS yerel mobil uygulamasına veya bir Raspberry Pi, IoT veya mikro denetleyici uygulamasına dahil etmek için TensorFlow Lite .
  • Modelinizi bir web tarayıcısında veya Node.JS uygulamasında çalıştırmak için TensorFlow.js.

Daha gelişmiş örnekler

Yukarıda sunulan örnek, gerçekten yalnızca başlamanıza yöneliktir. Aşağıda, diğer Bulut hizmetleriyle entegrasyona ilişkin bazı örnekler verilmiştir.

Kubeflow Pipelines kaynak konuları

İş yükünüzün gereksinimlerine bağlı olarak Kubeflow Pipelines dağıtımınızın varsayılan yapılandırması ihtiyaçlarınızı karşılayabilir veya karşılamayabilir. KubeflowDagRunnerConfig çağrınızda pipeline_operator_funcs KubeflowDagRunnerConfig kullanarak kaynak yapılandırmalarınızı özelleştirebilirsiniz.

pipeline_operator_funcs , KubeflowDagRunner derlenen KFP ardışık düzen özelliğinde oluşturulan tüm ContainerOp örneklerini dönüştüren OpFunc öğelerinin bir listesidir.

Örneğin, belleği yapılandırmak için gereken bellek miktarını bildirmek için set_memory_request kullanabiliriz. Bunu yapmanın tipik bir yolu, set_memory_request için bir sarmalayıcı oluşturmak ve onu OpFunc boru hattı listesine eklemek için kullanmaktır:

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

Benzer kaynak yapılandırma işlevleri şunları içerir:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

BigQueryExampleGen deneyin

BigQuery , sunucusuz, yüksek düzeyde ölçeklenebilir ve uygun maliyetli bir bulut veri ambarıdır. BigQuery, TFX'te eğitim örnekleri için bir kaynak olarak kullanılabilir. Bu adımda, ardışık BigQueryExampleGen ekleyeceğiz.

Jupyter lab dosya düzenleyicisinde:

pipeline.py açmak için çift tıklayın . CsvExampleGen ve BigQueryExampleGen örneğini oluşturan satırın yorumunu kaldırın. Ayrıca create_pipeline işlevinin query bağımsız değişkenini açıklamayı kaldırmanız gerekir.

BigQuery için hangi GCP projesini kullanacağımızı belirtmemiz gerekiyor ve bu, bir ardışık düzen oluştururken --project içinde beam_pipeline_args ayarlanarak yapılır.

configs.py açmak için çift tıklayın . BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS ve BIG_QUERY_QUERY tanımını kaldırın. Bu dosyadaki proje kimliğini ve bölge değerini GCP projeniz için doğru değerlerle değiştirmelisiniz.

Dizini bir seviye yukarı değiştirin. Dosya listesinin üstündeki dizinin adına tıklayın. Dizinin adı, ardışık düzen adını değiştirmediyseniz, my_pipeline olan ardışık düzenin adıdır.

kubeflow_runner.py açmak için çift tıklayın . create_pipeline işlevi için query ve beam_pipeline_args olmak üzere iki bağımsız değişkeni kaldırın.

Artık işlem hattı, örnek kaynak olarak BigQuery'yi kullanmaya hazır. İşlem hattını önceki gibi güncelleyin ve 5. ve 6. adımda yaptığımız gibi yeni bir yürütme çalıştırması oluşturun.

İşlem hattını güncelleyin ve yeniden çalıştırın

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Dataflow'u deneyin

Birkaç TFX Bileşeni, veri paralel ardışık düzenleri uygulamak için Apache Beam'i kullanır ve bu, Google Cloud Dataflow kullanarak veri işleme iş yüklerini dağıtabileceğiniz anlamına gelir. Bu adımda, Kubeflow düzenleyicisini Dataflow'u Apache Beam için veri işleme arka ucu olarak kullanacak şekilde ayarlayacağız.

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

Dizini değiştirmek için pipeline düzene çift tıklayın ve configs.py açmak için çift tıklayın . GOOGLE_CLOUD_REGION ve DATAFLOW_BEAM_PIPELINE_ARGS tanımını kaldırın.

Dizini bir seviye yukarı değiştirin. Dosya listesinin üstündeki dizinin adına tıklayın. Dizinin adı, değiştirmediyseniz my_pipeline olan ardışık düzenin adıdır.

kubeflow_runner.py açmak için çift tıklayın . beam_pipeline_args . (Ayrıca 7. Adımda eklediğiniz mevcut beam_pipeline_args emin olun.)

İşlem hattını güncelleyin ve yeniden çalıştırın

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Dataflow işlerinizi Cloud Console'daki Dataflow'ta bulabilirsiniz.

KFP ile Cloud AI Platform Eğitimini ve Tahminini Deneyin

TFX, Eğitim ve Tahmin için Cloud AI Platform gibi çeşitli yönetilen GCP hizmetleriyle birlikte çalışır. Trainer bileşeninizi, makine öğrenimi modellerini eğitmek için yönetilen bir hizmet olan Cloud AI Platform Training'i kullanacak şekilde ayarlayabilirsiniz. Ayrıca, modeliniz oluşturulduğunda ve sunulmaya hazır olduğunda, modelinizi hizmet için Cloud AI Platform Prediction'a aktarabilirsiniz. Bu adımda Trainer ve Pusher bileşenimizi Cloud AI Platform hizmetlerini kullanacak şekilde ayarlayacağız.

Dosyaları düzenlemeden önce AI Platform Training & Prediction API'yi etkinleştirmeniz gerekebilir.

Dizini değiştirmek için pipeline düzene çift tıklayın ve configs.py açmak için çift tıklayın . GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS ve GCP_AI_PLATFORM_SERVING_ARGS tanımını kaldırın. Cloud AI Platform Training'de bir modeli eğitmek için özel olarak oluşturulmuş kapsayıcı imajımızı kullanacağız, bu nedenle masterConfig.imageUri içindeki GCP_AI_PLATFORM_TRAINING_ARGS yukarıdaki CUSTOM_TFX_IMAGE ile aynı değere ayarlamalıyız.

Dizini bir seviye yukarı değiştirin ve kubeflow_runner.py açmak için çift tıklayın . ai_platform_training_args ve ai_platform_serving_args .

İşlem hattını güncelleyin ve yeniden çalıştırın

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Eğitim işlerinizi Cloud AI Platform Jobs'ta bulabilirsiniz. Ardışık düzeniniz başarıyla tamamlandıysa modelinizi Cloud AI Platform Modelleri'nde bulabilirsiniz.

14. Kendi verilerinizi kullanın

Bu öğreticide, Chicago Taxi veri kümesini kullanarak bir model için bir işlem hattı oluşturdunuz. Şimdi kendi verilerinizi ardışık düzene koymayı deneyin. Verileriniz, Google Cloud Storage, BigQuery veya CSV dosyaları dahil olmak üzere, ardışık düzenin erişebildiği her yerde depolanabilir.

Verilerinizi barındırmak için işlem hattı tanımını değiştirmeniz gerekir.

Verileriniz dosyalarda saklanıyorsa

  1. DATA_PATH kubeflow_runner.py DATA_PATH içinde konumu belirterek değiştirin.

Verileriniz BigQuery'de depolanıyorsa

  1. BIG_QUERY_QUERY içindeki BIG_QUERY_QUERY'yi sorgu ifadenize göre değiştirin.
  2. models / feature.py dosyasına features.py ekleyin.
  3. Eğitim için girdi verilerini dönüştürmek için models / preprocessing.py değiştirin.
  4. ML modelinizi açıklamak için models / keras / model.py ve models / keras / constants.py değiştirin.

Eğitmen hakkında daha fazla bilgi edinin

Eğitim işlem hatları hakkında daha fazla ayrıntı için Eğitmen bileşeni kılavuzuna bakın.

Temizlemek

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ı tek tek temizleyebilirsiniz: - Google Bulut Depolama - Google Container Registry - Google Kubernetes Engine