Program aplikasi Android dalam format APK sebenarnya tersedia dalam jumlah yang sangat besar di Google Play Store, dan ribuan file aplikasi tersedia secara gratis atau berbayar untuk diunduh dan dijalankan langsung di perangkat Android Anda, seperti ponsel dan tablet.
Namun, jika tujuan Anda adalah membuat atau mengembangkan aplikasi tersebut dari nol, prosesnya menjadi jauh lebih rumit dan menuntut spesifikasi perangkat keras yang tinggi. Menggunakan lingkungan pengembangan standar seperti Android Studio, meskipun sangat lengkap, memiliki beban sistem yang cukup berat, yang dapat menghambat proses kerja, terutama jika Anda berada di laboratorium dengan spesifikasi perangkat terbatas.
Untuk mengatasi keterbatasan spesifikasi tersebut, solusi alternatif yang lebih efisien adalah menggunakan layanan Google Colab dan Buildozer. Pendekatan ini jauh lebih ringan karena tidak mengharuskan perangkat lokal Anda menginstal emulator yang memakan banyak sumber daya. Meskipun metode ini terkesan ringan, namun ada tantangan teknis tersendiri karena diperlukan trik khusus untuk memastikan setiap dependency (ketergantungan) dan perubahannya, seperti versi pip, sudah disesuaikan dengan benar di lingkungan Linux virtual milik Colab agar tidak terjadi konflik.
Jika proses konfigurasi lingkungan berhasil, proses kompilasi dari file main.py menjadi aplikasi .apk pun bisa berjalan lancar melalui Buildozer. Seluruh proses ini, mulai dari persiapan hingga hasil akhir, dilakukan murni melalui browser tanpa perlu instalasi di laptop. Hanya file sumber kode main.py yang perlu Anda periksa dan pastikan berfungsi normal di mesin Python lokal sebelum dimasa depan ke Colab. Link terlampir mengilustrasikan langkah-langkah detail proses tersebut, mulai dari instalasi dependency hingga perintah kompilasi yang sesuai, memastikan proses pembuatan aplikasi di cloud berjalan dengan efisien dan minim gangguan.
Saat ini, Artificial Intelligence (AI) telah menjadi “tokoh utama” dalam perkembangan teknologi modern. Menariknya, AI dapat berperan sebagai tokoh baik maupun tokoh buruk (villain). Di satu sisi, AI memudahkan pekerjaan manusia; namun di sisi lain, sifatnya yang instan sering membuat orisinalitas hilang, menumbuhkan rasa malas, dan menimbulkan ketergantungan. Meski begitu, manfaat yang dirasakan pengguna tetap sangat besar.
Salah satu kemampuan AI yang paling populer saat ini adalah sifat generatifnya (generative AI), misalnya dalam membuat presentasi. Dengan hanya memberikan prompt tertentu, model yang dikenal dengan nama Large Language Models (LLMs) mampu menghasilkan konten sesuai permintaan, termasuk pembuatan slide PowerPoint.
Jika dahulu chatbot hanya memberikan saran atau rekomendasi, kini telah berkembang menjadi action chat: chatbot tidak hanya memberi saran, tetapi juga mengeksekusi perintah secara langsung. Apakah hal ini berbahaya? Tentu saja ada potensi risikonya. Anda mungkin teringat film Mission Impossible yang dibintangi Tom Cruise, di mana AI mampu mengeksekusi tindakan berbahaya seperti pengeboman tanpa melibatkan manusia.
Dalam contoh yang lebih aman, berikut ini adalah demonstrasi action chat di mana chatbot mengeksekusi pembuatan file PowerPoint yang dapat langsung diunduh. Materi presentasi diambil dari file PDF yang diunggah pengguna, kemudian diproses menjadi database vektor menggunakan teknologi seperti FAISS, Chroma, Pinecone, dan lainnya. Proses ini dalam istilah teknis dikenal dengan nama Retrieval-Augmented Generation (RAG).
Dalam sesi kali ini, kita mempelajari penggunaan model BERT untuk tugas Name Entity Recognition (NER). NER adalah proses dalam Natural Language Processing (NLP) yang bertujuan untuk mengidentifikasi dan mengklasifikasikan entitas-entitas penting dalam teks seperti nama produk, organisasi, lokasi, tanggal, dan lainnya. Dengan bantuan model seperti BERT, proses identifikasi ini dapat dilakukan secara otomatis dengan tingkat akurasi yang cukup tinggi.
Model BERT (Bidirectional Encoder Representations from Transformers) merupakan salah satu model berbasis transformer yang dikembangkan untuk mengatasi keterbatasan model-model sebelumnya seperti LSTM yang bersifat serial dan lebih lambat. Kelebihan BERT adalah kemampuannya untuk memproses data secara paralel, sehingga jauh lebih cepat dan efisien, khususnya dalam konteks pemrosesan bahasa alami.
Untuk penggunaan dalam bahasa Indonesia, model yang digunakan adalah IndoBERT, yaitu versi BERT yang telah disesuaikan dengan karakteristik bahasa Indonesia. Dalam praktiknya, IndoBERT digunakan bersama dengan pustaka Transformers di lingkungan Google Colab. Instalasi dan pemanggilan model dilakukan secara langsung dari cloud, sehingga prosesnya cukup lancar tanpa kendala bandwidth lokal.
Selama demonstrasi, dilakukan proses instalasi tokenizer dan pemuatan model IndoBERT yang telah fine-tuned khusus untuk tugas NER. Setelah model berhasil dimuat, dilakukan pengujian terhadap beberapa teks berbahasa Indonesia. Hasilnya menunjukkan bahwa entitas-entitas seperti ORGANIZATION (ORG), PRODUCT (PRD), LOCATION (LOC), dan DATE berhasil dikenali dengan cukup baik. Meskipun sempat ditemukan beberapa ketidaksesuaian hasil, masalah tersebut dapat diatasi dengan mencocokkan versi model dan tokenizer yang digunakan.
Terakhir, dilakukan pengujian dengan teks yang lebih kompleks untuk melihat konsistensi hasil. Model berhasil mengenali entitas dengan benar seperti nama organisasi, produk, tanggal, dan lokasi. Evaluasi ini menunjukkan bahwa penggunaan IndoBERT untuk tugas NER pada teks bahasa Indonesia cukup efektif, meskipun tetap diperlukan pemilihan model yang sesuai dan validasi hasil secara manual untuk memastikan akurasi maksimal.
Chatbot yang menggunakan model bahasa besar (LLM) biasanya hanya bisa menjawab berdasarkan data yang sudah dilatih sebelumnya. Jika pertanyaan yang diajukan berada di luar cakupan datanya, jawabannya bisa jadi kurang relevan atau umum. Oleh karena itu, metode Retrieval-Augmented Generation (RAG) menjadi solusi untuk meningkatkan akurasi jawaban dengan menambahkan data eksternal yang lebih spesifik. Dengan RAG, chatbot bisa mencari informasi di database lokal terlebih dahulu sebelum memberikan jawaban, sehingga lebih sesuai dengan kebutuhan pengguna.
Dalam pengimplementasiannya, data yang digunakan oleh chatbot bisa disimpan dalam bentuk embedding vektor yang memudahkan pencarian informasi relevan. Sebagai contoh, jika chatbot awalnya tidak mengetahui tren konsumsi gas domestik, pengguna dapat menambahkan dataset terbaru ke dalam sistem. Dengan begitu, chatbot dapat memberikan jawaban berdasarkan sumber yang lebih aktual tanpa perlu melatih ulang modelnya. Hal ini sangat berguna dalam skenario seperti informasi harga minyak terkini atau jadwal pendaftaran mahasiswa yang selalu diperbarui setiap tahun.
Keunggulan utama dari metode RAG dibanding fine-tuning adalah fleksibilitasnya. Fine-tuning memerlukan waktu dan sumber daya komputasi yang besar untuk melatih ulang model dengan data baru. Sebaliknya, dengan RAG, cukup dengan memperbarui repository data eksternal, chatbot dapat memberikan jawaban yang lebih akurat tanpa perlu melakukan pelatihan ulang. Oleh karena itu, pendekatan ini lebih efisien untuk aplikasi yang membutuhkan pembaruan informasi secara berkala.
Python merupakan bahasa yang paling banyak digunakan untuk pemodelan AI saat ini. Bahkan Google pun menggunakan bahasa ini dalam layanan cloud untuk pemrogramannya yakni Google Colab. Sayangnya untuk keperluan training yang membutuhkan GPU, harus berbayar.
Google colab untuk training memang recommended, khususnya untuk mahasiswa tingkat S2 dan S3 dimana perlu mengutak-atik model. Sementara itu untuk mahasiswa S1 yang diminta implementasi, jika hanya mengandalkan Google Colab dirasa kurang mengingat industri-industri saat ini permintaannya membuat aplikasi atau layanan dari model tertentu. Jadi perlu tools lain, yang tentu saja murah, alias gratis. Idealnya sih menyewa atau membeli server untuk testing.
Nah, play with docker (PWD) menawarkan server murah untuk belajar, tapi dibatasi hanya 4 jam saja. Walaupun hanya sebentar, tapi 4 jam sudah cukup untuk mahasiswa berlatih implementasi model yang dibuat dalam satu aplikasi berbasis web, misalnya dengan Flask, Django, atau bahkan PHP yang saat ini di Indonesia masih banyak dipakai.
Python perlu bisa dijalankan di PWD. Video berikut ini mengilustrasikan bagaimana penggunaan Python di PWD. Salah satunya adalah penanganan Virtual Environment (ENV). Oiya, ternyata Python versi 3.12 yang baru belum support Tensor Flow, jadi harus turun ke versi 3.11.
Saat ini banyak aplikasi yang berbasis internet untuk pendukung pembelajaran Software Engineering, misalnya Play With Docker [url]. Sebelumnya aplikasi seperti Google Colab [url] pun cukup baik membantu pemrograman Python. Jadi dari seluruh tahapan CRISP-DM [url] dari business understandine, hingga deployment dapat diakomodir.
Amat disayangkan Google Colab yang sejatinya untuk meramu algoritma sebelum diimplementasikan tidak dilanjutkan ke aplikasi oleh mahasiswa S1 yang notabene harusnya di level penerapan. Jadi mahasiswa S1 hanya menggunakan Google Colab saja. Yang membuat jadi tidak jelas adalah sementara di Google Colab tidak ada temuan metode, hanya menggunakan saja, tapi tidak diimplementasikan menjadi aplikasi baik berbasis desktop, web, maupun model.
Beberapa rekan dosen mungkin mengatakan bahwa itu masuk ke konsentrasi sains data, tapi sejatinya sains data adalah bagaimana mensuport organisasi sehingga wajib adanya riset di satu organisasi. Jadi jika mahasiswa hanya memakai metode dengan Google Colab tanpa riset ke suatu organisasi sepertinya tidak sesuai dengan level 6 KKNI. Oke, jadi ada baiknya siswa S1 diminta sedikit membuat aplikasi yang saat ini dipermudah dengan adanya ChatGPT yang membantu pembuatan aplikasi. Untuk deployment, berikut contoh dengan Play With Docker. Sekian semoga bermanfaat.
Majalah TIME membahas Artificial Intelligence (AI) yang merambah ke segala bidang. Banyak peran manusia yang tergantikan, misalnya bagian informasi yang menjawab pertanyaan dari customer. Tadinya berupa chat dengan manusia, sekarang digantikan oleh mesin. Banyak kekhawatiran dari pekerja yang terancam digantikan tugas-tugasnya. Namun efisiensi sangat penting dalam tiap organisasi dan manusia seharusnya fokus ke bidang-bidang tertentu seperti kreativitas dan hal-hal yang tidak bisa dijalankan oleh mesin.
Saat ini Pre-Trained Model banyak tersedia dalam hub-hub di internet. Dengan data yang besar dengan mesin super komputer, aplikasi dishare oleh hub-hub tersebut. Untuk meng-kustomisasi aplikasi sesuai dengan problem yang ada mekanisme Transfer Learning sangat membantu karena tidak perlu Big Data dengan super computer untuk training.
Mula-mula model dibuat dengan Google Colab, sebelum diunduh modelnya agar bisa digunakan untuk aplikasi Web. Gunakan ChatGPT untuk merakit aplikasi Web, misalnya dengan Framework FLASK. Banyak yang mengatakan AI tidak mengalahkan manusia, tapi manusia dikalahkan oleh orang yang menggunakan AI. Jadi pekerja yang paham AI diyakini bisa menyingkirkan pekerja yang tidak paham AI. Di majalah TIME juga disebutkan bagaimana memanfaatkan AI yang ada untuk mempermudah pekerjaan. Berikut video bagaimana mengimplementasikan model yang diuji coba di Google Colab dalam aplikasi web dengan framework FLASK. Semoga informasi ini membantu.
“Bapak sudah beritahu ke mahasiswa belom info itu?”, tanya rekan saya yang staf dan mendapat tugas sebagai call center yang menjawab WA saat COVID yang lalu. “Sudah .. kenapa Mbak?”, tanyaku heran. “Ini anak kok pada nanya semua ke call center!”. Terus terang saya cuma bisa melongo mendengar protesnya. Aneh juga, tugasnya call center yang menjelaskan ke orang yang nanya. Apalagi yang nanya mahasiswa yang notabene adalah konsumen yang menghidupi roda kampus.
Mungkin karena membludaknya mahasiswa yang bertanya akibatnya kewalahan menjawab, mungkin jempolnya sampai bentol klak-klik hp nya. Ketika kondisi seperti ini maka masuklah Artificial Intelligence (AI) yang secara perlahan menggantikan fungsi manusia yang bisa capek/lelah, bosan, dan sejenisnya. Khususnya untuk fungsi-fungsi rutinitas, administratif, dan lainnya yang bikin BT.
Dalam bukunya, Artificial Intelligence – a Modern Approach, Russel menyinggung bagaimana di awal perkembangan AI, Alan Turing mencetuskan Turing Test yang menguji sebuah mesin dengan cara Chatting. Seseorang akan diminta menebak lawan chattingnya apakah manusia atau mesin. Waktu itu mungkin masih bisa ditebak, walau butuh waktu beberapa menit, tapi saat ini sangat sulit, apalagi perkembangan Large Language Model (LLM) seperti ChatGPT, dan sejenisnya.
Salah satu vendor penyedia model siap pakai adalah Hugging Face yang dapat kita akses, dan kita coba untuk gunakan pada postingan ini. Model ini mirip ChatGPT yang sudah berisi model terlatih sebelumnya. Nah jika ingin dimanfaatkan untuk memberi informasi ke pihak-pihak yang bertanya dapat kita latih ulang dengan data khusus organisasi atau produk/jasa yang dipasarkan. Jadi tidak perlu orang yang menjawab chat yang ditanya, cukup mesin saja. Video berikut contoh dengan Google Colab dengan kode dapat diakses di link berikut [Url]. Jika sudah silahkan aplikasikan ke Web yang berupa aplikasi Chat untuk tanya jawab terhadap konsumen.
Artificial Intelligence (AI) sangat luas, baik dari implementasi maupun definisi. AI terbagi jadi empat kuadran yakni Think Humanly, Think Rationally, Act Humanly, dan Act Rationally. Namun demikian definisi yang memuaskan sulit didapat, misalnya Alan Turing cenderung mendefinisikan AI sebagai Think Humanly, dengan Turing Test-nya dimana seseorang diminta menebak dia chatting dengan manusia atau mesin. Sementara itu tokoh lain seperti Elaine Rich menyatakan bahwa AI merupakan rancangan komputer yang melakukan sesuatu dimana saat ini manusia menunjukan hasil yang lebih baik. Misalnya aplikasi catur, ketika Grandmaster Gary Kasparov kalah oleh aplikasi catur Deep Blue, maka catur bisa dikatakan bukan wilayah AI lagi. Kalau bukan AI apa namanya? Alhasil, pertandingan catur harus mencegah pemain memanfaatkan AI. Misal ada robot yang mengendalikan motor dan mengalahkan Valentino Rossi, berarti robot pembalap itu sudah di luar AI.
Inilah yang dikhawatirkan oleh beberapa ilmuwan AI dimana produk dari AI yang mengalahkan manusia. Ketika ChatGPT muncul, ujian atau tugas mahasiswa sudah harus dipastikan tanpa memanfaatkan ChatGPT mengingat kemampuan aplikasi ini dalam men-generate tulisan atau menjawab soal-soal. Repotnya ketika AI yang telah dibuat belum ada cara mengantisipasi dampaknya.
Beragam produk AI dihasilkan setiap hari. Yang unik kebanyakan diakses tanpa perlu membayar, mirip Google yang gratis digunakan untuk searching, atau ChatGPT untuk menjawab pertanyaan-pertanyaan. Mengapa? Hal ini karena pengguna hanya diberi akses tanpa memiliki Engine AI itu sendiri. Ketika pengembang AI menciptakan engine, biasanya mereka tidak memberikan engine itu ke orang lain, melainkan hanya memberikan akses saja, misalnya dengan API. Video berikut memperlihatkan bagaiman mengimplementasikan AI lewat akses API dengan salah satu situs online untuk praktik DevOps, yakni Play-with-Docker.
Memiliki sebuah server praktikum merupakan kendala utama untuk dunia pendidikan baik kampus maupun sekolah, khususnya di Indonesia terkait kendala biaya. Beberapa opsi dapat digunakan, salah satunya adalah menyewa server cloud. Namun biaya sewa juga menjadi masalah mengingat untuk aplikasi-aplikasi terkini yang berjenis stack-based development memerlukan infrastruktur yang kompleks.
Untuk masalah itu, solusi yang praktis adalah memanfaatkan aplikasi online yang saat ini tersedia, yakni Play with Docker [Link]. Aplikasi ini menyediakan secara gratis server yang terdiri dari beberapa instance untuk dipakai berlatih. Di sini disebut berlatih karena hanya diberi waktu empat jam untuk tiap sesi latihan. Walaupun sebentar, waktu empat jam sepertinya sudah cukup. Sebagai contoh di sini saya menggunakan satu instance baru. Instance baru tersedia dengan sebuah terminal yang sudah terinstall docker di dalamnya. Kita bisa membuat image atau untuk latihan kali ini hanya mengimpor image dari Docker Hub [Link]. Silahkan menginstall Docker Desktop di laptop Anda [Link]. Versi yang tersedia cukup lengkap dari Windows, Linux, hingga Mac OS. Untuk windows ada sedikit setting pada virtualisasi diaktifkan, silahkan panduannya untuk instalasi dengan Windows lihat di [Link].
Menjalankan Play with Docker.
Tekan start untuk memulai PWD. Pada terminal masukan instruksi ‘docker pull’ untuk menarik image dari Docker Hub yang telah kita buat sebelumnya. Proses ini memerlukan waktu sesuai dengan besar atau kecilnya image. Karena proses transfer dari cloud ke cloud dan tidak mengunduh ke laptop kita sehingga tidak membutuhkan waktu yang lama. Selanjutnya jalankan dengan instruksi ‘docker run’, sesuaikan port yang akan dipublikasi.
Di sini 8080:3000 berarti yang akan diakses oleh publik adalah 8080 (kita bisa gunakan sesuai kebutuhan), sementara 3000 merupakan port yang dipakai di aplikasi FLASK. Sekedar informasi, image yang ditarik merupakan aplikasi berbasis Flask Python untuk mentranslate bahasa Indonesia ke bahasa Inggris.
Menjalankan Aplikasi Play with Docker.
Untuk menjalankan aplikasi tekan angka PORT yang muncul di sebelah kanan OPEN PORT. Jika tidak muncul bisa mengklik kotak OPEN PORT dan isi sesuai dengan port pada Docker Run tadi. Pastikan ketika port 8080 dijalankan akan muncul aplikasi yang jika dijalankan berfungsi normal untuk mentranslate kalimat.
Beberapa waktu yang lalu Play with Docker tidak bisa diakses, biasanya sedang ada gangguan di server PWD, dan ketika tulisan ini dibuat berjalan dengan normal, semoga ke depan aplikasi online ini banyak dibuat karena secara ekonomis sangat membantu dunia pendidikan khususnya untuk software development dimana saat ini teknik stake-based development sangat dibutuhkan dengan aplikasi-aplikasi berbasis microservices atu akses antar platform yang berbeda. Untuk ilustrasi video silahkan buka link Youtube berikut ini.
Banyak aplikasi ML yang memanfaatkan konsep API agar modul AI dapat diakses oleh orang lain tanpa khawatir kode diambil. Hal ini terjadi karena API hanya menyediakan gerbang input/output yang bisa diakses orang lain. Sebagian besar memerlukan KEY agar tidak sembarangan orang menggunakannya, misalnya ChatGPT, Twitter, dan lain-lain yang kebanyakan subscribe terlebih dahulu.
Biasanya kita mencoba server API dan pengakses di komputer/laptop yang sama dan tidak ada masalah. Namun jika server API di lokasi yang berbeda dengan pengakses, biasanya ditolak oleh server API jika tidak dilengkapi dengan Cross-Origin Resource Sharing (CORS).
Bagaimana cara mengatasinya? Jawabannya adalah CORS. Berikut contoh penggunaan CORS pada Flask:
Di sini folder /api/ diset CORS agar bisa diakses public, dengan lokasi endpoint pada /api/data. Untuk mengujinya buat aplikasi Docker dari kode di atas dan jalankan.
Berbeda dengan era 90-an atau awal 200-an dimana bahasa pemrograman memiliki satu Integrated Development Environment (IDE) yang satu paket ditor teks dengan compiler/interpreter, saat ini bahasa pemrograman memisahkan antara compiler dengan fasilitas-fasilitas lain, seperti editor teks maupun fasilitas-fasilitas lain seperti emulator, web server dan lain-lain. Saat ini teks editor canggih sudah tersedia dengan cuma-cuma, salah satunya adalah Visual Studio Code [Link].
Apple dengan Mac OS memang terkenal sebagai notebook dengan performa yang baik ketika digunakan untuk kebutuhan harian seperti mengetik, presentasi, maupun spreed sheet, termasuk browsing dan lain-lain. Untuk game dan programming masih banyak yang menggunakan PC biasa dengan Windows maupun Linux. Ketika menggunakan prosesor Intel, Mac dapat diinstall Windows di dalamnya dengan memanfaatkan Bootcamp. Namun ketika Apple memutus kerjasama dengan Intel dan menggunakan processor M1 buatan Apple Silicon, fasilitas dual OS dengan Bootcamp sudah tidak bisa lagi, hasilnya terpaksa pengguna Macbook hanya bisa menggunakan Mac OS.
Mau tidak mau, programmer yang memanfaatkan Macbook perlu menyesuaikan diri dengan prosesor mobile tersebut. Di awal memang agak kesulitan karena M1 sendiri masih menggunakan emulator bernama Rosetta agar aplikasi berbasis Intel dapat berjalan di M1. Namun lama kelamaan beberapa aplikasi sudah menyesuaikan dengan Apple Silicon. Pada fasilitas pengunduhan tersedia pilihan Apple Silicon. Silahkan simak video bagaimana menginstall VS Code disertai dengan Python pada prosesor M1.
Beberapa situs penyedia server gratis banyak tersedia, misalnya webhost [Link]. Sayangnya tidak bisa digunakan untuk AI berbasis python, hanya php dan sejenisnya (javascript). Beberapa bisa memiliki akses ke konsol untuk menginstal library python, namun ada kalanya diminta memasukan kartu kredit, walau gratis, ini cukup memberatkan.
Untungnya saat ini ada situs yang menyediakan deployment gratis berbasis python. Di sini kita bisa menjalankan AI yang berbasis Python dan diakses via website, namanya Streamlit Sharing [Link]. Urutan langkahnya adalah sebagai berikut:
1. Konversi aplikasi menjadi python (bukan ipynb).
2. Buat menjadi format Streamlit (dengan library streamlit). Tentu saja kita harus memasangnya dengan PIP biasa.
3. Mengupload aplikasi py dengan streamlit tersebut ke Github. Di sini fungsinya agar Streamlit menerima aplikasi python yang telah dibuat.
Untuk jelasnya dapat dilihat pada video youtube berikut ini. Sekian selamat mencoba dan mendeploy sendiri aplikasi python berbasis web dengan Streamlit.
Beberapa waktu yang lalu saya menonton film berjudul mission impossible. Film ini mengisahkan suatu AI yang memiliki kecerdasan sendiri sehingga bisa berfikir sendiri. Salah satu yang bisa mengalahkannya hanya akses ke kode sumber yang terkunci oleh dua kunci yang digabungkan, yang dalam istilah bank ‘dual custody’, dipegang dua individu berbeda. Di sini kita dikenalkan dengan bahasa dan dampak AI jika tidak terawasi dengan baik.
Nah, postingan kali ini saya memberikan informasi bagaimana dengan cepat mengerjakan proyek sederhana AI, khususnya machine learning dengan proses pembelajaran dari data yang diinputkan. Dengan demikian model dapat mengetahui dan melakukan inferensi/prediksi terhadap keluaran yang harus dilakukan. Tidak perlu menginstall aplikasi apapun, karena di sini kita menggunakan dua aplikasi berbasis online yaitu: 1) teachable machine, dan 2) google colab. Yuk, kita mulai.
1. Teachable Machine
Sebelum masuk ke situs buatan Google tersebut, ada baiknya kita memahami transfer learning. Istilah ini adalah istilah belajar hal baru tanpa melupakan pengetahuan yang lama. Misalnya kita belajar integral, kita tentu saja tidak menghapus pengetahuan yang lama, misalnya diferensial atau aljabar. Jadi ilmu yang lama tetap ada.
Teachable machine menggunakan beberapa model terkenal, biasanya berbasis tensorflow, yang sudah diajarai data sebelumnya, misalnya mengenali 1000 kelas objek dari puluhan juta gambar yang memang dimiliki dengan baik oleh Google. Setelah itu kita hanya mengajari model yang sudah diajari tersebut untuk mengenali hal baru, misalnya memakai masker atau tidak.
Jika model sudah mengenali masker kita tinggal memakai engine hasil training tersebut untuk kebutuhan kita. Di sini kita untuk eksperimen menggunakan Google Colab.
2. Google Colab
Aplikasi online ini adalah aplikasi berbasis python, khususnya jupyter notebook, yang dapat diakses gratis. Selain menyediakan environment dan software programming python, situs ini juga menyediakan server disertai GPU (dulu gratis sekarang bayar). Untuk data jangan khawatir karena dengan mudah terhubung dengan Google Drive yang sudah sebagian besar orang mengenal lokasi penyimpanan cloud ini. Jadi dengan hanya terhubung ke internet, lewat browser, kita dapa membuat aplikasi AI. Tentu saja Google Colab hanya untuk testing model yang kita buat, jika sudah ok tinggal kita implementasikan di desktop, web, maupun perangkat mobile.
Untuk mempelajari Google Colab, syaratnya Anda harus menguasai dasar-dasar Python, syukur-syukur sudah menguasai Jupyter Notebook dengan instruksi-instruksi PIP yang menginstall Library. Walaupun terkadang Google Colab sudah menginstall library-library yang ada saat ini terkadang ada saja library yang tidak terpasang, bahkan dalam video berikut ini ada yang perlu diupgradi pip-nya.
Saat ini aplikasi dengan memanfaatkan AI sudah banyak beredar. Aplikasi-aplikasi tersebut bisa berupa desktop yang dijalankan secara lokal di komputer, web dengan server web yang menjalankan AI maupun Android. Masing-masing memiliki keunggulan. Walaupun saat ini aplikasi berbasis desktop banyak ditinggalkan tetapi karena AI terkadang memerlukan sumber daya yang besar, yang saat ini sudah berupa big data, aplikasi desktop unggul dalam hal itu. Disamping itu, aplikasi berupa desktop, dengan executable application, lebih aman baik dari sisi serangan virus dari jaringan, maupun pencurian kode sumber. Postingan kali ini mengilustrasikan bagaimana proses AI dari training, hingga deployment dalam bentuk desktop application.
Currently, there are many AI applications available that can be deployed in various forms, such as desktop applications running locally on a computer, web applications with AI-powered web servers, or Android applications. Each of these forms has its advantages. Although desktop-based applications are being less favored nowadays, they excel in handling AI tasks that require significant resources, especially when dealing with big data. Furthermore, desktop applications, with their executable files, offer better security against network-based virus attacks and source code theft. This post illustrates the process of AI, starting from training to deployment in the form of a desktop application.
A. Training
Sebagai ilustrasi, di sini kita membuat AI yang memprediksi spesies bunga berdasarkan IRIS datasets yang dapat diunduh dari sini. Gunakan Visual Studio code atau editor lainnya untuk melatih model, misalnya Support Vector Machine (SVM) yang ada pada library Scikit Learn.
As an illustration, here we create an AI that predicts flower species based on the IRIS dataset, which can be downloaded from here. Use Visual Studio Code or any other editor to train the model, for example, using the Support Vector Machine (SVM) algorithm from the Scikit-Learn library.
Ketika dijalankan kode di atas akan melatih model SVC dari Iris Dataset (‘iris.csv’). Di sini penyimpanan dengan library Joblib (bisa juga dengan pickle). Tampak akurasi 100% berdasarkan data uji (20% dari datasets).
When running the above code, it will train an SVC model using the Iris Dataset (‘iris.csv’). In this case, the model is saved using the Joblib library (you can also use pickle). It appears that the accuracy is 100% based on the test data (20% of the dataset).
B. Prediction
Berikutnya adalah prediksi menggunakan GUI dari TKinter. Bisa juga dengan kivy, tapi ternyata ada masalah ketika di-compile menjadi exe. Silahkan tanya ChatGPT untuk menjalankan model hasil training (di sini diberi nama save_model.pkl).
Next is the prediction using a GUI made with Tkinter. It can also be done with Kivy, but there seems to be an issue when compiling it into an executable. Please ask ChatGPT to run the trained model (named save_model.pkl) for you.
Sebelum dikompilasi menjedi exe, terlebih dahulu cek dengan menjalankan kode tersebut, bisa dengan run – run without debugging (Ctrl F5) atau dengan terminal: python svm.py jika kode di atas disimpan dengan nama svm.py.
Before compiling it into an executable (exe) file, it is recommended to first check the code by running it. You can do this by either using “Run – Run Without Debugging” (Ctrl+F5) in your editor or by running the code in the terminal using the command “python svm.py” if the code is saved with the name “svm.py”.
Jika sudah benar (bandingkan dengan file exe iris.csv) apakah sudah sesuai jawabannya. Jika sudah kita mulai mengkompilasinya.
If the results are correct (compare them with the results from the exe file using iris.csv), then it seems to be working fine. If everything is correct, you can proceed with the compilation process.
C. Compile to Exe
Salah satu library terkenal untuk kompilasi adalah pyinstaller. Jalankan dengan mengetik:
One of the famous libraries for compilation is PyInstaller. Run the following command:
pyinstaller –onefile -w svm.py
Proses kompilasi membutuhkan waktu yang lama, sekitar 20 menit jika membutuhkan library-library tertentu, misal tensorflow, sklearn, dan lain-lain. Jika berhasil akan muncul file exe di folder dist yang terlebih dahulu dipindah di lokasi yang sama dengan model yang sudah dilatih (save_model.pkl) agar bisa dijlankan. Selamat, Anda telah berhasil membuat aplikasi desktop yang dapat dijalankan tanpa membutuhkan Python. Bandingkan, file py yang tadinya berukuran 3 Kb menjadi file exe yang berukuran 500-an Mb.
The compilation process can take a long time, around 20 minutes, especially if it requires specific libraries like TensorFlow, scikit-learn, and others. If successful, an executable file will appear in the `dist` folder. Move this file to the same location as the trained model file (`save_model.pkl`) so that it can be executed. Congratulations! You have successfully created a desktop application that can be run without requiring Python. Compare the file sizes, where the original `.py` file was around 3 KB, and the compiled `.exe` file is in the range of a few hundred MBs.
Silahkan lihat video Youtube berikut untuk lebih jelasnya. Please refer to the following YouTube video for a more detailed explanation: