Bergabunglah dengan kami di DevFest untuk Ukraina 14-15 Juni Daftar Online sekarang

Tutorial Aliran Udara TFX

PythonPyPI

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 biasa, dimulai dengan memeriksa set data, dan berakhir dengan alur kerja yang lengkap. Sepanjang jalan Anda akan menjelajahi cara untuk men-debug dan memperbarui saluran Anda, dan mengukur kinerja.

Belajarlah lagi

Silakan lihat TFX Panduan Pengguna untuk mempelajari lebih lanjut.

Selangkah demi selangkah

Anda akan secara bertahap membuat saluran dengan bekerja selangkah demi selangkah, mengikuti proses pengembangan ML biasa. Berikut langkah-langkahnya:

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

Prasyarat

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

Paket yang diperlukan

Tergantung 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 tidak memiliki Python 3 dan git sudah terinstal, Anda dapat menginstal mereka menggunakan Homebrew manajer paket:

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

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

bahan tutorial

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

Kode diatur menurut langkah-langkah yang sedang Anda kerjakan, jadi untuk setiap langkah Anda akan memiliki kode yang Anda butuhkan dan petunjuk tentang apa yang harus dilakukan dengan kode itu.

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 saluran ML menggunakan TFX

  • Pipeline TFX sesuai saat Anda akan men-deploy aplikasi ML produksi
  • Pipeline TFX sesuai ketika kumpulan data berukuran besar
  • Pipeline TFX sesuai ketika konsistensi pelatihan/penyajian penting
  • Pipa TFX sesuai ketika manajemen versi untuk inferensi penting
  • Google menggunakan saluran TFX untuk produksi ML

Anda mengikuti proses pengembangan ML biasa

  • Menelan, memahami, dan membersihkan data kami
  • Rekayasa fitur
  • Pelatihan
  • 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 dikomentari dan ditandai dengan komentar sebaris. Komentar sebaris mengidentifikasi langkah mana yang diterapkan oleh baris kode. Sebagai contoh, kode untuk langkah 3 ditandai dengan komentar # Step 3 .

Kode yang akan Anda tambahkan untuk setiap langkah biasanya terbagi dalam 3 wilayah kode:

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

Saat Anda melalui tutorial, Anda akan menghapus komentar pada baris kode yang berlaku untuk langkah tutorial yang sedang Anda kerjakan. Itu akan menambahkan kode untuk langkah itu, dan memperbarui saluran Anda. Ketika Anda melakukan itu kami sangat mendorong Anda untuk meninjau kode yang Anda sedang uncommenting.

Kumpulan Data Taksi Chicago

TaksiTaksi Chicago

Anda menggunakan Taxi Trips dataset yang dirilis oleh City of Chicago.

Anda dapat membaca lebih lanjut tentang dataset di Google BigQuery . Jelajahi dataset penuh di BigQuery UI .

Sasaran Model - Klasifikasi biner

Akankah tip pelanggan lebih atau kurang dari 20%?

Langkah 1: Siapkan lingkungan Anda

Script setup ( setup_demo.sh ) menginstal TFX dan aliran udara , dan mengkonfigurasi aliran udara dengan cara yang membuatnya mudah untuk bekerja dengan untuk tutorial ini.

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

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 peramban:

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

Penyelesaian masalah

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

airflow webserver -p 7070

Tombol tampilan DAG

tombol DAG

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

Tombol refresh grafik

CLI aliran udara

Anda juga dapat menggunakan Airflow CLI untuk mengaktifkan dan memicu DAGs Anda:

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

# trigger
airflow trigger_dag <your DAG name>

Menunggu pipa selesai

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

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

Penyiapan selesai

Langkah 3: Selami data Anda

Tugas pertama dalam ilmu data atau proyek 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

  • ExampleGen ingests dan membagi dataset masukan.
  • StatisticsGen menghitung statistik untuk dataset.
  • SchemaGen SchemaGen meneliti statistik dan menciptakan skema data.
  • ExampleValidator mencari anomali dan nilai-nilai yang hilang dalam dataset.

Dalam editor:

  • Di ~ / aliran udara / dags tanda komentar pada baris ditandai Step 3 di taxi_pipeline.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda batalkan komentarnya

Di peramban:

  • Kembali ke halaman daftar DAG di Airflow dengan mengklik tautan "DAG" di sudut kiri atas
  • Klik tombol segarkan di sisi kanan untuk taksi DAG
    • Anda akan melihat "DAG [taksi] sekarang segar seperti bunga aster"
  • Taksi pemicu
  • Tunggu hingga pipa selesai
    • hijau tua semua
    • Gunakan segarkan di sisi kanan atau segarkan halaman

Menyelam ke dalam data

Kembali ke Jupyter:

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

  • Buka langkah3.ipynb
  • Ikuti buku catatannya

Menyelam ke dalam data

Contoh lebih lanjut

Contoh yang disajikan di sini benar-benar hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh yang lebih canggih melihat TensorFlow Validasi Data CoLab .

Untuk informasi lebih lanjut tentang menggunakan TFDV untuk mengeksplorasi dan memvalidasi dataset, lihat contoh di tensorflow.org .

Langkah 4: Rekayasa fitur

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

  • Persilangan fitur
  • Kosakata
  • Penyematan
  • PCA
  • Pengkodean kategoris

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

Komponen

Mengubah

  • Transform Melakukan rekayasa fitur pada dataset.

Dalam editor:

  • Di ~ / aliran udara / dags tanda komentar pada baris ditandai Step 4 di kedua taxi_pipeline.py dan taxi_utils.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda batalkan komentarnya

Di peramban:

  • 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"
  • Taksi pemicu
  • Tunggu hingga pipa selesai
    • hijau tua semua
    • Gunakan segarkan di sisi kanan atau segarkan halaman

Rekayasa Fitur

Kembali ke Jupyter:

Kembali ke tab Jupyter di browser Anda.

  • Buka langkah4.ipynb
  • Ikuti buku catatannya

Contoh lebih lanjut

Contoh yang disajikan di sini benar-benar hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh yang lebih canggih melihat TensorFlow Transform CoLab .

Langkah 5: Pelatihan

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

  • Sertakan transformasi dari langkah 4 sehingga diterapkan secara konsisten
  • Simpan hasilnya sebagai Model Tersimpan untuk produksi
  • Visualisasikan dan jelajahi proses pelatihan menggunakan TensorBoard
  • Juga simpan EvalSavedModel untuk analisis kinerja model

Komponen

Dalam editor:

  • Di ~ / aliran udara / dags tanda komentar pada baris ditandai Step 5 di kedua taxi_pipeline.py dan taxi_utils.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda batalkan komentarnya

Di peramban:

  • 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"
  • Taksi pemicu
  • Tunggu hingga pipa selesai
    • hijau tua semua
    • Gunakan segarkan di sisi kanan atau segarkan halaman

Melatih Model

Kembali ke Jupyter:

Kembali ke tab Jupyter di browser Anda.

  • Buka langkah5.ipynb
  • Ikuti buku catatannya

Melatih Model

Contoh lebih lanjut

Contoh yang disajikan di sini benar-benar hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh yang lebih canggih melihat TensorBoard Tutorial .

Langkah 6: Menganalisis kinerja model

Memahami lebih dari sekadar metrik tingkat atas.

  • Pengguna mengalami kinerja model hanya untuk kueri mereka
  • Performa buruk pada irisan data dapat disembunyikan oleh metrik tingkat atas
  • Keadilan model itu penting
  • Seringkali bagian kunci 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 sedang dalam produksi, pastikan dulu yang baru lebih baik
  • Evaluator memberi tahu komponen Pusher jika modelnya OK

Komponen

  • Evaluator melakukan analisis mendalam dari hasil pelatihan, dan memastikan bahwa model adalah "cukup baik" untuk mendorong produksi.

Dalam editor:

  • Di ~ / aliran udara / dags tanda komentar pada baris ditandai Step 6 di kedua taxi_pipeline.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda batalkan komentarnya

Di peramban:

  • 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"
  • Taksi pemicu
  • Tunggu hingga pipa selesai
    • hijau tua semua
    • Gunakan segarkan di sisi kanan atau segarkan halaman

Menganalisis kinerja model

Kembali ke Jupyter:

Kembali ke tab Jupyter di browser Anda.

  • Buka langkah6.ipynb
  • Ikuti buku catatannya

Menganalisis kinerja model

Contoh lebih lanjut

Contoh yang disajikan di sini benar-benar hanya dimaksudkan untuk membantu Anda memulai. Untuk contoh yang lebih canggih melihat TFMA Chicago Taxi Tutorial .

Langkah 7: Siap untuk produksi

Jika model baru sudah siap, buatlah.

  • Pusher menyebarkan SavedModels ke lokasi terkenal

Target penerapan menerima model baru dari lokasi terkenal

  • Penyajian TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • Pusat TensorFlow

Komponen

  • Pusher menyebarkan model untuk infrastruktur melayani.

Dalam editor:

  • Di ~ / aliran udara / dags tanda komentar pada baris ditandai Step 7 di kedua taxi_pipeline.py
  • Luangkan waktu sejenak untuk meninjau kode yang Anda batalkan komentarnya

Di peramban:

  • 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"
  • Taksi pemicu
  • Tunggu hingga pipa selesai
    • hijau tua semua
    • Gunakan segarkan di sisi kanan atau segarkan halaman

Siap produksi

Langkah selanjutnya

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

  • TensorFlow Melayani , untuk melayani model Anda pada server atau server farm dan pengolahan REST dan / atau permintaan inferensi gRPC.
  • TensorFlow Lite , untuk termasuk model Anda dalam aplikasi mobile Android atau iOS asli, atau dalam Raspberry Pi, IOT, atau aplikasi mikrokontroler.
  • TensorFlow.js , untuk menjalankan model Anda di web browser atau aplikasi Node.js.