Pembuka: konteks proyek pertama dan ekspektasi
Proyek machine learning pertama saya terasa seperti roller-coaster: penuh optimisme di awal, frustrasi di tengah, dan kepuasan di akhir ketika model mulai “mengerti” pola. Targetnya sederhana — klasifikasi produk olahraga berdasarkan deskripsi dan gambar untuk marketplace kecil. Dataset awal hanya ~5.000 entri, deskripsi teks terfragmentasi, dan foto yang kualitasnya bervariasi. Saya memutuskan menguji beberapa AI tools dan library populer untuk melihat mana yang paling efisien dalam konteks terbatas ini.
Review detail: tools, pengujian, dan hasil nyata
Saya membagi pipeline menjadi empat tahap: pra-pengolahan data, pemodelan, tuning, dan deployment. Untuk pra-pengolahan teks saya bandingkan scikit-learn (TF-IDF + LogisticRegression) dengan Hugging Face Transformers (distilbert fine-tune). Untuk data gambar saya uji transfer learning menggunakan ResNet50 (PyTorch) dan model ringan dari TensorFlow Hub.
Hasil awal menunjukkan: TF-IDF + LogisticRegression (baseline) memakan waktu training ~30 detik di CPU dan mencapai akurasi validasi 68%. Mengganti ke XGBoost memberi lonjakan ke 78% dengan waktu training ~2 menit. Fine-tuning distilBERT pada GPU (RTX 3060 12GB) butuh ~45 menit dan mencapai 86% untuk teks saja — keuntungan jelas ketika deskripsi produk bermakna. Untuk gambar, ResNet50 fine-tune butuh ~25 menit per epoch pada GPU; setelah 5 epoch, akurasi gabungan teks+gambar stabil di 90%.
Saya juga menguji AutoML (AutoGluon dan Google AutoML) sebagai perbandingan. AutoGluon menghasilkan pipeline kompetitif (akurasi ~88%) tanpa banyak konfigurasi, tetapi memakan memori lebih besar dan waktu yang tidak selalu dapat diprediksi. Google AutoML menawarkan UI yang rapi dan deployment instan, namun biaya dan keterbatasan kontrol hyperparameter menjadi kendala untuk proyek open-source yang saya kelola.
Kelebihan & kekurangan: temuan praktis dari pengujian
Kelebihan pendekatan manual (scikit-learn / XGBoost / PyTorch): kontrol penuh. Anda bisa men-debug kebocoran data, memeriksa fitur yang dominan, dan mengoptimalkan inferensi untuk latency rendah. Contoh konkret: dengan memotong fitur teks berulangi dan memilih 200 fitur teratas TF-IDF, inferensi latency turun dari 120ms ke 25ms per sampel — penting untuk integrasi real-time.
Kekurangannya: waktu pengembangan lebih panjang dan memerlukan pengalaman. Fine-tuning Transformer memberi performa terbaik, tetapi memerlukan GPU, manajemen memori, dan dataset yang cukup berkualitas. Di proyek saya, label noise (sekitar 8% entri salah kategori) sempat menurunkan performa; solusinya: validasi ulang 500 sampel teratas berdasarkan probabilitas prediksi rendah, lalu retrain.
AutoML memang cepat untuk POC. Kelebihannya adalah kemudahan dan rekomendasi pipeline otomatis. Kekurangannya adalah transparansi: Anda tidak selalu tahu kenapa model memilih fitur tertentu. Untuk tim kecil yang butuh interpretability (misalnya alasan klasifikasi untuk seller), saya masih merekomendasikan XGBoost dengan SHAP.
Perbandingan praktis dan rekomendasi akhir
Jika Anda punya sumber daya GPU dan ingin akurasi maksimal: kombinasi fine-tuned Transformer untuk teks + transfer learning pada CNN untuk gambar memberi hasil terbaik. Dalam proyek saya, gabungan ini menaikkan akurasi dari 78% (XGBoost saja) ke ~90% setelah iterasi kedua. Namun jika sumber daya terbatas atau deployment harus hemat biaya, XGBoost atau LightGBM lebih masuk akal: training cepat, interpretasi baik, dan akurasi kompetitif.
Praktik yang selalu saya terapkan: (1) mulai dari baseline sederhana, catat metrik dan waktu training; (2) perbaiki data sebelum model; (3) gunakan cross-validation stratified untuk mengatasi ketidakseimbangan; (4) lakukan sanity check pada fitur penting. Untuk dataset gambar yang kurang rapi, teknik augmentasi sederhana (rotasi, crop, brightness) meningkatkan robustnes model sebesar 3-5% — saya bahkan menggunakan gambar produk dari marketplace dan sumber lain untuk augmentasi, termasuk beberapa foto referensi dari australiansportsupplies yang membantu memperkaya variasi sudut pandang.
Kesimpulannya: proyek pertama ML itu bikin frustrasi, karena banyak moving parts dan jebakan praktis seperti label noise, leakage, dan keterbatasan infrastruktur. Tapi proyek itu juga sangat seru — setiap iterasi memberi insight baru dan solusi teknis yang bisa langsung diimplementasikan. Rekomendasi saya: mulai sederhana, ukur semuanya, dan pilih tools sesuai trade-off kontrol vs kecepatan. Untuk tim yang ingin hasil cepat tanpa banyak effort, AutoML layak dicoba; untuk tim yang mengutamakan performa dan transparansi, kombinasi XGBoost + fine-tuned Transformer/CNN adalah jalan yang lebih baik.