TFX Hava Akışı Eğitimi

genel bakış

genel bakış

Bu öğretici, orkestratör olarak TensorFlow Extended (TFX) ve Apache Airflow'u kullanarak kendi makine öğrenimi ardışık düzenlerinizi oluşturmayı öğrenmenize yardımcı olmak için tasarlanmıştır. Vertex AI Workbench üzerinde çalışır ve bir Jupyter Lab 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üzeni oluşturmayı öğreneceksiniz.

  • TFX boru hattı, Yönlendirilmiş Asiklik Grafik veya "DAG" dir. İşlem hatlarını genellikle DAG'ler olarak adlandırırız.
  • Bir üretim makine öğrenimi uygulamasını dağıtacağınız zaman TFX işlem hatları uygundur
  • TFX ardışık düzenleri, veri kümeleri büyük olduğunda uygundur veya büyüyerek büyüyebilir
  • Eğitim/sunum tutarlılığının önemli olduğu durumlarda TFX ardışık düzenleri uygundur
  • Çıkarım için sürüm yönetimi önemli olduğunda TFX işlem hatları uygundur
  • Google, üretim makine öğrenimi için TFX ardışık düzenlerini kullanır

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

Pipeline Orchestration için Apache Airflow

TFX düzenleyicileri, işlem hattı tarafından tanımlanan bağımlılıklara dayalı olarak TFX işlem hattının bileşenlerini planlamaktan sorumludur. TFX, birden çok ortama ve düzenleme çerçevesine taşınabilir olacak şekilde tasarlanmıştır. TFX tarafından desteklenen varsayılan düzenleyicilerden biri Apache Airflow'tur . Bu laboratuvar, TFX boru hattı düzenlemesi 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 olmayan grafikleri (DAG'ler) olarak yazmak için Airflow'u kullanır. Zengin kullanıcı arabirimi, üretimde çalışan ardışık düzenleri 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 ardışık düzeni çalıştıracağız.

TFX tarafından desteklenen diğer varsayılan düzenleyiciler, Apache Beam ve Kubeflow'dur. 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 böyle bir ışın çalıştırıcıdır. Apache Beam, hem akış hem de toplu işlem ardışık düzenleri için kullanılabilir.
Kubeflow , Kubernetes üzerinde 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ümelerinde dağıtılmaları gerektiğinde TFFX ardışık düzenleri için bir orkestratör olarak kullanılabilir. Ayrıca, bir TFX ardışık düzeni çalıştırmak için kendi özel orkestratörünüzü de kullanabilirsiniz.

Airflow hakkında daha fazlasını buradan okuyun.

Chicago Taksi Veri Kümesi

taksi.jpg

şikago.png

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

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

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

Google Cloud Projesini Kurun

Laboratuvarı Başlat düğmesini tıklamadan önce Bu talimatları okuyun. Laboratuvarlar zamanlanır ve onları 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 simülasyon veya demo ortamında değil, gerçek bir bulut ortamında yapmanızı sağlar. Bunu, laboratuvar süresince oturum açmak ve Google Cloud'a erişmek için kullandığınız yeni, geçici kimlik bilgilerini vererek yapar.

Neye ihtiyacınız var? Bu laboratuvarı tamamlamak için şunlara ihtiyacınız var:

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

Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma 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. Solda, bu laboratuvar için kullanmanız gereken geçici kimlik bilgilerinin bulunduğu bir panel bulunur.

qwiksetup1.png

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

qwiksetup2.png

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

qwiksetup3.png

  1. Oturum aç sayfasında, sol panelden kopyaladığınız kullanıcı adını yapıştırın. Ardından şifreyi kopyalayıp yapıştırın.
  1. Sonraki sayfaları 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 denemeler için 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 dolu bir sanal makinedir. Kalıcı bir 5 GB ana dizini sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.

Cloud Console'da, sağ üstteki 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 olarak ayarlanmıştır. Örneğin:

qwiksetup7.png

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

Etkin hesap adını şu komutla listeleyebilirsiniz:

gcloud auth list

(Çıktı)

ETKİN: * HESAP: student-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 (Çıktı)

[çekirdek] proje =

(Örnek çıktı)

[temel] proje = qwiklabs-gcp-44776a13dea667a6

gcloud'un tam belgeleri için gcloud komut satırı aracına genel bakış bölümüne bakın.

Google Cloud hizmetlerini etkinleştir

  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ğıtın

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

vertex-ai-workbench.png

  1. Defter örnekleri sayfasında, Yeni Not Defteri seçeneğine tıklayın.

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

vertex-notebook-create-2.png

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

  2. Örnek adı için ö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çinde bir bölge 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ılanlarıyla bırakın ve Oluştur'u tıklayın.

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

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

ortamı kur

Laboratuvar deposunu klonlayın

Ardından, JupyterLab örneğinizdeki tfx deposunu klonlayacaksınız. 1. JupyterLab'da yeni bir terminal açmak için Terminal simgesine tıklayın.

Not: İstenirse, Oluşturma Önerilir 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ı doğrulamak için tfx dizinine çift tıklayın ve içeriğini görebildiğinizi onaylayın.

repo-dizin.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ğıdakini çalıştırın, ardından laboratuvar bağımlılıklarını yüklemek için ./setup_demo.sh çalıştırın:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

Yukarıdaki kod olacak

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

hava akımı-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> gidin ve emin olun proje adı uygun şekilde seçilir
  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. Name için airflow-tfx .
  2. Öncelik için 1 seçin.
  3. Hedefler 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 airflow users create komutunu çalıştırın:

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

Ardından, 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/Ardışık Düzen Ç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 parolayı( admin ) girin.

hava akımı-login.png

Airflow, Python kaynak dosyalarından DAG'leri yükler. Her dosyayı alır ve yürütür. Ardından, bu dosyadan tüm DAG nesnelerini yükler. DAG nesnelerini tanımlayan tüm .py dosyaları, airflow ana sayfasında işlem hatları olarak listelenecektir.

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

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

dag-home-full.png

Taksiye tıklarsanız, DAG'ın ızgara görünümüne yönlendirileceksiniz. DAG'ın grafik görünümünü elde etmek için üstteki Graph seçeneğine tıklayabilirsiniz.

hava akışı-dag-graph.png

Taksi boru hattını tetikleyin

Ana sayfada, DAG ile etkileşime geçmek için kullanılabilecek düğmeleri görebilirsiniz.

dag-buttons.png

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

Taksi DAG sayfasında, boru hattı çalışırken DAG'nin 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 ve değiştiğinde 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'ler görünümünde işlem hattınızın çalışırken ilerlemesini izleyebilirsiniz. Her bileşen çalışırken DAG grafiğindeki bileşenin dış hat rengi, durumunu gösterecek şekilde değişecektir. Bir bileşenin işlenmesi bittiğinde, dış hat, bittiğini göstermek için koyu yeşile döner.

dag-step7.png

bileşenleri anlama

Şimdi bu boru hattının bileşenlerine detaylı 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/ adresine gidin.

  2. notebook.ipynb'yi açın. notebook-ipynb.png

  3. Not defterinde laboratuvara devam edin ve Çalıştır'a ( Çalıştır) tıklayarak her hücreyi çalıştırın. run-button.png ) simgesi ekranın üst kısmında. Alternatif olarak, kodu SHIFT + ENTER ile bir hücrede çalıştırabilirsiniz.

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