TFX Hava Akışı Eğitimi

Genel Bakış

Genel Bakış

Bu eğitim, TensorFlow Extended (TFX) ve Apache Airflow'u orkestratör olarak kullanarak kendi makine öğrenimi işlem hatlarınızı oluşturmayı öğrenmenize yardımcı olmak için tasarlanmıştır. Vertex AI Workbench üzerinde çalışır ve Jupyter Laboratuvar ortamında TFX ve TensorBoard ile entegrasyonun yanı sıra TFX ile etkileşimi gösterir.

Ne yapacaksın?

TFX kullanarak makine öğrenimi ardışık düzeninin nasıl oluşturulacağını öğreneceksiniz

  • Bir TFX boru hattı Yönlendirilmiş Döngüsel Olmayan Grafik veya "DAG"dır. Boru hatlarından sıklıkla DAG'ler olarak söz edeceğiz.
  • Bir üretim makine öğrenimi uygulaması dağıtacağınız zaman TFX ardışık düzenleri uygundur
  • TFX işlem hatları, veri kümeleri büyük olduğunda veya büyüyüp büyüyebileceği durumlarda uygundur
  • TFX işlem hatları, eğitim/sunum tutarlılığının önemli olduğu durumlarda uygundur
  • Çıkarım için sürüm yönetiminin önemli olduğu durumlarda TFX işlem hatları uygundur
  • Google, üretim makine öğrenimi için TFX ardışık düzenlerini kullanıyor

Daha fazla bilgi edinmek için lütfen TFX Kullanım Kılavuzuna bakın.

Tipik bir makine öğrenimi geliştirme sürecini izleyeceksiniz:

  • Verilerimizi alma, anlama ve temizleme
  • Özellik mühendisliği
  • Eğitim
  • Model performansını analiz etme
  • Köpürtün, durulayın, tekrarlayın
  • Üretime hazır

Boru Hattı Düzenlemesi için Apache Hava Akışı

TFX orkestratörleri, işlem hattı tarafından tanımlanan bağımlılıklara göre TFX işlem hattının bileşenlerini planlamaktan sorumludur. TFX, birden fazla ortama ve düzenleme çerçevesine taşınabilir olacak şekilde tasarlanmıştır. TFX tarafından desteklenen varsayılan orkestratörlerden biri Apache Airflow'tur . Bu laboratuvar, TFX işlem hattı orkestrasyonu için Apache Airflow'un kullanımını göstermektedir. Apache Airflow, iş akışlarını programlı olarak yazmak, planlamak ve izlemek için kullanılan bir platformdur. TFX, iş akışlarını görevlerin yönlendirilmiş döngüsel grafikleri (DAG'ler) olarak yazmak için Airflow'u kullanır. Zengin kullanıcı arayüzü, üretimde çalışan işlem hatlarını görselleştirmeyi, ilerlemeyi izlemeyi ve gerektiğinde sorunları gidermeyi kolaylaştırır. Apache Airflow iş akışları kod olarak tanımlanır. Bu onları daha sürdürülebilir, versiyonlanabilir, test edilebilir ve işbirlikçi hale getirir. Apache Airflow, toplu işleme ardışık düzenleri için uygundur. Hafiftir ve öğrenmesi kolaydır.

Bu örnekte, Airflow'u manuel olarak ayarlayarak bir bulut sunucusu üzerinde bir TFX işlem hattı çalıştıracağız.

TFX tarafından desteklenen diğer varsayılan orkestratörler Apache Beam ve Kubeflow'tur. Apache Beam, birden fazla veri işleme arka ucunda (Beam Ruunners) çalışabilir. Cloud Dataflow, TFX ardışık düzenlerini çalıştırmak için kullanılabilecek ışın çalıştırıcılardan biridir. Apache Beam hem akış hem de toplu işleme ardışık düzenleri için kullanılabilir.
Kubeflow, Kubernetes'te makine öğrenimi (ML) iş akışlarının dağıtımlarını basit, taşınabilir ve ölçeklenebilir hale getirmeye adanmış açık kaynaklı bir makine öğrenimi platformudur. Kubeflow, Kubernetes kümelerine dağıtılması gerektiğinde TFFX işlem hatları için orkestratör olarak kullanılabilir. Ayrıca, bir TFX işlem hattını çalıştırmak için kendi özel orkestratörünüzü de kullanabilirsiniz.

Hava akışı hakkında daha fazla bilgiyi burada bulabilirsiniz.

Chicago Taksi Veri Kümesi

taksi.jpg

chicago.png

Chicago Şehri tarafından yayınlanan Taxi Trips veri setini kullanacaksınız.

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

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

Google Cloud Projesini Kurun

Laboratuvarı Başlat düğmesini tıklamadan önce Bu talimatları okuyun. Laboratuvarların süresi vardır ve bunları duraklatamazsınız. Laboratuvarı Başlat 'ı tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne kadar süreyle kullanımınıza sunulacağını gösterir.

Bu uygulamalı laboratuvar, laboratuvar etkinliklerini bir simülasyon veya demo ortamında değil, gerçek bir bulut ortamında kendiniz yapmanıza olanak tanır. Bunu, laboratuvar süresince oturum açmak ve Google Cloud'a erişmek için kullanacağınız yeni, geçici kimlik bilgilerini vererek yapar.

Bu laboratuvarı tamamlamak için şunlara ihtiyacınız vardır:

  • Standart bir internet tarayıcısına erişim (Chrome tarayıcısı önerilir).
  • Laboratuvarı tamamlama zamanı.

Laboratuvarınızı nasıl başlatabilir ve Google Cloud Console'da oturum açabilirsiniz 1. Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yönteminizi seçmeniz için bir açılır pencere açılır. Sol tarafta, bu laboratuvar için kullanmanız gereken geçici kimlik bilgilerinin bulunduğu bir panel bulunmaktadır.

qwiksetup1.png

  1. Kullanıcı adını kopyalayın ve ardından Google Konsolunu Aç 'ı tıklayın. Laboratuvar kaynakları başlatır ve ardından Oturum açma sayfasını gösteren başka bir sekme açar.

qwiksetup2.png

İpucu: Sekmeleri ayrı pencerelerde yan yana açın.

qwiksetup3.png

  1. Oturum aç sayfasında, sol panelden kopyaladığınız kullanıcı adını yapıştırın. Daha sonra şifreyi kopyalayıp yapıştırın.
  1. Sonraki sayfalara tıklayın:
  2. Şartlar ve koşulları kabul edin.
  • Kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin (çünkü bu geçici bir hesaptır).

  • Ücretsiz denemelere kaydolmayın.

Birkaç dakika sonra bu sekmede Bulut Konsolu açılır.

qwiksetup4.png

Cloud Shell'i etkinleştirin

Cloud Shell, geliştirme araçlarıyla yüklü bir sanal makinedir. Kalıcı 5 GB'lık bir ana dizin sunar ve Google Cloud'da çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.

Cloud Console'da, sağ üst araç çubuğunda Cloud Shell'i Etkinleştir düğmesini tıklayın.

qwiksetup5.png

Devam'ı tıklayın.

qwiksetup6.png

Ortamın sağlanması ve ortama bağlanması birkaç dakika sürer. Bağlandığınızda, zaten kimliğiniz doğrulanmıştır ve proje, _PROJECT ID'nize ayarlanmıştır. Örneğin:

qwiksetup7.png

gcloud , Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiş olarak gelir ve sekme tamamlamayı destekler.

Aktif hesap adını bu komutla listeleyebilirsiniz:

gcloud auth list

(Çıkış)

AKTİF: * HESAP: öğrenci-01-xxxxxxxxxxxx@qwiklabs.net Etkin hesabı ayarlamak için şunu çalıştırın: $ gcloud config set account ACCOUNT

Proje kimliğini şu komutla listeleyebilirsiniz: gcloud config list project (Output)

[çekirdek] proje =

(Örnek çıktı)

[çekirdek] proje = qwiklabs-gcp-44776a13dea667a6

Gcloud'un tam dokümantasyonu için gcloud komut satırı aracına genel bakış sayfasına bakın.

Google Cloud hizmetlerini etkinleştirin

  1. Cloud Shell'de laboratuvarda kullanılan hizmetleri etkinleştirmek için gcloud'u kullanın. gcloud services enable notebooks.googleapis.com

Vertex Notebook örneğini dağıtma

  1. Gezinme Menüsüne tıklayın ve Vertex AI'ye , ardından Workbench'e gidin.

vertex-ai-workbench.png

  1. Not Defteri örnekleri sayfasında Yeni Not Defteri'ne tıklayın.

  2. Örneği özelleştir menüsünde TensorFlow Enterprise'ı seçin ve TensorFlow Enterprise 2.x sürümünü (LTS ile) > GPU'suz'u seçin.

vertex-notebook-oluşturma-2.png

  1. Yeni not defteri örneği iletişim kutusunda, örnek özelliklerini düzenlemek için kalem simgesine tıklayın.

  2. Örnek adı alanına örneğiniz için bir ad girin.

  3. Bölge için us-east1 seçin ve Bölge için seçilen bölge içindeki bir bölgeyi seçin.

  4. Makine yapılandırması'na ilerleyin ve Makine türü için e2-standart-2'yi seçin.

  5. Kalan alanları varsayılan değerlerinde bırakın ve Oluştur'a tıklayın.

Birkaç dakika sonra Vertex AI konsolu örnek adınızı ve ardından Open Jupyterlab'ı görüntüleyecektir.

  1. JupyterLab'ı Aç'a tıklayın. Yeni bir sekmede bir JupyterLab penceresi açılacaktır.

Ortamı ayarlayın

Laboratuvar deposunu klonlayın

Daha sonra JupyterLab örneğinizde tfx deposunu klonlayacaksınız. 1. JupyterLab'da yeni bir terminal açmak için Terminal simgesine tıklayın.

Not: İstenirse Derleme Önerilen için Cancel tıklayın.

  1. tfx Github deposunu klonlamak için aşağıdaki komutu yazın ve Enter tuşuna basın.
git clone https://github.com/tensorflow/tfx.git
  1. Depoyu klonladığınızı onaylamak için tfx dizinine çift tıklayın ve içeriğini görebildiğinizi onaylayın.

repo-dizini.png

Laboratuvar bağımlılıklarını yükleyin

  1. tfx/tfx/examples/airflow_workshop/taxi/setup/ klasörüne gitmek için aşağıdakileri çalıştırın, ardından laboratuvar bağımlılıklarını yüklemek için ./setup_demo.sh dosyasını çalıştırın:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

Yukarıdaki kod

  • Gerekli paketleri yükleyin.
  • Ana klasörde bir airflow klasörü oluşturun.
  • dags klasörünü tfx/tfx/examples/airflow_workshop/taxi/setup/ klasöründen ~/airflow/ klasörüne kopyalayın.
  • CSV dosyasını tfx/tfx/examples/airflow_workshop/taxi/setup/data konumundan ~/airflow/data konumuna kopyalayın.

hava akışı-ev.png

Airflow sunucusunu yapılandırma

Tarayıcıda hava akışı sunucusuna erişmek için güvenlik duvarı kuralı oluşturun

  1. <a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a> adresine gidin ve emin olun proje adı uygun şekilde seçilmiştir
  2. Üstte CREATE FIREWALL RULE seçeneğine tıklayın

güvenlik duvarı kuralı.png

Güvenlik duvarı oluştur iletişim kutusunda aşağıda listelenen adımları izleyin.

  1. Ad yerine airflow-tfx yazın.
  2. Öncelik için 1 seçin.
  3. Hedefler için All instances in the network seçin.
  4. Kaynak IPv4 aralıkları için 0.0.0.0/0 seçin
  5. Protokoller ve bağlantı noktaları için tcp tıklayın ve tcp yanındaki kutuya 7000 girin
  6. Create tıklayın.

create-firewall-dialog.png

Hava akışı sunucusunu kabuğunuzdan çalıştırın

Jupyter Lab Terminal penceresinde, ana dizine geçin, Airflow için bir yönetici kullanıcı oluşturmak üzere airflow users create komutunu çalıştırın:

cd
airflow users  create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin

Daha sonra sunucuyu çalıştırmak için airflow webserver ve airflow scheduler komutunu çalıştırın. Güvenlik duvarı üzerinden izin verildiği için 7000 bağlantı noktasını seçin.

nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &

Harici IP'nizi alın

  1. Cloud Shell'de Harici IP'yi almak için gcloud kullanın.
gcloud compute instances list

gcloud-örneği-ip.png

DAG/Boru Hattını Çalıştırma

Bir tarayıcıda

Bir tarayıcı açın ve http:// adresine gidin. :7000

  • Oturum açma sayfasında, airflow users create komutunu çalıştırırken seçtiğiniz kullanıcı adını ( admin ) ve şifreyi ( admin ) girin.

hava akışı-login.png

Airflow, Python kaynak dosyalarından DAG'leri yükler. Her dosyayı alır ve çalıştırır. Daha sonra bu dosyadaki tüm DAG nesnelerini yükler. DAG nesnelerini tanımlayan tüm .py dosyaları, hava akışı ana sayfasında boru hatları olarak listelenecektir.

Bu öğreticide Airflow, ~/airflow/dags/ klasörünü DAG nesneleri için tarar.

~/airflow/dags/taxi_pipeline.py açıp aşağıya doğru kaydırırsanız, bunun bir DAG nesnesi oluşturduğunu ve DAG adlı bir değişkende sakladığını görebilirsiniz. Bu nedenle, aşağıda gösterildiği gibi hava akışı ana sayfasında bir boru hattı olarak listelenecektir:

dag-ev-dolu.png

Taksiye tıkladığınızda DAG'ın grid görünümüne yönlendirileceksiniz. DAG'ın grafik görünümünü almak için üstteki Graph seçeneğine tıklayabilirsiniz.

hava akışı-dag-graph.png

Taksi boru hattını tetikleyin

Ana sayfada DAG ile etkileşimde bulunmak için kullanılabilecek düğmeleri görebilirsiniz.

dag-buttons.png

İşlem başlığının altında, işlem hattını tetiklemek için tetikleme düğmesine tıklayın.

Taksi DAG sayfasında, işlem hattı çalışırken DAG'ın grafik görünümünün durumunu yenilemek için sağdaki düğmeyi kullanın. Ek olarak, Airflow'a durum değiştikçe grafik görünümünü otomatik olarak yenilemesi talimatını vermek için Otomatik Yenilemeyi etkinleştirebilirsiniz.

dag-button-refresh.png

DAG'lerinizi etkinleştirmek ve tetiklemek için terminaldeki Airflow CLI'yi de kullanabilirsiniz:

# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>

# trigger
airflow trigger_dag <your DAG name>

Boru hattının tamamlanması bekleniyor

İşlem hattınızı tetikledikten sonra DAG görünümünde işlem hattınızın ilerlemesini çalışırken izleyebilirsiniz. Her bileşen çalışırken, DAG grafiğindeki bileşenin anahat rengi, durumunu gösterecek şekilde değişecektir. Bir bileşenin işlenmesi tamamlandığında, ana hat işlemin tamamlandığını göstermek için koyu yeşile dönecektir.

dag-step7.png

Bileşenleri anlamak

Şimdi bu boru hattının bileşenlerine ayrıntılı olarak bakacağız ve boru hattındaki her adımın ürettiği çıktılara ayrı ayrı bakacağız.

  1. JupyterLab'da ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/

  2. Notebook.ipynb'yi açın. defter-ipynb.png

  3. Laboratuvara not defterinde devam edin ve Çalıştır ( run-button.png ) ekranın üst kısmındaki simge. Alternatif olarak, kodu SHIFT + ENTER tuşlarıyla bir hücrede çalıştırabilirsiniz.

Anlatımı okuyun ve her hücrede neler olduğunu anladığınızdan emin olun.