Pengantar On-Device Machine Learning pada Aplikasi Android
Bagian 0: On Device Machine Learning Exploration
Halo Folks! Pada artikel kali ini saya akan membahas mengenai pengantar on device machine learning implementation pada aplikasi android. Saat ini kita telah memasuki AI era, tanpa kita sadari saat ini kita sering kali menggunakan aplikasi yang sudah menggunakan AI untuk meningkatkan pengalaman pengguna. Seperti saat membaca artikel di berberapa platform berita, seringkali kita temui fitur untuk membuat ringkasan artikel tersebut. Atau saat kita tidak mengikuti meeting online kita juga tetap mendapatkan ringkasan yang dibuat oleh AI yang kita aktifkan sehingga, walaupun kita tidak bergabung dengan online meeting kita tetap bisa mendapatkan informasi dari meeting yang sedang berlangsung.
Pada umumnya traditional programming sering kita gunakan ketika kita membuat sebuah aplikasi android. Lalu untuk mengimplementasikan On-Device machine learning kita bisa menggunakan pendekatan machine learning.
- Pendekatan Traditional Programming
Pada pendekatan tradisional programming, program dibuat dengan mendeklarasikan bagaimana dan system akan memberikan output berupa result. Misalkan kita ingin membuat ayam goreng maka kita harus menulis langkah — langkah membuat ayam goreng.
2. Pendekatan Machine Learning
Pada pendekatan Machine Learning , program dibuat dengan mendeklarasikan result yang di harapkan dan system akan belajar membuat sebuah pattern atau rules untuk mendapatkan result yang di harapkan. Misalkan kita ingin membuat ayam goreng maka kita harus mendefinisikan ayam goreng kita inginkan secara detail (krispi, golden brown).
Sebagai contoh jika kita ingin membuat sebuah system untuk membuat activity recognation. Jika kita menggunakan pendekatan secara tradional kita akan menjadikan salah sebuah variabel barupa speed sebagai tolok ukur. Jika kecepatan kurang dari 5 maka akan dianggap berlari dan jika kurang dari 10 dan lebih dari 5 maka akan dianggap berlari, lalu jika lebih cepat dari itu maka akan dianggap sebagai bersepeda, lalu bagaimana jika aktivatas yang dilakukan oleh user adalah baseball, tentu ini akan menyulitkan karena saat memukul bola user hanya diam dan tidak bergerak.
Untuk kasus ini kita bisa menggunakan pendeketan machine learning dengan menggunakan labeling. Sehingga kita bisa mengumpulkan data yang merepresentasikan setiap activity beserta labelnya.
Untuk mengimplementasikan pendekatan machine learning pada apliaksi android kita memiliki 2 cara.
- On Cloud
Pada On Cloud kita tidak perlu additional skill karena model di deploy di server sehingga dari perspektif aplikasi kita hanya perlu berkomunikasi dengan API Service seperti biasa. Terdapat beberapa hal yang perlu diperhartikan saat menggunakan pendekatan ini.
Cons :
- Cost untuk server infrastuktur
- Koneksi Internet
Pros :
- Akurasi tinggi karena model di deploy di server yang memiliki memori yang lebih besar dibanding mobile device.
- Tidak memerlukan skill tambahan seperti machine learning skill.
2. On Device
Pada On Device kita memerlukan skill minimum mengenai Machine Learning untuk mengimplementasikannya kedalam aplikasi kita.
Cons :
- Ketika model yang kita miliki berukuran cukup besar spesifikasi device yang tinggi mungkin diperlukan.
- Karena pada dasarnya original model di compressed secara size agar compatible dengan device model, sehingga akurasinya pun juga akan menurun.
Pros :
- Tidak bergantung pada internet
- Mampu menjalankan system secara realtime karna model di akses secara langsung pada device pengguna.
- Karena model berada di device pengguna, sehingga secara privacy pengguna juga lebih baik.
Untuk mengimplementasikan sebuah pendekatan machine learning untuk android developer mungkin agak menyulitkan. Karena kita harus memiliki basic skill, namun terdapat beberapa tools yang dapat kita gunakan. ML Kit
Merupakan tool dengan yang memfasilitasi kita dengan prebuilt model dan common usecase API. Pada ML Kit bukan hanya dapat di implementasikan secara on device tetapi juga dapat di implementasikan secara on cloud. Terdapat common use case API yang di provide oleh ML Kit seperti scan barcode, text recognition (ekstrak text dari image), Image labelling, face detection, object detection dan tracking, dan masih banyak lainnya.
2. Tensorflow Lite/ LiteRT
LiteRT (singkatan dari Lite Runtime), sebelumnya dikenal sebagai TensorFlow Lite, adalah runtime dengan peforma tinggi untuk on device AI. Kita dapat menemukan model LiteRT yang siap dijalankan untuk berbagai tugas ML/AI, atau mengonversi dan menjalankan model TensorFlow, PyTorch, dan JAX ke format TFLite menggunakan dengan tools konversi dan pengoptimalan AI Edge.
3. MediaPipe
Merupakan sebuah framework dari Google yang memungkinkan kamu membuat aplikasi dengan kemampuan pemrosesan media canggih, seperti face recognition, hand landmark pose, dan pengenalan objek, secara real-time. Framework ini menyediakan komponen-komponen siap pakai yang bisa dirangkai untuk membangun aplikasi AR, pengolah gambar, dan aplikasi interaktif lainnya di berbagai platform. MediaPipe memudahkan kita untuk memanfaatkan teknologi AI dalam aplikasi android, khususnya yang berhubungan dengan pengolahan video dan gambar.
4. Gemma
Untuk menggunakan Model Gemma pada aplikasi android, dapat melalui MediaPipe LLM Inference API. LLM Inference API berfungsi sebagai wrapper, yang memungkinkan kita untuk menjalankan model Gemma pada device untuk tugas-tugas umum seperti text to text seperti ektraksi informasi, penyusunan email, dan membuat summarize dokumen.
5. Gemini Nano
Sebuah model yang memprovide pengalaman Generative AI secara on device pada perangkat mobile. Sehingga kita tidak memerlukan koneksi internet untuk mengakses model ini. Namun Gemini Nano bersifat experimental dangan early access program, sehingga tidak dapat di gunakan secara publik. Selain itu Gemini Nano juga hanya mensupport perangkat Pixel 8 dan Samsung S24 Ultra.
Untuk lebih lengkapnya perhatikan tabel dibawah ini:
Untuk selanjutnya kita akan mencoba untuk membuat sebuah sample project dengan menggunakan ML Kit. Sampai jumpa di artikel selanjutnya :).