Proyek ini merupakan bagian dari submission awal pada kelas Machine Learning Operations (MLOps) di Dicoding. Tujuan utama dari proyek ini adalah untuk embuatan machine learning pipeline sederhana menggunakan TensorFlow Extended (TFX).
-
Membangun Machine Learning Pipeline End-to-End dengan TFX
Mengimplementasikan ML pipeline menggunakan TensorFlow Extended (TFX) dengan komponen-komponen utama seperti
ExampleGen, StatisticsGen, SchemaGen, ExampleValidator, Transform, Trainer, Tuner, Resolver, Evaluator, dan Pusheruntuk memastikan alur kerja yang terstandarisasi. -
Menerapkan Hyperparameter Tuning secara Otomatis
Mengoptimalkan performa model melalui komponen
Tunerdalam pipeline untuk menemukan kombinasi parameter terbaik secara efisien. -
Melakukan Deployment Model dengan TensorFlow Serving
Menyiapkan dan mendistribusikan model yang telah dilatih agar dapat diakses melalui API menggunakan TensorFlow Serving.
-
Menguji Endpoint Serving untuk Prediksi Model
Membuat notebook khusus untuk mengirim request prediksi ke endpoint serving dan mengevaluasi hasil prediksi secara real-time.
Konfigurasi awal untuk mendefinisikan nama pipeline, path penyimpanan metadata, model, dan dataset. Inisialisasi ini penting untuk menjaga struktur pipeline tetap terorganisir dan mudah direproduksi.
- Membaca Dataset CSV: Dataset dimuat dalam format
.csvdan diproses menggunakan komponenCsvExampleGendari TFX. - Konversi ke TFRecord: Data dikonversi menjadi format
TFRecord, lalu secara otomatis dipisah menjadi data pelatihan dan evaluasi (default: 80% train, 20% eval).
- Statistik Data (StatisticsGen): Menghasilkan ringkasan statistik untuk seluruh fitur dataset.
- Schema Otomatis (SchemaGen): Membangun skema data berdasarkan statistik, seperti tipe data dan nilai unik.
- Validasi Data (ExampleValidator): Memeriksa anomali, missing values, dan outlier dibandingkan dengan skema.
- Transformasi Fitur (Transform): Mengaplikasikan preprocessing menggunakan TensorFlow Transform, seperti normalisasi fitur numerik atau encoding fitur kategorikal.
- Menyiapkan Data untuk Model: Output dari tahap ini akan menjadi input langsung ke model saat pelatihan dan inferensi.
- Pelatihan Model (Trainer): Pipeline akan melakukan pelatihan dengan data hasil transformasi.
- Integrasi Fungsi Tuning: Pipeline juga menggunakan komponen
Tuneruntuk melakukan hyperparameter tuning secara otomatis.
- Evaluasi Kinerja (Evaluator): Model dievaluasi menggunakan data validasi dan metrik seperti akurasi atau loss.
- Model Blessing (Resolver & Evaluator): Model dibandingkan dengan versi sebelumnya untuk menentukan apakah model baru layak di-push ke tahap produksi (blessed).
- Model Deployment (Pusher): Jika model mendapat status blessed, model akan dikirim ke direktori
serving_model_dirdan siap untuk digunakan dalam produksi. - TensorFlow Serving: Model dapat menggunakan TensorFlow Serving untuk keperluan prediksi real-time.
- Request Prediksi: Pada notebook terpisah, dibuat untuk mengirim data ke endpoint TensorFlow Serving dan mengamati hasil prediksi dari model yang telah dideploy.
Proyek ini telah membangun pipeline machine learning sederhana menggunakan TensorFlow Extended (TFX) untuk memproses data, melatih model, dan menyiapkannya untuk deployment. Pipeline ini mencakup tahapan mulai dari ingest data hingga evaluasi model, sesuai dengan studi kasus prediksi attrition karyawan.
Author: Mellisa
Date: 17-12-2024
Tools: Python, TensorFlow, TensorFlow Extended (TFX), TFX Components, TensorFlow Serving