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
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.
- 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.
İpucu: Sekmeleri yan yana ayrı pencerelerde açın.
- 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.
- Sonraki sayfaları tıklayın:
- Ş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.
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.
Devam'ı tıklayın.
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:
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
- 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
- Gezinme Menüsüne tıklayın ve Vertex AI'ye , ardından Workbench'e gidin.
Defter örnekleri sayfasında, Yeni Not Defteri seçeneğine tıklayın.
Ö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.
Yeni not defteri örneği iletişim kutusunda, örnek özelliklerini düzenlemek için kalem simgesini tıklayın.
Örnek adı için örneğiniz için bir ad girin.
Bölge için
us-east1
seçin ve Bölge için seçilen bölge içinde bir bölge seçin.Makine yapılandırmasına ilerleyin ve Makine türü için e2-standart-2'yi seçin.
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 .
- 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.
Cancel
tıklayın.
-
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
- Depoyu klonladığınızı doğrulamak için
tfx
dizinine çift tıklayın ve içeriğini görebildiğinizi onaylayın.
Laboratuvar bağımlılıklarını yükleyin
-
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.
Airflow sunucusunu yapılandırma
Tarayıcıda hava akışı sunucusuna erişmek için güvenlik duvarı kuralı oluşturun
-
<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 - Üstte
CREATE FIREWALL RULE
seçeneğine tıklayın
Güvenlik duvarı oluştur iletişim kutusunda aşağıda listelenen adımları izleyin.
- Name için
airflow-tfx
. - Öncelik için
1
seçin. - Hedefler
All instances in the network
seçin. - Kaynak IPv4 aralıkları için
0.0.0.0/0
seçin - Protokoller ve bağlantı noktaları için
tcp
tıklayın vetcp
yanındaki kutuya7000
girin -
Create
tıklayın.
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
- Cloud Shell'de Harici IP'yi almak için
gcloud
kullanın.
gcloud compute instances list
DAG/Ardışık Düzen Çalıştırma
bir tarayıcıda
Bir tarayıcı açın ve http:// adresine gidin.
- 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.
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:
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.
Taksi boru hattını tetikleyin
Ana sayfada, DAG ile etkileşime geçmek için kullanılabilecek düğmeleri görebilirsiniz.
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'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.
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.
JupyterLab'da
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
adresine gidin.notebook.ipynb'yi açın.
Not defterinde laboratuvara devam edin ve Çalıştır'a ( Çalıştır) tıklayarak her hücreyi çalıştırın.
) 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.