Action Chatbot Sederhana

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).

Penerapan BERT untuk Name Entity Recognition (NER)

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.

Tambah Informasi ke Chatbot via RAG: Jawaban Lebih Akurat Tanpa Pelatihan Ulang

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 di Play-With-Docker (PWD)

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.

Push Docker Image dengan Play With Docker

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.

Chatbot Berbasis Web

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.

Chatbot .. Chat dengan Robot

“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.

Deploy AI dengan Docker

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.

Mengatasi Problem Keterbatasan Server Lab di Indonesia

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.

Problem API Tidak Bisa Diakses Komputer Lain

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:

from flask import Flask, jsonify

from flask_cors import CORS

app = Flask(__name__)

CORS(app, resources={r”/api/*”: {“origins”: “*”}})

# Contoh endpoint

@app.route(‘/api/data’, methods=[‘GET’])

def get_data():

    return jsonify({‘message’: ‘Data dari API’})

if __name__ == ‘__main__’:

    app.run(debug=True, host=’0.0.0.0′)

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.

Instal Visual Studio Code pada Apple Silicon Processor

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.

Publish Gratis Web-Based AI dengan Streamlit Share

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.

Mencoba Sendiri Teknologi AI Terkini

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.

Desktop-Based Artificial Intelligence

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:

Desktop-Based Python Application

Aplikasi komputer dapat berjalan lewat desktop, web, maupun mobile. Masing-masing memiliki kelemahan dan kelebihan. Postingan kali ini membahas bagaimana membuat aplikasi desktop pada Python.

Computer applications can run on desktop, web, or mobile platforms. Each platform has its own strengths and weaknesses. In this post, we will discuss how to create a desktop application using Python.

Pada dasarnya Python seperti Java, PHP, dan lain-lain merupakan interpreter, dimana untuk menjalankan suatu aplikasi dengan terlebih dahulu menginstal sejenis runtime. Untuk Python tentu saja menginstal Python terlebih dahulu, baik versi 2 maupun 3. Dan ketika menjalankan lewat instruksi di terminal:

Basically, Python, like Java, PHP, and others, is an interpreter where running an application requires installing a runtime of a similar kind. For Python, you need to install Python itself first, either version 2 or 3. When running it through instructions in the terminal:

python <nama_aplikasi>.py

Walaupun itu merupakan jenis desktop, tetapi masih memerlukan instalasi Python di dalamnya. Nah, bagaimana membuat aplikasi desktop yang berjalan tanpa requirements yang harus dipasang terlebih dahulu? Caranya adalah jika dengan platform Windows lewat executable program yang berekstensi .exe atau .com. Bagaimana caranya? Seperti postingan yang lalu, dengan library pyinstaller pada Python. Jika pada postingan tersebut kita hanya mengkonversi menjadi exe saja, kali ini kita coba membuat aplikasi berbasis GUI.

Even though it’s a desktop application, it still requires installing Python within it. Now, how can we create a desktop application that runs without any pre-installation requirements? The approach is to use an executable program with the .exe or .com extension, specifically for the Windows platform. How can we do that? Just like the previous post, we can use the PyInstaller library in Python. While in the previous post, we only converted it into an exe file, this time we’ll try to create a GUI-based application.

A. Kivy

Salah satu library pada Python untuk membuat GUI yang baik adalah Kivy. Library ini walaupun dapat dikonversi menjadi mobile lewat library buldozer ternyata bermasalah ketika menjadikannya executable (.exe). Hal ini karena kompleksitasnya, ditambah lagi sejatinya memang untuk linux.

One of the libraries in Python for creating good GUIs is Kivy. Although this library can be converted for mobile use through the Buldozer library, it turns out to have issues when making it executable (.exe). This is due to its complexity, compounded by the fact that it is primarily designed for Linux.

B. TKinter

Nah, library lain yang dapat digunakan adalah TKinter. Library ini dapat membuat GUI untuk interface aplikasi Python. Walaupun kurang lengkap dibanding Kivy yang saat ini kian terkenal, TKinter memiliki kemampuan untuk dikonversi menjadi executable program.

Well, another library that can be used is Tkinter. This library allows you to create GUIs for Python applications. Although it may be less feature-rich compared to the increasingly popular Kivy, Tkinter has the ability to be converted into an executable program.

C. Pyinstaller

Ini merupakan library yang cukup baik untuk mengkonversi .py menjadi .exe. Saingan yang lain saya coba banyak gagalnya, misalnya py2exe, dan kawan-kawannya. Untuk menggunakannya instal terlebih dahulu:

This is a quite good library for converting .py files to .exe. Other competitors that I’ve tried had many failures, such as py2exe and its counterparts. To use it, you need to install it first:

pip install pyinstaller

Jika sudah siapkan aplikasi dengan TKinter, misalnya menjumlahkan secara sederhana dua angka. Untuk gampangnya silahkan tanya saja ChatGPT untuk samplenya.

If you have already prepared the application with Tkinter, for example, a simple addition of two numbers. To make it easier, feel free to ask ChatGPT for a sample.

Berikutnya kita tinggal mengetikan pada terminal di folder yang sama dengan kode python. Misal kode Python di atas diberi nama tesgui.py.

Next, you just need to type the following command in the terminal, assuming that the Python code is saved with the name “tesgui.py” in the same folder:

pyinstaller –onefile -w gui2.py

Tergantung besar atau kecilnya file py, pyinstaller akan mengkonversi menjadi exe. Hasilnya adalah sebuah file tesgui.exe yang terletak di folder dist.

The conversion of the .py file to an .exe file by PyInstaller depends on the size of the Python file. The result will be a tesgui.exe file located in the “dist” folder.

Jalankan saja file hasil kompilasi tersebut, tinggal dobel klik saja. Hasilnya akan muncul seperti berikut ini. Sederhana bukan? Silahkan coba model yang lebih kompleks, untuk tensorflow sepertinya perlu perlakuan khusus, karena sempat saya coba tidak muncul hasil eksekusi-nya, hanya GUI saja.

Just run the compiled file by double-clicking on it. The result will appear as follows. Simple, isn’t it? Feel free to try more complex models. For TensorFlow, it may require special treatment because when I tried it, the execution results didn’t appear, only the GUI.