Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

TFX Hava Akışı Eğitimi

Python PyPI

Giriş

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

Veri kümesini inceleyerek başlayarak tipik bir makine öğrenimi geliştirme sürecini takip edecek ve sonunda eksiksiz bir çalışma ardışık düzeni elde edeceksiniz. Yol boyunca ardışık düzeninizde hata ayıklama ve güncelleme yollarını keşfedecek ve performansı ölçeceksiniz.

Daha fazla bilgi edin

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

Adım adım

Tipik bir ML geliştirme sürecini izleyerek adım adım çalışarak aşamalı olarak ardışık düzeninizi oluşturacaksınız. İşte adımlar:

  1. Ortamınızı ayarlayın
  2. İlk boru hattı iskeletini getirin
  3. Verilerinize dalın
  4. Özellik mühendisliği
  5. Eğitim
  6. Model performansını analiz etme
  7. Üretime hazır

Önkoşullar

  • Linux / MacOS
  • Virtualenv
  • Python 3.5+
  • Git

Gerekli paketler

Ortamınıza bağlı olarak birkaç paket kurmanız gerekebilir:

sudo apt-get install \
    build-essential libssl-dev libffi-dev \
    libxml2-dev libxslt1-dev zlib1g-dev \
    python3-pip git software-properties-common

Python 3.6 kullanıyorsanız, python3.6-dev yüklemelisiniz:

sudo apt-get install python3.6-dev

Python 3.7 çalıştırıyorsanız python3.7-dev yüklemelisiniz:

sudo apt-get install python3.7-dev

Ek olarak, sisteminizin GCC sürümü <7 ise, GCC'yi güncellemelisiniz. Aksi takdirde, airflow webserver çalıştırırken hatalar görürsünüz. Mevcut sürümünüzü şununla kontrol edebilirsiniz:

gcc --version

GCC'yi güncellemeniz gerekiyorsa, şunu çalıştırabilirsiniz:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-7
sudo apt install g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7

MacOS Ortamı

Python 3 ve git zaten kurulu değilse, bunları Homebrew paket yöneticisini kullanarak kurabilirsiniz:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
brew update
brew install python
brew install git

MacOS, yapılandırmaya bağlı olarak Airflow'u çalıştırırken bazen iş parçacığı çatallama sorunları yaşar. Bu sorunları önlemek için ~/.bash_profile dosyanızı düzenlemeli ve aşağıdaki satırı dosyanın sonuna eklemelisiniz:

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

Eğitim malzemeleri

Bu eğiticinin kodu şu adreste mevcuttur: https://github.com/tensorflow/tfx/tree/master/tfx/examples/airflow_workshop

Kod, üzerinde çalıştığınız adımlara göre düzenlenmiştir, bu nedenle her adım için ihtiyacınız olan koda ve onunla ne yapılacağına dair talimatlara sahip olacaksınız.

Eğitim dosyaları, takılıp kalmanız durumunda hem bir egzersizi hem de alıştırmanın çözümünü içerir.

Egzersiz yapmak

  • taxi_pipeline.py
  • taxi_utils.py
  • taksi DAG

Çözüm

  • taxi_pipeline_solution.py
  • taxi_utils_solution.py
  • taxi_solution DAG

Ne yapıyorsun

TFX kullanarak bir ML ardışık düzeni oluşturmayı öğreniyorsunuz

  • TFX ardışık düzenleri, bir üretim ML uygulamasını dağıtacağınız zaman uygundur
  • Veri kümeleri büyük olduğunda TFX ardışık düzenleri uygundur
  • Eğitim / hizmet tutarlılığı önemli olduğunda TFX ardışık düzenleri uygundur
  • Çıkarım için sürüm yönetimi önemli olduğunda TFX ardışık düzenleri uygundur
  • Google, üretim ML'si için TFX ardışık düzenlerini kullanır

Tipik bir makine öğrenimi geliştirme sürecini takip ediyorsunuz

  • Verilerimizi almak, anlamak ve temizlemek
  • Özellik mühendisliği
  • Eğitim
  • Model performansını analiz edin
  • Köpürtün, durulayın, tekrarlayın
  • Üretime hazır

Her adım için kod ekleme

Öğretici, tüm kodun dosyalara dahil edilmesi, ancak 3-7. Adımların tüm kodlarının yorumlanması ve satır içi yorumlarla işaretlenmesi için tasarlanmıştır. Satır içi yorumlar, kod satırının hangi adıma uygulandığını tanımlar. Örneğin, 3. adımın kodu 3. # Step 3 açıklamasıyla işaretlenmiştir.

Her adım için ekleyeceğiniz kod, genellikle kodun 3 bölgesine düşer:

  • ithal
  • DAG yapılandırması
  • Create_pipeline () çağrısından dönen liste
  • Taxi_utils.py içindeki destekleyici kod

Öğreticide ilerlerken, şu anda üzerinde çalışmakta olduğunuz öğretici adım için geçerli olan kod satırlarının açıklamasını kaldıracaksınız. Bu, o adımın kodunu ekleyecek ve ardışık düzeninizi güncelleyecektir. Bunu yaparken, yorumlamadığınız kodu incelemenizi şiddetle tavsiye ederiz .

Chicago Taksi Veri Kümesi

TaksiChicago taksi

Chicago Şehri tarafından yayınlanan Taxi Trips veri kümesini kullanıyorsunuz.

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

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

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

1. Adım: Ortamınızı kurun

Kurulum komut dosyası ( setup_demo.sh ) Tfx ve yükler Hava Akımının ve bu eğitim için çalışmak kolay hale getirir bir şekilde hava akışı yapılandırır.

Bir kabukta:

cd
virtualenv -p python3 tfx-env
source ~/tfx-env/bin/activate

git clone https://github.com/tensorflow/tfx.git
cd ~/tfx
# These instructions are specific to the 0.21 release
git checkout -f origin/r0.21
cd ~/tfx/tfx/examples/airflow_workshop/setup
./setup_demo.sh

Ne yaptığını görmek için setup_demo.sh incelemelisiniz.

2. Adım: İlk boru hattı iskeletini oluşturun

Selam Dünya

Bir kabukta:

# Open a new terminal window, and in that window ...
source ~/tfx-env/bin/activate
airflow webserver -p 8080

# Open another new terminal window, and in that window ...
source ~/tfx-env/bin/activate
airflow scheduler

# Open yet another new terminal window, and in that window ...
# Assuming that you've cloned the TFX repo into ~/tfx
source ~/tfx-env/bin/activate
cd ~/tfx/tfx/examples/airflow_workshop/notebooks
jupyter notebook

Jupyter not defterini bu adımda başlattınız. Daha sonra bu klasördeki not defterlerini çalıştıracaksınız.

Bir tarayıcıda:

  • Bir tarayıcı açın ve http://127.0.0.1:8080 adresine gidin.

Sorun giderme

Airflow konsolunu web tarayıcınıza yüklemeyle ilgili herhangi bir sorununuz varsa veya airflow webserver çalıştırdığınızda herhangi bir hata varsa, 8080 numaralı bağlantı noktasında çalışan başka bir uygulamanız olabilir. Bu, Airflow için varsayılan bağlantı noktasıdır, ancak bunu değiştirebilirsiniz. kullanılmayan diğer herhangi bir kullanıcı bağlantı noktasına. Örneğin, Airflow'u 7070 numaralı bağlantı noktasında çalıştırmak için şunları çalıştırabilirsiniz:

airflow webserver -p 7070

DAG görünümü düğmeleri

DAG düğmeleri

  • DAG'yi etkinleştirmek için soldaki düğmeyi kullanın
  • Değişiklik yaptığınızda DAG'yi yenilemek için sağdaki düğmeyi kullanın
  • DAG'yi tetiklemek için sağdaki düğmeyi kullanın
  • DAG'nin grafik görünümüne gitmek için taksiye tıklayın

Grafik yenileme düğmesi

Hava akışı CLI

DAG'lerinizi etkinleştirmek ve tetiklemek için 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ını bekliyorum

DAG'ler görünümünde ardışık düzeninizi tetikledikten sonra, ardışık düzeninizin işlemeyi tamamladığını izleyebilirsiniz. Her bileşen çalıştıkça, DAG grafiğindeki bileşenin anahat rengi durumunu göstermek için değişecektir. Bir bileşen işlemeyi bitirdiğinde, tamamlandığını göstermek için anahat koyu yeşile döner.

Şimdiye kadar boru hattımızda yalnızca CsvExampleGen bileşenine sahipsiniz, bu nedenle koyu yeşile dönmesini beklemeniz gerekir (~ 1 dakika).

Kurulum tamamlandı

3. Adım: Verilerinize dalın

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

  • Her özelliğ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

Bir editörde:

  • ~ / Airflow / dags içinde taxi_pipeline.py içinde Step 3 işaretli satırların açıklamasını taxi_pipeline.py
  • Yorumlamadığınız kodu gözden geçirmek için bir dakikanızı ayırın

Bir tarayıcıda:

  • Sol üst köşedeki "DAG'ler" bağlantısını tıklayarak Airflow'daki DAG listesi sayfasına dönün
  • Taksi DAG'si için sağ taraftaki yenile düğmesine tıklayın
    • "DAG [taksi] artık papatya kadar taze" görmelisiniz
  • Tetik taksi
  • Boru hattının tamamlanmasını bekleyin
    • Tüm koyu yeşil
    • Sağ tarafta yenilemeyi kullanın veya sayfayı yenileyin

Verilere dalın

Jupyter'e geri dönelim:

Daha önce, bir tarayıcı sekmesinde bir Jupyter oturumu açan jupyter notebook çalıştırdınız. Şimdi tarayıcınızda o sekmeye dönün.

  • Step3.ipynb dosyasını açın
  • Not defterini takip edin

Verilere dalın

Daha gelişmiş bir örnek

Burada sunulan örnek gerçekten sadece başlamanıza yöneliktir. Daha gelişmiş bir örnek için TensorFlow Data Validation Colab'e 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 .

Adım 4: Özellik mühendisliği

Özellik mühendisliği ile verilerinizin tahmin kalitesini artırabilir ve / veya boyutsallığı azaltabilirsiniz.

  • Özellik geçişleri
  • Kelime dağarcığı
  • Gömme
  • PCA
  • Kategorik kodlama

TFX kullanmanın faydalarından biri, dönüşüm kodunuzu bir kez yazmanız ve sonuçta ortaya çıkan dönüşümlerin eğitim ve sunum arasında tutarlı olmasıdır.

Bileşenler

Dönüştürme

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

Bir editörde:

  • ~ / Airflow / dags içinde, hem taxi_pipeline.py hem de taxi_pipeline.py içinde Step 4 işaretli satırların taxi_pipeline.py taxi_utils.py
  • Yorumlamadığınız kodu gözden geçirmek için bir dakikanızı ayırın

Bir tarayıcıda:

  • Airflow'daki DAG'ler listesi sayfasına dön
  • Taksi DAG'si için sağ taraftaki yenile düğmesine tıklayın
    • "DAG [taksi] artık papatya kadar taze" görmelisiniz
  • Tetik taksi
  • Boru hattının tamamlanmasını bekleyin
    • Tüm koyu yeşil
    • Sağ tarafta yenilemeyi kullanın veya sayfayı yenileyin

Özellik Mühendisliği

Jupyter'e geri dönelim:

Tarayıcınızdaki Jupyter sekmesine geri dönün.

  • Step4.ipynb dosyasını açın
  • Not defterini takip edin

Daha gelişmiş örnek

Burada sunulan örnek gerçekten sadece başlamanıza yöneliktir. Daha gelişmiş bir örnek için bkz. TensorFlow Transform Colab .

Adım 5: Eğitim

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

  • Tutarlı bir şekilde uygulanmaları için 4. 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

Bir editörde:

  • ~ / Airflow / dags içinde, hem taxi_pipeline.py hem de taxi_pipeline.py içinde Step 5 işaretli satırların taxi_pipeline.py taxi_utils.py
  • Yorumlamadığınız kodu gözden geçirmek için bir dakikanızı ayırın

Bir tarayıcıda:

  • Airflow'daki DAG'ler listesi sayfasına dön
  • Taksi DAG'si için sağ taraftaki yenile düğmesine tıklayın
    • "DAG [taksi] artık papatya kadar taze" görmelisiniz
  • Tetik taksi
  • Boru hattının tamamlanmasını bekleyin
    • Tüm koyu yeşil
    • Sağ tarafta yenilemeyi kullanın veya sayfayı yenileyin

Bir Modeli Eğitmek

Jupyter'e geri dönelim:

Tarayıcınızdaki Jupyter sekmesine geri dönün.

  • Step5.ipynb dosyasını açın
  • Not defterini takip edin

Bir Modeli Eğitmek

Daha gelişmiş örnek

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

Adım 6: Model performansını analiz etme

Üst düzey ölçümlerden daha fazlasını anlamak.

  • Kullanıcılar yalnızca sorguları için model performansı yaşarlar
  • Veri dilimlerinde düşük performans, üst düzey ölçümlerle gizlenebilir
  • Model adaleti önemlidir
  • Genellikle kullanıcı veya verilerin temel alt kümeleri çok önemlidir ve küçük olabilir
    • Kritik ancak olağandışı koşullarda performans
    • Etkileyenler gibi kilit kitleler için performans
  • Şu anda üretimde olan bir modeli değiştiriyorsanız, önce yenisinin daha iyi olduğundan emin olun
  • Değerlendirici, İtici bileşenine modelin iyi olup olmadığını söyler

Bileşenler

  • Değerlendirici , eğitim sonuçlarının derinlemesine analizini gerçekleştirir ve modelin üretime aktarılacak kadar "yeterince iyi" olmasını sağlar.

Bir editörde:

  • ~ / Airflow / dags içinde, hem taxi_pipeline.py içinde Step 6 işaretli satırların açıklamasını taxi_pipeline.py
  • Yorumlamadığınız kodu gözden geçirmek için bir dakikanızı ayırın

Bir tarayıcıda:

  • Airflow'daki DAG'ler listesi sayfasına dön
  • Taksi DAG'si için sağ taraftaki yenile düğmesine tıklayın
    • "DAG [taksi] artık papatya kadar taze" görmelisiniz
  • Tetik taksi
  • Boru hattının tamamlanmasını bekleyin
    • Tüm koyu yeşil
    • Sağ tarafta yenilemeyi kullanın veya sayfayı yenileyin

Model performansını analiz etme

Jupyter'e geri dönelim:

Tarayıcınızdaki Jupyter sekmesine geri dönün.

  • Step6.ipynb dosyasını açın
  • Not defterini takip edin

Model performansını analiz etme

Daha gelişmiş örnek

Burada sunulan örnek gerçekten sadece başlamanıza yöneliktir. Daha gelişmiş bir örnek için TFMA Chicago Taksi Eğitimi'ne bakın .

7. Adım: Üretime hazır

Yeni model hazırsa, hazırlayın.

  • Pusher, SavedModels'i iyi bilinen konumlara dağıtır

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

  • TensorFlow Sunumu
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

Bileşenler

  • İtici , modeli bir hizmet altyapısına dağıtır.

Bir editörde:

  • ~ / Airflow / dags içinde, hem taxi_pipeline.py içinde Step 7 işaretli satırların açıklamasını taxi_pipeline.py
  • Yorumlamadığınız kodu gözden geçirmek için bir dakikanızı ayırın

Bir tarayıcıda:

  • Airflow'daki DAG'ler listesi sayfasına dön
  • Taksi DAG'si için sağ taraftaki yenile düğmesine tıklayın
    • "DAG [taksi] artık papatya kadar taze" görmelisiniz
  • Tetik taksi
  • Boru hattının tamamlanmasını bekleyin
    • Tüm koyu yeşil
    • Sağ tarafta yenilemeyi kullanın veya sayfayı yenileyin

üretim için hazır

Sonraki adımlar

Şimdi modelinizi SavedModel ve ~/airflow/saved_models/taxi dizini altına bir SavedModel dosyası ~/airflow/saved_models/taxi . Modeliniz artık üretime hazır. Artık modelinizi aşağıdakiler dahil TensorFlow dağıtım hedeflerinden herhangi birine dağıtabilirsiniz:

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