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
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.
- 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.
İpucu: Sekmeleri ayrı pencerelerde yan yana açın.
- 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.
- Sonraki sayfalara 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 denemelere kaydolmayın.
Birkaç dakika sonra bu sekmede Bulut Konsolu açılır.
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.
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'nize ayarlanmıştır. Örneğin:
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
- 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
- Gezinme Menüsüne tıklayın ve Vertex AI'ye , ardından Workbench'e gidin.
Not Defteri örnekleri sayfasında Yeni Not Defteri'ne tıklayın.
Ö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.
Yeni not defteri örneği iletişim kutusunda, örnek özelliklerini düzenlemek için kalem simgesine tıklayın.
Örnek adı alanına ö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çindeki bir bölgeyi seçin.Makine yapılandırması'na ilerleyin ve Makine türü için e2-standart-2'yi seçin.
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.
- 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.
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ı onaylamak 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ğı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.
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>
adresine gidin ve emin olun proje adı uygun şekilde seçilmiştir - Ü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.
- Ad yerine
airflow-tfx
yazın. - Öncelik için
1
seçin. - Hedefler için
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 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
- Cloud Shell'de Harici IP'yi almak için
gcloud
kullanın.
gcloud compute instances list
DAG/Boru Hattını Ç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 şifreyi (admin
) girin.
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:
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.
Taksi boru hattını tetikleyin
Ana sayfada DAG ile etkileşimde bulunmak için kullanılabilecek düğmeleri görebilirsiniz.
İş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'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.
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.
JupyterLab'da
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
Notebook.ipynb'yi açın.
Laboratuvara not defterinde devam edin ve Çalıştır ( ) 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.