Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Tutorial Aliran Udara TFX

Python PyPI

pengantar

Tutorial ini dirancang untuk memperkenalkan TensorFlow Extended (TFX) dan membantu Anda belajar membuat pipeline machine learning Anda sendiri. Ini berjalan secara lokal, dan menunjukkan integrasi dengan TFX dan TensorBoard serta interaksi dengan TFX di notebook Jupyter.

Anda akan mengikuti proses pengembangan ML pada umumnya, dimulai dengan memeriksa set data, dan berakhir dengan pipeline yang berfungsi lengkap. Anda akan mempelajari cara men-debug dan mengupdate pipeline Anda, serta mengukur performa.

Belajarlah lagi

Silakan lihat Panduan Pengguna TFX untuk mempelajari lebih lanjut.

Selangkah demi selangkah

Anda akan membuat pipeline secara bertahap dengan mengerjakan langkah demi langkah, mengikuti proses pengembangan ML yang umum. Berikut langkah-langkahnya:

  1. Siapkan lingkungan Anda
  2. Munculkan kerangka pipa awal
  3. Selami data Anda
  4. Rekayasa fitur
  5. Latihan
  6. Menganalisis kinerja model
  7. Siap produksi

Prasyarat

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

Paket yang dibutuhkan

Bergantung pada lingkungan Anda, Anda mungkin perlu menginstal beberapa paket:

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

Jika Anda menjalankan Python 3.6, Anda harus menginstal python3.6-dev:

sudo apt-get install python3.6-dev

Jika Anda menjalankan Python 3.7, Anda harus menginstal python3.7-dev:

sudo apt-get install python3.7-dev

Selain itu, jika sistem Anda memiliki versi GCC <7, Anda harus memperbarui GCC. Jika tidak, Anda akan melihat kesalahan saat menjalankan airflow webserver . Anda dapat memeriksa versi Anda saat ini dengan:

gcc --version

Jika Anda perlu memperbarui GCC, Anda dapat menjalankan ini:

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

Lingkungan MacOS

Jika Anda belum menginstal Python 3 dan git, Anda dapat menginstalnya menggunakan manajer paket Homebrew :

/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 terkadang mengalami masalah forking thread saat menjalankan Airflow, bergantung pada konfigurasinya. Untuk menghindari masalah tersebut, Anda harus mengedit ~/.bash_profile dan menambahkan baris berikut ke akhir file:

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

Materi tutorial

Kode untuk tutorial ini tersedia di: https://github.com/tensorflow/tfx/tree/master/tfx/examples/airflow_workshop

Kode diatur oleh langkah-langkah yang Anda kerjakan, jadi untuk setiap langkah Anda akan memiliki kode yang Anda perlukan dan petunjuk tentang apa yang harus dilakukan dengannya.

File tutorial menyertakan latihan dan solusi untuk latihan, jika Anda buntu.

Olahraga

  • taxi_pipeline.py
  • taxi_utils.py
  • taksi DAG

Larutan

  • taxi_pipeline_solution.py
  • taxi_utils_solution.py
  • taxi_solution DAG

Apa yang kamu lakukan

Anda sedang mempelajari cara membuat pipeline ML menggunakan TFX

  • Pipeline TFX sesuai saat Anda akan menerapkan aplikasi ML produksi
  • Pipeline TFX sesuai jika set data berukuran besar
  • Pipeline TFX sesuai jika konsistensi pelatihan / penayangan itu penting
  • Pipeline TFX sesuai jika manajemen versi untuk inferensi penting
  • Google menggunakan pipeline TFX untuk produksi ML

Anda mengikuti proses pengembangan ML pada umumnya

  • Menelan, memahami, dan membersihkan data kami
  • Rekayasa fitur
  • Latihan
  • Analisis kinerja model
  • Busa, bilas, ulangi
  • Siap produksi

Menambahkan kode untuk setiap langkah

Tutorial dirancang agar semua kode disertakan dalam file, tetapi semua kode untuk langkah 3-7 diberi komentar dan ditandai dengan komentar sebaris. Komentar sebaris mengidentifikasi langkah mana yang diterapkan baris kode. Misalnya, kode untuk langkah 3 ditandai dengan komentar # Step 3 .

Kode yang akan Anda tambahkan untuk setiap langkah biasanya dibagi menjadi 3 wilayah kode:

  • impor
  • Konfigurasi DAG
  • Daftar yang dikembalikan dari panggilan create_pipeline ()
  • Kode pendukung di taxi_utils.py

Saat Anda menjalani tutorial, Anda akan menghapus tanda komentar pada baris kode yang berlaku untuk langkah tutorial yang sedang Anda kerjakan. Itu akan menambahkan kode untuk langkah itu, dan memperbarui pipeline Anda. Saat Anda melakukannya, kami sangat menganjurkan Anda untuk meninjau kode yang tidak Anda komentari .

Set data Taksi Chicago

TaksiTaksi Chicago

Anda menggunakan kumpulan data Taxi Trips yang dirilis oleh Kota Chicago.

Anda dapat membaca lebih lanjut tentang kumpulan data di Google BigQuery . Jelajahi set data lengkap di UI BigQuery .

Tujuan Model - Klasifikasi biner

Akankah pelanggan memberi tip lebih atau kurang dari 20%?

Langkah 1: Siapkan lingkungan Anda

Skrip pengaturan ( setup_demo.sh ) menginstal TFX dan Airflow , dan mengkonfigurasi Airflow dengan cara yang membuatnya mudah digunakan untuk tutorial ini.

Di dalam cangkang:

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

Anda harus meninjau setup_demo.sh untuk melihat apa yang dilakukannya.

Langkah 2: Munculkan kerangka pipa awal

Halo Dunia

Di dalam cangkang:

# 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

Anda memulai notebook Jupyter pada langkah ini. Nanti Anda akan menjalankan notebook di folder ini.

Di browser:

  • Buka browser dan buka http://127.0.0.1:8080

Penyelesaian masalah

Jika Anda memiliki masalah dengan memuat konsol Airflow di browser web Anda, atau jika ada kesalahan saat menjalankan airflow webserver , maka Anda mungkin menjalankan aplikasi lain pada port 8080. Itu adalah port default untuk Airflow, tetapi Anda dapat mengubahnya ke port pengguna lain yang tidak digunakan. Misalnya, untuk menjalankan Airflow di port 7070, Anda dapat menjalankan:

airflow webserver -p 7070

Tombol tampilan DAG

Tombol DAG

  • Gunakan tombol di sebelah kiri untuk mengaktifkan DAG
  • Gunakan tombol di sebelah kanan untuk menyegarkan DAG saat Anda membuat perubahan
  • Gunakan tombol di sebelah kanan untuk memicu DAG
  • Klik taksi untuk menuju ke tampilan grafik DAG

Tombol refresh grafik

CLI aliran udara

Anda juga dapat menggunakan CLI Aliran Udara untuk mengaktifkan dan memicu DAG Anda:

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

# trigger
airflow trigger_dag <your DAG name>

Menunggu pipeline selesai

Setelah Anda memicu pipeline Anda dalam tampilan DAG, Anda dapat melihat pipeline Anda selesai diproses. Saat setiap komponen menjalankan warna garis besar komponen dalam grafik DAG akan berubah untuk menunjukkan statusnya. Ketika komponen selesai diproses, garis luar akan berubah menjadi hijau tua untuk menunjukkan bahwa itu sudah selesai.

Sejauh ini Anda hanya memiliki komponen CsvExampleGen di pipeline kami, jadi Anda harus menunggu hingga berubah menjadi hijau tua (~ 1 menit).

Penyiapan selesai

Langkah 3: Selami data Anda

Tugas pertama dalam ilmu data atau project ML adalah memahami dan membersihkan data.

  • Pahami tipe data untuk setiap fitur
  • Cari anomali dan nilai yang hilang
  • Pahami distribusi untuk setiap fitur

Komponen

Komponen DataKomponen Data

Di editor:

  • Di ~ / airflow / dags hapus komentar pada baris bertanda Step 3 di taxi_pipeline.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda hapus komentarnya

Di browser:

  • Kembali ke halaman daftar DAG di Airflow dengan mengklik link "DAG" di pojok kiri atas
  • Klik tombol segarkan di sisi kanan untuk taksi DAG
    • Anda akan melihat "DAG [taksi] sekarang segar seperti bunga aster"
  • Trigger taxi
  • Tunggu hingga pipeline selesai
    • Semua hijau tua
    • Gunakan refresh di sisi kanan atau segarkan halaman

Selami data

Kembali ke Jupyter:

Sebelumnya, Anda menjalankan jupyter notebook , yang membuka sesi Jupyter di tab browser. Sekarang kembali ke tab itu di browser Anda.

  • Buka step3.ipynb
  • Ikuti buku catatan

Selami data

Contoh yang lebih maju

Contoh yang disajikan di sini hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh lebih lanjut, lihat Colab Validasi Data TensorFlow .

Untuk informasi lebih lanjut tentang menggunakan TFDV untuk menjelajahi dan memvalidasi kumpulan data, lihat contoh di tensorflow.org .

Langkah 4: Rekayasa fitur

Anda dapat meningkatkan kualitas prediksi data Anda dan / atau mengurangi dimensi dengan rekayasa fitur.

  • Persilangan fitur
  • Kosakata
  • Embeddings
  • PCA
  • Pengkodean kategoris

Salah satu keuntungan menggunakan TFX adalah Anda akan menulis kode transformasi sekali, dan transformasi yang dihasilkan akan konsisten antara pelatihan dan penyajian.

Komponen

Mengubah

  • Transform melakukan rekayasa fitur pada set data.

Di editor:

  • Di ~ / airflow / dags hapus komentar pada baris bertanda Step 4 di taxi_pipeline.py dan taxi_utils.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda hapus komentarnya

Di browser:

  • Kembali ke halaman daftar DAG di Airflow
  • Klik tombol segarkan di sisi kanan untuk taksi DAG
    • Anda akan melihat "DAG [taksi] sekarang segar seperti bunga aster"
  • Trigger taxi
  • Tunggu hingga pipeline selesai
    • Semua hijau tua
    • Gunakan refresh di sisi kanan atau segarkan halaman

Rekayasa Fitur

Kembali ke Jupyter:

Kembali ke tab Jupyter di browser Anda.

  • Buka step4.ipynb
  • Ikuti buku catatan

Contoh yang lebih maju

Contoh yang disajikan di sini hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh lebih lanjut, lihat TensorFlow Transform Colab .

Langkah 5: Pelatihan

Latih model TensorFlow dengan data Anda yang bagus, bersih, dan telah diubah.

  • Sertakan transformasi dari langkah 4 agar diterapkan secara konsisten
  • Simpan hasil sebagai SavedModel untuk produksi
  • Visualisasikan dan jelajahi proses pelatihan menggunakan TensorBoard
  • Simpan juga EvalSavedModel untuk analisis kinerja model

Komponen

Di editor:

  • Di ~ / airflow / dags hapus komentar pada baris bertanda Step 5 di taxi_pipeline.py dan taxi_utils.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda hapus komentarnya

Di browser:

  • Kembali ke halaman daftar DAG di Airflow
  • Klik tombol segarkan di sisi kanan untuk taksi DAG
    • Anda akan melihat "DAG [taksi] sekarang segar seperti bunga aster"
  • Trigger taxi
  • Tunggu hingga pipeline selesai
    • Semua hijau tua
    • Gunakan refresh di sisi kanan atau segarkan halaman

Melatih Model

Kembali ke Jupyter:

Kembali ke tab Jupyter di browser Anda.

  • Buka step5.ipynb
  • Ikuti buku catatan

Melatih Model

Contoh yang lebih maju

Contoh yang disajikan di sini hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh lebih lanjut, lihat Tutorial TensorBoard .

Langkah 6: Menganalisis kinerja model

Memahami lebih dari sekedar metrik tingkat atas.

  • Pengguna mengalami kinerja model hanya untuk kueri mereka
  • Kinerja yang buruk pada potongan data dapat disembunyikan oleh metrik tingkat atas
  • Keadilan model itu penting
  • Seringkali subset utama dari pengguna atau data sangat penting, dan mungkin kecil
    • Performa dalam kondisi kritis tetapi tidak biasa
    • Performa untuk audiens utama seperti influencer
  • Jika Anda mengganti model yang saat ini dalam produksi, pertama-tama pastikan model yang baru lebih baik
  • Service Checker memberi tahu komponen Pendorong jika modelnya OK

Komponen

  • Service Checker melakukan analisis mendalam terhadap hasil pelatihan, dan memastikan bahwa model tersebut "cukup baik" untuk didorong ke produksi.

Di editor:

  • Di ~ / airflow / dags hapus komentar pada baris bertanda Step 6 di kedua taxi_pipeline.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda hapus komentarnya

Di browser:

  • Kembali ke halaman daftar DAG di Airflow
  • Klik tombol segarkan di sisi kanan untuk taksi DAG
    • Anda akan melihat "DAG [taksi] sekarang segar seperti bunga aster"
  • Trigger taxi
  • Tunggu hingga pipeline selesai
    • Semua hijau tua
    • Gunakan refresh di sisi kanan atau segarkan halaman

Menganalisis kinerja model

Kembali ke Jupyter:

Kembali ke tab Jupyter di browser Anda.

  • Buka step6.ipynb
  • Ikuti buku catatan

Menganalisis kinerja model

Contoh yang lebih maju

Contoh yang disajikan di sini hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh lebih lanjut lihat Tutorial TFMA Chicago Taxi .

Langkah 7: Siap untuk produksi

Jika model baru sudah siap, buatlah begitu.

  • Pusher menyebarkan SavedModels ke lokasi terkenal

Target penyebaran menerima model baru dari lokasi terkenal

  • Penyajian TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

Komponen

  • Pendorong menerapkan model ke infrastruktur layanan.

Di editor:

  • Di ~ / airflow / dags hapus komentar pada baris bertanda Step 7 di kedua taxi_pipeline.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda hapus komentarnya

Di browser:

  • Kembali ke halaman daftar DAG di Airflow
  • Klik tombol segarkan di sisi kanan untuk taksi DAG
    • Anda akan melihat "DAG [taksi] sekarang segar seperti bunga aster"
  • Trigger taxi
  • Tunggu hingga pipeline selesai
    • Semua hijau tua
    • Gunakan refresh di sisi kanan atau segarkan halaman

Siap produksi

Langkah selanjutnya

Anda sekarang telah melatih dan memvalidasi model Anda, dan mengekspor file SavedModel bawah direktori ~/airflow/saved_models/taxi . Model Anda sekarang siap untuk diproduksi. Anda sekarang dapat menerapkan model Anda ke salah satu target penerapan TensorFlow, termasuk:

  • Penyajian TensorFlow , untuk menyajikan model Anda di server atau server farm dan memproses permintaan inferensi REST dan / atau gRPC.
  • TensorFlow Lite , untuk menyertakan model Anda dalam aplikasi seluler asli Android atau iOS, atau dalam aplikasi Raspberry Pi, IoT, atau mikrokontroler.
  • TensorFlow.js , untuk menjalankan model Anda di browser web atau aplikasi Node.JS.