Machine Learning di Google Cloud
Machine Learning merupakan metode yang dapat digunakan untuk menyelesaikan permasalahan dengan tingkat kesulitan yang kompleks. Metode ini sering dimanfaatkan untuk speech recognition, image classification, language translation.
Di dalam machine learning ada dua tahapan, yaitu tahapan training, dan deployment atau penggunaan model. Tahapan training merupakan tahapan dimana model mengalami proses learning. Algoritma akan mencari secara otomatis representasi input data yang terbaik dengan menggunakan error sebagai feedback. Secara ringkas, inilah tiga hal yang dibutuhkan untuk membuat machine learning model pada proses training
- Input yang merupakan data, biasanya dalam volume yang besar
- Contoh dari output yang diharapkan, biasa disebut dengan label
- Cara untuk mengukur apakah algoritma yang digunakan dalam proses training bekerja dengan baik. Ini biasa disebut dengan loss function.
Dalam stage training makin banyak data yang digunakan, akan menolong model melakukan generalisasi data secara lebih baik. Sama seperti siswa saat belajar, semakin banyak contoh yang dikerjakan, semakin banyak materi yang diulas, semakin besar pula kemungkinan mendapatkan nilai yang lebih tinggi.
Namun penggunaan data yang banyak terutama unstructured data seperti gambar dan video, membawa beberapa tantangan. Storage, dimana kita harus menyimpan data yang akan digunakan untuk training. Compute, resources apa yang akan digunakan untuk melakukan training, apakah menggunakan CPU, GPU, TPU, atau bahkan distributed computing.
Compute, Storage, and Machine Learning Solution
Google Cloud Platform™ adalah salah satu cloud service provider yang menyediakan berbagai tools yang dapat digunakan untuk compute, storage, dan machine learning solution.
Untuk compute, tersedia service seperti Compute Engine™, Kubernetes Engine™, Cloud Run™, App Engine™ atau Cloud Function™. Untuk Storage, Google Cloud menyediakan service yang berbeda tergantung tipe data yang digunakan. Untuk unstructured data, anda dapat menggunakan Google Cloud Storage™ (GCS). Gambar, Video, atau blob file dapat disimpan di GGS. Sedangkan untuk structured data storage, bisa disimpan di Cloud SQL™, Cloud Spanner™, Datastore™, Bigtable™ or BigQuery™ tergantung apakah data yang disimpan transactional, atau apakah data anda berasal dari IoT pipeline.
Untuk machine learning anda dapat melakukan training dengan menggunakan Deep learning Virtual Machine, atau menggunakan AI Platform™.
Deep Learning VM merupakan Google Compute Engine Instance yang di dalamnya sudah terdapat AI framework, sehingga tidak perlu khawatir dengan memilih versi software yang kompatibel. Software seperti TensorFlow™, PyTorch, scikit-learn dan lainnya sudah terinstall di Deep Learning VM. Cloud GPU dan TPU juga dengan mudah dapat ditambahkan jika dibutuhkan. Deep Learning VM membuat persiapan untuk pengerjaan project machine learning lebih cepat dan mudah.
Selain Deep Learning VM, AI platform merupakan pilihan yang menguntungkan jika anda ingin melakukan experiment, mengembangkan dan deploy machine learning model. Dikarenakan, AI Platform Notebooks adalah managed service yang menyediakan JupyterLab environment yang aman dan terintegrasi. Pengguna dapat mengaktifkan JupyterLab instances yang didalamnya telah terinstall framework untuk machine learning dan data science dengan sekali klik saja.
Tahapan berikutnya di machine learning adalah deployment. Tahapan ini adalah yang terpenting, dimana pemanfaatan terhadap implementasi machine learning terjadi. Platform seperti Google Cloud memungkinkan anda untuk mendeploy model dengan mudah untuk model yang di-training di Google Cloud atau platform lain. AI Platform Prediction memungkinkan anda untuk hosting model machine learning yang telah anda training di Cloud dan pengguna dapat mengirimkan prediction request. AI Platform Prediction memberikan kemudahan dan fleksibilitas untuk model yang menggunakan platform seperti TensorFlow, scikit-learn, dan XGBoost.
Berbagai opsi yang telah disebutkan sebelumnya menunjukkan bahwa Google Cloud mempermudah tahapan training dan deployment machine learning terutama dengan adanya managed service yang memberikan keuntungan berupa skalabilitas terhadap service yang disediakan.
Lantas, apabila pengguna tidak memiliki kemampuan programming dalam Python atau Java apakah keinginan menggunakan machine learning masih bisa terlaksana? Demokratisasi machine learning adalah salah satu tujuan dari Google, dimana pengguna yang bukan machine learning expert dapat melakukan machine learning di Google Cloud dan merasakan manfaatnya.
Jika pengguna menyimpan datanya di BigQuery yang merupakan managed petabit data warehouse di Google Cloud, terdapat BigQuery Machine Learning (BQML). BQML merupakan pilihan yang nyaman dikarenakan dapat diimplementasikan menggunakan SQL dan predefined function yang disediakan Google untuk melakukan machine learning.
Hal yang harus disadari, tidak semua orang memiliki kemampuan atau berkeinginan untuk melakukan training maupun deployment machine learning seorang diri. Google Cloud menawarkan solusi yang berguna bagi pengguna yang ingin menambahkan machine learning ke dalam aplikasi mereka dengan lebih cepat dan mudah.
Google Cloud Pre-trained API
Service yang pertama adalah pretrained machine learning model. Pretrained model, adalah model yang sudah ditraining oleh pihak Google dan siap untuk digunakan. Anda tidak perlu menyediakan data, menyiapkan storage dan resources untuk training machine learning model. Google sudah melakukan training, dengan jumlah data yang banyak hingga mencapai state of the art sehingga layak untuk digunakan. Pretrained model ini sudah dibungkus dalam bentuk API, sehingga untuk menggunakannya anda tinggal memanggil menggunakan metode REST API. Mari kita lihat berbagai pretrained API yang tersedia di Google Cloud.
- Vision API
- Speech-to-Text
- Jobs API
- Translation API
- Natural Language API
- Video Intelligence API
Dengan Vision API, anda dengan lebih mudah menerapkan machine learning untuk unstructured data. Misalkan dengan Vision API, anda bisa melakukan label detection, web detection ataupun OCR terhadap gambar. Natural language API memungkinkan melakukan entity extraction, dan sentiment analysis terhadap kalimat dan document. Speech-to-Text API memungkinkan anda mendapatkan transkrip dari sebuah file audio.
Google Cloud AutoML
Pre-trained API dapat mempersingkat waktu pembuatan aplikasi yang melibatkan machine learning. Namun penggunaan pretrained API tak selamanya cukup untuk kebutuhan aplikasi yang spesifik. Contohnya, jika anda ingin melakukan klasifikasi terhadap berbagai jenis rumah yang ada di website e-commerce anda. Pretrained API secara general akan menggolongkan gambar rumah sebagai properti, rumah atau bangunan. Sementara dengan menggunakan AutoML Vision, anda dapat menggolongkan gambar rumah menjadi, modern atau victorian style.
Untuk kasus seperti yang diatas, AutoML lebih tepat untuk digunakan. AutoML memungkinkan anda untuk menggunakan data anda sendiri dalam proses training. Anda juga tidak perlu khawatir, karena dari proses mempersiapkan data hingga deployment, koding tidaklah diperlukan. Setelah proses training, anda dapat melihat hasil training, dan validasi model dengan berbagai matriks, seperti confusion matrix, precision, dan recall.
AutoML apa saja yang tersedia di Google Cloud?
- AutoML Vision
- AutoML Video Intelligence
- AutoML Natural Language
- AutoML Translation
- AutoML Tables
Dengan adanya Cloud AutoML, pengguna dapat traincustom machine learning model yang berkualitas tinggi, effort yang minimal dan tanpa perlu machine learning expertise.