Ringkasan
Ringkasan
Tutorial ini dirancang untuk membantu Anda belajar membuat pipeline machine learning Anda sendiri menggunakan TensorFlow Extended (TFX) dan Apache Airflow sebagai orkestra. Ini berjalan di Vertex AI Workbench, dan menunjukkan integrasi dengan TFX dan TensorBoard serta interaksi dengan TFX di lingkungan Jupyter Lab.
Apa yang akan kamu lakukan?
Anda akan mempelajari cara membuat pipeline ML menggunakan TFX
- Pipeline TFX adalah Directed Acyclic Graph, atau "DAG". Kami akan sering menyebut saluran pipa sebagai DAG.
- Pipeline TFX sesuai saat Anda akan menerapkan aplikasi ML produksi
- Pipeline TFX sesuai jika kumpulan data berukuran besar, atau mungkin tumbuh menjadi besar
- Pipeline TFX cocok jika konsistensi pelatihan/penayangan penting
- Pipeline TFX sesuai jika manajemen versi untuk inferensi penting
- Google menggunakan pipeline TFX untuk ML produksi
Silakan lihat Panduan Pengguna TFX untuk mempelajari lebih lanjut.
Anda akan mengikuti proses pengembangan ML yang khas:
- Menelan, memahami, dan membersihkan data kami
- Rekayasa fitur
- Pelatihan
- Menganalisis kinerja model
- Busa, bilas, ulangi
- Siap untuk produksi
Apache Airflow untuk Orkestrasi Pipa
Orkestrator TFX bertanggung jawab untuk menjadwalkan komponen pipa TFX berdasarkan dependensi yang ditentukan oleh pipa. TFX dirancang agar portabel untuk berbagai lingkungan dan kerangka kerja orkestrasi. Salah satu orkestra default yang didukung oleh TFX adalah Apache Airflow . Lab ini mengilustrasikan penggunaan Apache Airflow untuk orkestrasi pipeline TFX. Apache Airflow adalah platform untuk menulis, menjadwalkan, dan memantau alur kerja secara terprogram. TFX menggunakan Airflow untuk membuat alur kerja sebagai grafik asiklik terarah (DAG) tugas. Antarmuka pengguna yang kaya memudahkan untuk memvisualisasikan pipeline yang berjalan dalam produksi, memantau progres, dan memecahkan masalah bila diperlukan. Alur kerja Apache Airflow didefinisikan sebagai kode. Ini membuatnya lebih mudah dipelihara, dapat dibuat versinya, dapat diuji, dan kolaboratif. Apache Airflow cocok untuk pipa pemrosesan batch. Ini ringan dan mudah dipelajari.
Dalam contoh ini, kita akan menjalankan pipeline TFX pada instans dengan mengatur Airflow secara manual.
Orkestrator default lainnya yang didukung oleh TFX adalah Apache Beam dan Kubeflow. Apache Beam dapat berjalan di beberapa backend pemrosesan data (Beam Ruunners). Cloud Dataflow adalah salah satu beam runner yang dapat digunakan untuk menjalankan pipeline TFX. Apache Beam dapat digunakan untuk pipeline streaming dan pemrosesan batch.
Kubeflow adalah platform ML open source yang didedikasikan untuk membuat penerapan alur kerja machine learning (ML) di Kubernetes menjadi sederhana, portabel, dan dapat diskalakan. Kubeflow dapat digunakan sebagai orkestra untuk pipeline TFFX saat perlu diterapkan di kluster Kubernetes. Selain itu, Anda juga dapat menggunakan orkestra khusus Anda sendiri untuk menjalankan jalur pipa TFX.
Baca lebih lanjut tentang Aliran Udara di sini .
Kumpulan Data Taksi Chicago
Anda akan menggunakan kumpulan data Perjalanan Taksi yang dirilis oleh Kota Chicago.
Tujuan Model - Klasifikasi biner
Akankah pelanggan memberi tip lebih atau kurang dari 20%?
Siapkan Proyek Google Cloud
Sebelum Anda mengklik tombol Mulai Lab Baca petunjuk ini. Lab diatur waktunya dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengeklik Mulai Lab , menunjukkan berapa lama sumber daya Google Cloud akan tersedia untuk Anda.
Lab praktis ini memungkinkan Anda melakukan aktivitas lab sendiri di lingkungan cloud nyata, bukan di lingkungan simulasi atau demo. Itu dilakukan dengan memberi Anda kredensial sementara baru yang Anda gunakan untuk masuk dan mengakses Google Cloud selama durasi lab.
Apa yang Anda butuhkan Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
- Saatnya menyelesaikan lab.
Cara memulai lab dan masuk ke Google Cloud Console 1. Klik tombol Mulai Lab . Jika Anda perlu membayar lab, pop-up akan terbuka untuk Anda memilih metode pembayaran. Di sebelah kiri adalah panel berisi kredensial sementara yang harus Anda gunakan untuk lab ini.
- Salin nama pengguna, lalu klik Buka Google Console . Lab menjalankan sumber daya, lalu membuka tab lain yang menampilkan halaman Masuk .
Tips: Buka tab di jendela terpisah, berdampingan.
- Di halaman Masuk , rekatkan nama pengguna yang Anda salin dari panel kiri. Kemudian salin dan tempel kata sandi.
- Klik melalui halaman-halaman berikutnya:
- Terima syarat dan ketentuan.
Jangan tambahkan opsi pemulihan atau autentikasi dua faktor (karena ini adalah akun sementara).
Jangan mendaftar untuk uji coba gratis.
Setelah beberapa saat, Cloud Console akan terbuka di tab ini.
Aktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dimuat dengan alat pengembangan. Ini menawarkan direktori home 5GB yang persisten dan berjalan di Google Cloud. Cloud Shell memberikan akses command line ke resource Google Cloud Anda.
Di Cloud Console, di toolbar kanan atas, klik tombol Aktifkan Cloud Shell .
Klik Lanjutkan .
Diperlukan beberapa saat untuk menyediakan dan terhubung ke lingkungan. Saat Anda terhubung, Anda sudah diautentikasi, dan proyek diatur ke _PROJECT ID Anda. Sebagai contoh:
gcloud
adalah alat baris perintah untuk Google Cloud. Sudah diinstal sebelumnya di Cloud Shell dan mendukung penyelesaian tab.
Anda dapat mencantumkan nama akun aktif dengan perintah ini:
gcloud auth list
(Keluaran)
AKTIF: * AKUN: student-01-xxxxxxxxxxxx@qwiklabs.net Untuk mengatur akun aktif, jalankan: $ gcloud config set account
ACCOUNT
Anda dapat mencantumkan ID proyek dengan perintah ini: gcloud config list project
(Output)
proyek [inti] =
(Contoh keluaran)
proyek [inti] = qwiklabs-gcp-44776a13dea667a6
Untuk dokumentasi lengkap tentang gcloud, lihat ikhtisar alat baris perintah gcloud .
Aktifkan layanan Google Cloud
- Di Cloud Shell, gunakan gcloud untuk mengaktifkan layanan yang digunakan di lab.
gcloud services enable notebooks.googleapis.com
Menerapkan instance Vertex Notebook
- Klik Menu Navigasi dan arahkan ke Vertex AI , lalu ke Workbench .
Pada halaman instans Notebook, klik New Notebook .
Di menu Sesuaikan instans, pilih TensorFlow Enterprise dan pilih versi TensorFlow Enterprise 2.x (dengan LTS) > Tanpa GPU .
Dalam dialog Instans buku catatan baru , klik ikon pensil untuk Mengedit properti instans.
Untuk Nama instans , masukkan nama instans Anda.
Untuk Region , pilih
us-east1
dan untuk Zone , pilih zona dalam region yang dipilih.Gulir ke bawah ke Konfigurasi mesin dan pilih e2-standard-2 untuk Jenis mesin.
Biarkan kolom yang tersisa dengan defaultnya dan klik Create .
Setelah beberapa menit, konsol Vertex AI akan menampilkan nama instans Anda, diikuti oleh Open Jupyterlab .
- Klik Buka JupyterLab . Jendela JupyterLab akan terbuka di tab baru.
Siapkan lingkungan
Kloning repositori lab
Selanjutnya Anda akan mengkloning repositori tfx
di instance JupyterLab Anda. 1. Di JupyterLab, klik ikon Terminal untuk membuka terminal baru.
Cancel
for Build Recommended.
- Untuk mengkloning repositori
tfx
Github, ketikkan perintah berikut, dan tekan Enter .
git clone https://github.com/tensorflow/tfx.git
- Untuk mengonfirmasi bahwa Anda telah mengkloning repositori, klik dua kali direktori
tfx
dan konfirmasikan bahwa Anda dapat melihat isinya.
Instal dependensi lab
- Jalankan perintah berikut untuk membuka
tfx/tfx/examples/airflow_workshop/taxi/setup/
, lalu jalankan./setup_demo.sh
untuk menginstal dependensi lab:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh
Kode di atas akan
- Instal paket yang diperlukan.
- Buat folder
airflow
di folder rumah. - Salin folder
dags
dari foldertfx/tfx/examples/airflow_workshop/taxi/setup/
ke folder~/airflow/
. - Salin file csv dari
tfx/tfx/examples/airflow_workshop/taxi/setup/data
ke~/airflow/data
.
Mengkonfigurasi server Airflow
Buat aturan firewall untuk mengakses server aliran udara di browser
- Buka
<a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a>
dan pastikan nama proyek dipilih dengan tepat - Klik opsi
CREATE FIREWALL RULE
di atas
Dalam dialog Buat firewall , ikuti langkah-langkah yang tercantum di bawah ini.
- Untuk Name , masukkan
airflow-tfx
. - Untuk Prioritas , pilih
1
. - Untuk Target , pilih
All instances in the network
. - Untuk rentang IPv4 Sumber , pilih
0.0.0.0/0
- Untuk Protocols and ports , klik
tcp
dan masukkan7000
di kotak di sebelahtcp
- Klik
Create
.
Jalankan server aliran udara dari shell Anda
Di jendela Terminal Lab Jupyter, ubah ke direktori home, jalankan perintah airflow users create
untuk membuat pengguna admin untuk Airflow:
cd
airflow users create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin
Kemudian jalankan perintah airflow webserver
dan airflow scheduler
untuk menjalankan server. Pilih port 7000
karena diizinkan melalui firewall.
nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &
Dapatkan ip eksternal Anda
- Di Cloud Shell, gunakan
gcloud
untuk mendapatkan IP Eksternal.
gcloud compute instances list
Menjalankan DAG/Pipeline
Di peramban
Buka browser dan buka http://
- Di halaman login, masukkan nama pengguna (
admin
) dan kata sandi (admin
) yang Anda pilih saat menjalankan perintahairflow users create
.
Aliran udara memuat DAG dari file sumber Python. Dibutuhkan setiap file dan mengeksekusinya. Kemudian memuat objek DAG apa pun dari file itu. Semua file .py
yang menentukan objek DAG akan dicantumkan sebagai saluran pipa di beranda aliran udara.
Dalam tutorial ini, Airflow memindai folder ~/airflow/dags/
untuk objek DAG.
Jika Anda membuka ~/airflow/dags/taxi_pipeline.py
dan menggulir ke bawah, Anda dapat melihat bahwa itu membuat dan menyimpan objek DAG dalam variabel bernama DAG
. Oleh karena itu akan terdaftar sebagai saluran pipa di beranda aliran udara seperti yang ditunjukkan di bawah ini:
Jika Anda mengklik taksi, Anda akan dialihkan ke tampilan kisi DAG. Anda dapat mengklik opsi Graph
di atas untuk mendapatkan tampilan grafik DAG.
Memicu pipa taksi
Di beranda Anda dapat melihat tombol yang dapat digunakan untuk berinteraksi dengan DAG.
Di bawah tajuk tindakan , klik tombol pemicu untuk memicu saluran pipa.
Di halaman taxi DAG , gunakan tombol di sebelah kanan untuk me-refresh status tampilan grafik DAG saat pipeline berjalan. Selain itu, Anda dapat mengaktifkan Auto Refresh untuk menginstruksikan Airflow untuk menyegarkan tampilan grafik secara otomatis saat dan saat status berubah.
Anda juga dapat menggunakan CLI Airflow di terminal 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 pipa selesai
Setelah Anda memicu alur Anda, dalam tampilan DAG, Anda dapat melihat progres alur Anda saat sedang berjalan. Saat setiap komponen berjalan, warna kerangka komponen dalam grafik DAG akan berubah untuk menunjukkan statusnya. Saat komponen telah selesai diproses, kerangka akan berubah menjadi hijau tua untuk menunjukkan bahwa proses sudah selesai.
Memahami komponen
Sekarang kita akan melihat komponen-komponen dari pipa ini secara rinci, dan secara individual melihat keluaran yang dihasilkan oleh setiap langkah dalam pipa.
Di JupyterLab buka
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
Buka notebook.ipynb.
Lanjutkan lab di notebook, dan jalankan setiap sel dengan mengeklik Run (
) ikon di bagian atas layar. Sebagai alternatif, Anda dapat menjalankan kode dalam sel dengan SHIFT + ENTER .
Baca narasinya dan pastikan Anda memahami apa yang terjadi di setiap sel.