Belajar AI dengan AI

Ada dua kubu pengertian AI yang terkenal yakni Russel [link] dan Elaine Rich [link]. Russel mendefinisikan 4 kuadran AI yakni think rationally, act rationally, think humanly, dan act humanly. Sementara Elaine Rich bersikukuh bahwa AI adalah bagaimana membuat komputer cerdas tetapi saat ini masih kecerdasannya di bawah manusia. Maksudnya adalah ada batas dimana ketika manusia sudah dikalahkan maka sudah tidak disebut AI lagi. Misalnya catur, ketika Kasparov di tahun 94 dikalahkan oleh Deep Blue buatan IBM, maka catur menurutnya sudah bukan AI lagi. Sama dengan permainan GO yg manusia sudah tidak bisa menang lagi melawan komputer. Silahkan percaya yang mana, tetapi yang kedua sepertinya sudah mulai terasa saat ini, yakni kekhawatiran AI mengalahkan manusia. Untuk think dan act rationally, okelah, tetapi jika think dan act humanly sudah dikalahkan AI, wah bisa repot. Saat ini penolakan mulai menghantui aplikasi AI, misalnya ChatGPT [link]. PBB pun sudah mewanti-wanti [link].

Tentu saja ibarat pisau yang bisa dipakai untuk kejahatan maupun kebaikan, ada baiknya bijak menggunakan AI. Misalnya memanfaatkan AI untuk belajar AI, salah satunya adalah ChatGPT. Aplikasi ini sangat praktis dalam belajar memrogram AI, atau setidaknya tidak hanya teori melainkan mempraktikannya secara langsung. Kita bisa belajar bagaimana AI diterapkan pada aplikasi Web yang saat ini ada, misalnya menambah ChatBot, similarity check, sistem rekomendasi, dan lain-lain. Tentu saja kemampuan menyisipkan AI di server web, misalnya PHP, DotNet dan sejenisnya. Selain pada Web, aplikasi desktop dan mobile sangat perlu juga diketahui bagi yang ingin belajar AI dasar, langsung praktik dan tidak hanya teori saja. Lintas platform pun dengan mudah dapat dilihat dengan hasil yang dapat dilihat langsung.

Dengan kecepatan membuat AI saat ini, kita hanya fokus ke bagian utama dari disain AI yaitu value. Beberapa hal yang ‘menjengkelkan’, ‘membosankan’, dan membuat ‘gundah’ masyarakat merupakan salah satu sasaran dari dibuatkannya AI. Hal-hal tersebut dapat dicapai dengan efisiensi, efektivitas, kecepatan, akurasi, dan kemudahan-kemudahan lainnya. Analisis dan diagnosis kesehatan bisa cepat dan murah, manajemen jadi tepat, dan lain-lain.

Masalahnya adalah standard untuk AI, seperti ISO, dan sejenisnya saat ini masih dalam tahap istilah, terminologi, dan lain-lain. PBB pun masih hanya masih berupa pertemuan untuk inisiatif-inisitaif seperti “The United Nations AI for Good Global Summit.”. Untungnya tiap domain implementasi, seperti pada kedokteran, transportasi, edukasi, dan lain-lain sudah punya standar yang dapat dipakai untuk membatasi penggunaan AI yang berlebihan.

Sebelum adanya kesepakatan, ada baiknya kita tetap memanfaatkan AI untuk hal-hal baik, salah satunya untuk belajar AI denga bantuan AI. Sekian semoga bermanfaat.

Membuat ChatGPT Sendiri

Tidak dapat dipungkiri bahwa ChatGPT membuat warna baru dalam persaingan Artificial Intelligence App di dunia. Dalam hitungan hari penggunanya sudah menyaingi beberapa situs-situs ternama. Hal ini karena fleksibilitasnya yang cukup memanjakan pengguna dibanding hanya sekedar search engine saja seperti Google, Bing, dan kawan-kawan.

Namun salah satu keterbatasannya adalah informasi terkait kondisi terkini atau kondisi spesifik tertentu, misalnya menanyakan informasi khusus seperti nama Anda sendiri. Biasanya jawabannya seperti ini:


Ok, jangan tersinggung, memang aplikasi ini tidak ditujukan sebagai search engine. Generative Pre-trained Transformer (GPT) sendiri merupakan model transformer yang cukup ampuh dalam mengelola Natural Language Processing (NLP). Ternyata Google mencoba mengembangkan Bidirectional Encoder Representations from Transformers (BERT) yang tidak kalah hebat.

Beberapa situs di internet banyak yang mengajarkan bagaimana membuat ChatBOT ala ChatGPT. Salah satunya adalah Github ini. Untuk mempraktikannya cukup dengan Google Colab. Misalnya saya menggunakan data Nilai Mata Kuliah Artificial Intelligence berupa tabel CSV.

Dengan memanfaatkan pretrained model dari HuggingFace yang lumayan juga ukurannya, hampir setengah Gigabyte.

Di sini kita akan membuat sistem Chat yang dapat menginfokan data.csv yang telah digunakan untuk transfer learning. Oiya, transfer learning adalah melatih model dengan data baru dari model yang sudah terlatih sebelumnya. Beberapa bobot dibekukan (freeze) agar info yang dahulu dapat dipakai lagi, sementara data baru menggunakan bobot yang biasanya diujung untuk belajar hal baru.

Tampak paramater yang dapat dilatih contoh di atas adalah 500an Mb sementara yang dibekukan 60-an juta parameter. Bagaimana penggunaannya? Sederhana saja, mirip ChatGPT. Jika kita ingin mencari informasi nilai dari tabel tersebut kita tinggal bertanya saja.

Yang tadinya model tidak bisa menjawab informasi tersebut (silahkan tanya ChatGPT, pasti jawabannya seperti gambar sebelumnya), sekarang bisa menjawab. Hal terpenting adalah model transformers dapat mengetahui susunan kata yang berbeda. Tinggal model tersebut diimplementasikan pada Web maupun mobile app.

Jadi jika kita akan membuat sistem ChatBOT yang menjawab masalah jadwal perkuliahan, prosedur pendaftaran dan lain-lain, alangkah baiknya menggunakan aplikasi ini. Saya pernah ditegur oleh bagian pusat layanan informasi/pusat informasi karena dianggap tidak men-share informasi dari rektorat ke jurusan yang saya pimpin (padahal sih udah), akibat mahasiswa yang kerap chat ke layanan informasi dan mengganggu waktu istirahatnya, karena sebagai manusia biasa butuh istirahat. Waktu pandemi COVID-19 memang mahasiswa butuh informasi tertentu terkait kuliahnya. Alangkah baiknya hal-hal yang kadang pertanyaannya ‘itu-itu saja’ bisa diganti dengan AI. Sekian, semoga bisa menginspirasi.

Menghitung Jumlah Parameter Pada Model Deep Learning

Ilmu terus berkembang dengan cepat, khususnya bidang computer science, bidang yang dulunya di bawah elektronika dan MIPA matematika. Beberapa organisasi, misalnya IEEE yang merupakan organisasi electrical and electronic engineering masih memasukan ilmu komputer dalam wilayah kerjanya. Istilah-istilah baru yang tidak ada pada bidang induknya membuat computer science terpaksa memisahkan diri dari teknik elektronika maupun MIPA. Pada postingan ini kita akan membahas satu istilah penting dalam Deep Neural Network atau dengan nama lain Deep Learning, yaitu istilah parameter.

Sebenarnya ada istilah lain yaitu fitur (feature) yang kalau dalam matematika bisa disebut variabel. Atau kalau bidang basis data dikenal dengan nama field yang merupakan kolom dalam database terstruktur. Mengapa parameter dalam ilmu komputer unik? Hal ini terjadi karena parameter yang kalau dalam matematika biasanya sudah konstan/fixed, pada ilmu komputer malah justru hal tersebut yang akan dimanipulasi/dikomputasi.

Bayangkan saja sebuah garis pemisah y = m*x + c misalnya, di sini m merupakan gradien dan c merupakan konstanta. Tugas classifier adalah membuat garis pemisah y yang tepat memisahkan sekelompok data, dengan cara mencari nilai m dan c yang optimal agar garis tersebut berada di antara dua kelas, misalnya kelas + dan -. Di sini m dan c merupakan parameter yang harus dicari agar persamaan tersebut optimal memisahkan. Dalam neural network, m dan c adalah bobot dan bias. Nah, bagaimana dengan fitur X? Nah, untuk ilmu komputer, ternyata fitur itu tidak sekedar variabel yang fix. Misalnya sebuah citra 32 x 32 akan memiliki fitur sebanyak 32 x 32 = 1024, yang kemudian diolah oleh neural network dengan beberapa layernya. Namun dengan konvolusi, misalnya pada jaringan Convolutional Neural Network (CNN) dengan filter berukuran 3×3 sebanyak tiga buah akan menghasilkan 3 buah citra baru dengan besar yang tidak jauh berbeda dari sebelumnya tetapi memiliki jumlah fitur yang makin banyak, unik juga bukan.

Seberapa besarkan jumlah fitur yang ada pada jaringan terkini, misalnya U-Net, network deep learning yang biasa digunakan sebagai semantic segmentation model. Oke, di sini kita coba dengan Matlab, model U-Net tersebut kita panggil.

Kemudian dengan memasukan script sederhana berikut ini akan diperoleh jumlah parameternya:

  • lgraph = layerGraph(net);
  • output = lgraph.Layers(end).Name;
  • prob = lgraph.Layers(end-1).Name;
  • lgraph = removeLayers(lgraph,output);
  • lgraph = removeLayers(lgraph,prob);
  • dlnet = dlnetwork(lgraph);
  • numparams = 0;
  • for i = 1:size(dlnet.Learnables,1)
  • numparams = numparams + numel(dlnet.Learnables.Value{i});
  • end
  • numparams

Sungguh di luar dugaan, ternyata parameter yang harus disetel saat proses yang dikenal dengan nama training sebesar 31-an juta parameter.

Dulu mungkin mustahil, sekarang dengan hardware yang kian canggih, khususnya dari sisi Graphic Processing Unit (GPU), sebuah laptop sederhana pun, misal i5 processor, mampu menjalankan dengan cepat proses segmentasi/klasifikasinya. Ok, semoga informasi singkat ini bisa menginspirasi.

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:

Editing with ChatGPT

Salah satu kelemahan yang dimiliki kebanyakan peneliti berbasis pembuatan sistem, aplikasi, dan sejenisnya adalah membuat laporan yang lengkap. Hal ini dapat dimaklumi karena mereka sudah menghabiskan banyak waktu dalam merakit/mendevelop sistem. Biasanya ada asisten yang mensuport dalam pembuatan laporan, tapi jika tidak ada, salah satu andalan adalah ChatGPT. Alat berbasis AI ini tentu saja tidak boleh langsung digunakan untuk menulis otomatis, karena beberapa plagiarism check sudah bisa mendeteksinya. Postingan ini sedikit memberi informasi manfaat apa saja.

One of the common challenges faced by researchers involved in system development, application creation, and similar fields is the task of producing comprehensive reports. This can be understood considering the significant amount of time they have invested in building and developing the systems. While there are usually assistants available to support in report writing, if they are not accessible, one reliable option is to rely on ChatGPT. However, it is important to note that this AI-based tool should not be directly used for automatic writing, as plagiarism checks are capable of detecting such attempts. This post provides some information on the benefits it offers instead.

A. Translate

Saya sudah lama mengenal translate Google, bahkan di awal-awal, sudah pernah mencoba dan sempat heran ketika mentranslate “my name is jack” menjadi “nama saya dongkrak”. Namun saat ini sudah cukup baik, hanya saja terkadang istilah yang digunakan kurang tepat. Untuk ChatGPT tinggal menambahkan “translate ke inggris:<paste kalimat>” saja. Untuk translate berikutnyat terkadang tidak perlu menulis translate sudah langsung mentranslate.

I have known Google Translate for a long time, even in the early days, I have tried it and was surprised when it translated “my name is jack” to “nama saya dongkrak”. However, it has improved now, although sometimes the terms used are not quite accurate. For ChatGPT, you just need to add “translate to English: <paste sentence>”. Sometimes, for subsequent translations, you don’t need to write “translate” as it automatically translates the text.

Selain translate, bisa juga dengan menulis “revise: <paragraf>” untuk mengecek salah ketik, tenses, dan sejenisnya.

In addition to translation, you can also use “revise: <paragraph>” to check for typos, tenses, and similar errors.

B. Inserting Text

Selain malas menulis, terkadang software developer hanya menyajikan tabel, gambar, dan sejenisnya tanpa menambahkan informasi yang terkadang perlu diketahui oleh pembaca. Misalnya rentetan tabel atau gambar seperti berikut. Biasanya jurnal tidak menyukai style ini.

Apart from being lazy to write, sometimes software developers only present tables, images, and the like without adding information that readers may need to know. For example, a series of tables or images like the following. Usually, journals do not prefer this style.

Blok saja satu tabel di atas, lalu tulisakan “Buat satu kalimat tentang ini: <paste>” pada ChatGPT. Hasilnya adalah sedikit informasi tentang tabel yang dimaksud.

Block only one table above, then write “Create a sentence about this: <paste>” on ChatGPT. The result is a brief information about the mentioned table.

Jika terlalu ‘norak’, bisa dengan mengganti “Table 4, referred to as …” menjadi nama tabel saja. Sehingga dihasilkan bentuk seperti ini.

If it’s too ‘tacky’, you can change “Table 4, referred to as …” to just table name. So it will result in a format like this.

Masih banyak fasilitas-fasilitas lain yang diberikan ChatGPT. Tentu saja, namanya tool, sebaiknya hanya sebagai alat bantu saja. Terima kasih.

There are still many other features provided by ChatGPT. Of course, as its name suggests, it’s best to use it only as a tool. Thank you.

Buldozer for developing Python applications on Android

Mobile applications saat ini merupakan aplikasi yang paling banyak dipakai. Sebagai contoh, hampir jarang pengguna Facebook dengan browser. Mulai dari taxi online, hingga pembarayan menggunakan handphone. Kemudahan karena bentuk yang mudah dibawa menuntuk aplikasi-aplikasi (desktop dan website) disiapkan juga versi mobile-nya. Postingan kali ini hanya mengilustrasikan bagaimana mengkonversi aplikasi berbasis python yang kita buat menjadi aplikasi mobile, salah satu yang terkenal adalah berbasis Android.

Mobile applications are currently the most widely used applications. For example, it is rare to find Facebook users accessing it through a browser. From online taxis to mobile payments, smartphones have made it convenient to access various applications. As a result, many applications (both desktop and website-based) have prepared mobile versions. This post will illustrate how to convert a Python-based application into a mobile application, specifically focusing on the popular Android platform.

A. Kivy

Salah satu library python yang banyak digunakan untuk membuat aplikasi Python agar bisa berjalan di mobile app adalah Kivy, lihat post terdahulu untuk lengkapnya. Masih menggunakan aplikasi pada post sebelumnya sebagai ilustrasi. Berikut tampilan GUI dengan Kivy setelah dirunningl.

One of the widely used Python libraries for creating Python applications that can run on mobile apps is Kivy, as mentioned in the previous post. Continuing with the application from the previous post as an illustration, here is the GUI appearance with Kivy after running it.

B. Buldozer

Buldozer merupakan satu paket berbasis Python untuk membuat apk dari bahasa Python yang dibuat dengan library kivy. Kira-kira tampilannya sebagai berikut. Silahkan lihat di google colab ini. Uniknya, buldozer dapat dijalankan lewat Google Colab, sehingga hanya membutuhkan browser saja. Metode lainnya lihat postingan ini.

Bulldozer is a Python-based package for creating APK files from Python code built with the Kivy library. Here is an example of its appearance. Please refer to this Google Colab link for more details. The unique feature of Bulldozer is that it can be executed through Google Colab, requiring only a web browser. For alternative methods, please refer to this post.

C. File Buldozer.spec

Perhatikan setiap instalasi pada cell di colab jangan sampai ada error (berwarna merah). Ketika inisialisasi, buldozer.spec muncul dan siap dijalankan, juga dengan Google Colab. Ganti nama aplikasi, tampilan splash dan icon. Untuk requirements di baris ke 40 tambahkan library-library yang digunakan, beserta versinya, misalnya kivy==2.2.0. Library lain tambahkan jika ada di impor pada header python, misal pillow, tensorflow, dll.

Please ensure that there are no errors (in red color) during the installation process in each cell in Colab. When initializing, the bulldozer.spec file will appear and is ready to be executed, even in Google Colab. You can rename the application, customize the splash screen, and change the icon. In line 40, add the required libraries along with their versions to the requirements, for example, kivy==2.2.0. If there are any additional libraries imported in the Python header, such as Pillow, TensorFlow, etc., please include them as well.

Jangan lupa menghilangkan hastag # jika akan digunakan. Please remember to remove the ‘#’ symbol if you intend to use the code.

D. Menjalankan (running) File Apk

Nah, repotnya adalah proses kompilasi yang hampir setengah jam. Jika sudah tinggal dipindah apk yang dihasilkan untuk diinstal di handphone. Lokasi apk ada di folder bin. Pastikan Android paket sudah selesai terbentuk di bagian akhir google colab.

Well, the inconvenience lies in the compilation process which takes nearly half an hour. Once it’s done, you just need to transfer the generated APK file to your mobile device for installation. The APK file can be found in the ‘bin’ folder. Make sure that the Android package has been successfully created towards the end of Google Colab.

Tampilannya kira-kira seperti ini, mirip dengan versi Kivy python.

The appearance would be something like this, similar to the Kivy Python version.

Sekian, video youtube dapat dilihat di link berikut, terima kasih.

That’s all, the YouTube video can be viewed at the following link. Thank you.

Generating a Dataset with ChatGPT

Whether it is Data Mining, Machine Learning, or Deep Learning, they all depend on datasets in any implementation domain. Sometimes, obtaining datasets can be very challenging due to their large size, rarity, strict permission requirements, and so on. This post will provide information on how to use ChatGPT to create datasets.

Alright, let’s try for a Natural Language Processing (NLP) case where a dataset is needed for text classification (sometimes referred to as text categorization). For example, with COVID, there are four variants: alpha, beta, gamma, and delta. Now, the system is asked to detect news that discusses which variants. Therefore, five classes are needed: alpha, beta, gamma, delta, and others.

Just ask ChatGPT: Can you give me a news paragraph about the “Alpha” COVID-19 variant?. Then, a paragraph of information will appear. Now, we just need to type again: Can you add 9 similar paragraphs? (if you want to get 10 articles for the “Alpha” class)..

Next, you can transfer the information to a CSV file that will be used for the training process. Of course, you can add as much data per class as possible. That’s all, I hope it’s useful.

Menyikapi ChatGPT

Beberapa media online mulai memberitakan kalau ChatGPT akan diblokir, alasannya karena belum terdaftar di sistem Penyelenggara Sistem Elektronik (PSE) Kominfo. Tapi sepertinya itu hanya masalah administrasi, bagaimana dari sisi konten? Apakah berdampak negatif?

Kalau kita lihat visi AI Indonesia 2045 tampak Etika dan Kebijakan sebagai landasar, infrastruktur & data dan pengembangan talenta sebagai pilar untuk menopang 4 area fokus dan 5 bidang prioritas AI.

https://ai-innovation.id/server/static/ebook/stranas-ka.pdf

AI Sebagai Senjata

Memang sudah ada kekhawatiran tentang dampak AI, bahkan sudah dibahas di PBB (link). Sebenarnya AI itu sendiri mirip dengan pertama kali diperkenalkannya komputer, dimana sekutu berhasil membongkar kode mesin enkripsi elektromekanis Jerman, Enigma, lewat tangan Alan Turing. Komputer yang dahulu sebagai alat support/pendukung sekarang sudah berubah menjadi IT yang berperan bak senjata agar unggul dalam persaingan. Industri 4.0 mulai memasukan AI sebagai komponennya.

AI Untuk Mengejar Ketertinggalan

Semua mengakui kita masih tertinggal dengan negara lain, bahkan di Asia Tenggara sekalipun. Jika ada ‘sepatu’ yang membuat kita berlari cepat menyusul negara-negara lain, terutama negara maju, bisa jadi namanya Artificial Intelligence (AI). Lihat 5 bidang prioritas AI di Indonesia gambar di atas. Jika ingin memanfaatkan ChatGPT guna mengetahui ‘hal-hal yang orang lain tahu’ tentu saja tidak ada salahnya, kecuali ‘hal-hal yang sebaiknya tidak boleh tahu’, yang ini jatuh di ranahnya kebijakan. Di mana-mana mengejar harus berlari, bahkan harus lebih cepat dari larinya sesuatu yang dikejar. Saya teringat ketika kuliah dulu, dosen bertanya ke mahasiswa Thailand, dapat materi variabel kompleks kapan? Dijawab ketika S1, begitu juga Indonesia dan negara asia tenggara lain, seperti Viet Nam dan Malaysia. Tapi ketika ditanya ke mahasiswa Perancis, ternyata sudah memperoleh dari bangku sekolah menengah atas. Jika ada sesuatu yang secara gratis dan mudah membuat orang tahu lebih cepat, sepertinya cocok untuk negara yang sedang berkembang, apalagi yang untuk makan saja butuh kerja keras (kecuali sebagian kecil rakyat seperti kasus viral gaya hidup mewah anak-anak pejabat saat ini). Untuk yang ingin melihat tanggapan para profesor bisa lihat youtube berikut.

Problem Matriks Konfusi Pada ChatGPT dan Solusinya

Peneliti machine learning pasti mengenal matriks konfusi. Matriks konfusi (confusion matrix) adalah sebuah tabel yang digunakan untuk mengevaluasi performa model klasifikasi. Matriks konfusi menunjukkan jumlah prediksi yang benar dan salah yang dilakukan oleh model pada setiap kelas yang ada.

Matriks dua dimensi ini memiliki kolom sebagai prediksi dan baris sebagai nilai aktual/real/ground truth. Untuk Anda yang ingin memanfaatkan ChatGPT dapat menjalankan instruksi berikut. Pertama-tama masukan elemen dari matriks konfusi dengan format (baris, kolom).

Tampak nama kelas dengan True Positive, True Negative, False Positive dan False Negative-nya. Untuk menghitung Presisi, Recall, F1-Score, dan total akurasi dapat juga minta bantuan AI tersebut, tapi ternyata banyak kesalahan dalam perhitungannya.

Perhatikan Presisi (precision) untuk Agricultural, hasilnya ngaco. Namun cara/langkahnya benar. Oleh karena itu tetap harus menghitung sendiri. Caranya gampang, buka saja Excel, lalu copas angka-angka di atas.

Hasilnya 0.838257 yang jauh berbeda dengan hitungan sebelumnya: 0.942720. Biasanya sih TP, TN, FP, dan FN untuk kelas biner, lihat video berikut.

Model Neural Network Sederhana – Tensorflow & Web-based Python

Scikit-learn menyediakan modul Neural Network (NN) untuk melakukan klasifikasi data iris menggunakan algoritma MLPClassifier (Multilayer Perceptron Classifier). Algoritma ini memungkinkan pengguna untuk membangun model jaringan saraf tiruan dengan mempertimbangkan parameter seperti jumlah lapisan, jumlah neuron pada setiap lapisan, dan aktivasi fungsi untuk setiap neuron. Namun, saat ini penggunaan Tensorflow lebih dominan dari pada MLPClassifier.

Alur preprocessing dengan StandardScaler untuk klasifikasi dengan TensorFlow Neural Networks umumnya terdiri dari beberapa tahapan, yaitu:

  • Import library: Pertama, kita harus mengimpor library TensorFlow dan Scikit-learn (yang berisi StandardScaler) ke dalam program Python.
  • Load data: Data iris (atau data lain yang akan diklasifikasikan) harus dimuat ke dalam program Python. Data ini kemudian akan diproses dan dimasukkan ke dalam model jaringan saraf tiruan TensorFlow.
  • Preprocessing: Langkah berikutnya adalah preprocessing data menggunakan StandardScaler. StandardScaler melakukan normalisasi data dengan mengubah rata-rata menjadi nol dan standar deviasi menjadi satu. Ini membantu mempercepat proses konvergensi dan mengurangi dampak outlier pada hasil klasifikasi.
  • Split data: Data yang sudah di-preprocessing kemudian dibagi menjadi data latih dan data uji. Data latih digunakan untuk melatih model, sedangkan data uji digunakan untuk menguji performa model.
  • Definisikan model: Model TensorFlow Neural Networks didefinisikan dengan menentukan jumlah lapisan dan jumlah neuron pada setiap lapisan. Kemudian, fungsi aktivasi untuk setiap neuron ditentukan.
  • Latih model: Model kemudian dilatih dengan data latih menggunakan fungsi optimizer dan fungsi loss untuk menghitung gradien dan memperbarui bobot dan bias jaringan saraf.
  • Evaluasi model: Setelah model dilatih, model dievaluasi dengan data uji untuk mengukur akurasi, presisi, dan metrik lainnya.

Dengan menggunakan alur ini, kita dapat mengklasifikasikan data iris (atau data lainnya) menggunakan TensorFlow Neural Networks dengan tingkat akurasi yang lebih baik. Preprocessing data menggunakan StandardScaler membantu meningkatkan kinerja model dan membuatnya lebih stabil. Berikut ilustrasi pembuatannya.

AI and Neuro-Fuzzy Theory

Tahun 2014 saya pernah memperoleh kuliah Artificial Intelligence (AI) & Neuro-Fuzzy Theory. Ternyata materi ini sangat padat karena gabungan 2 mata kuliah yang saat ini saya ajar AI + Computational Intelligence (CI).

Neural networks atau jaringan saraf adalah sebuah konsep pemodelan matematis yang terinspirasi dari cara kerja otak manusia. Konsep ini telah ada sejak awal abad ke-20 dan telah mengalami banyak perkembangan sejak saat itu. Pada awalnya, konsep jaringan saraf digunakan untuk memodelkan bagaimana neuron-neuron dalam otak manusia berinteraksi satu sama lain. Namun, pada tahun 1940-an, para peneliti mulai menggunakan konsep ini untuk membangun mesin-mesin yang dapat melakukan tugas-tugas seperti mengenali pola pada gambar dan suara.

Pada tahun 1950-an, sebuah mesin jaringan saraf pertama kali dikembangkan oleh Frank Rosenblatt, yang dikenal sebagai “Perceptron”. Mesin ini dapat mengenali pola pada gambar dan mampu membedakan antara huruf “X” dan “O”. Namun, pada saat itu, mesin jaringan saraf masih sangat terbatas dan hanya mampu menangani masalah-masalah sederhana. Selain itu, kemampuan komputasi pada waktu itu juga masih terbatas dan membatasi perkembangan jaringan saraf. Meskipun begitu, konsep jaringan saraf tetap terus berkembang dan menjadi salah satu bidang yang paling menjanjikan dalam pengembangan kecerdasan buatan saat ini. Video berikut cuplikan kuliah tentang pentingnya AI dan NNs di awal ditemukan dengan praktik via Jupyter Notebook.

Masih Rekrutmen Tanpa Ijazah?

Beberapa waktu yang lalu banyak beredar di medsos informasi bahwa perusahaan raksasa seperti Apple, Google, dll merekrut karyawan tanpa perlu menunjukan ijazah. Berita tersebut sangat menohok dan terkesan mengerdilkan institusi pendidikan. Memang ini salah kampus juga yang tidak bisa mengikuti kemauan pasar, yaitu organisasi pemakai lulusan. Namun informasinya institusi sekelas Google membutuhkan bukti tertentu kepada calon karyawan yang mendaftar tanpa ijasah.

Terkadang memang, programmer tertentu tidak memiliki pendidikan formal. Karena bakat, ketekunan, dan keingintahuannya bisa belajar dengan cepat, baik otodidak maupun kursus kilat yang banyak tersedia. Youtube, milist, Github, atau sekedar Googling dengan cepat mampu memahami bahasa pemrograman tertentu. Apalagi saat ini aplikasi berbasis AI seperti ChatGPT mampu ‘mengajari’ lewat chatting apa saja, khususnya pemrograman. Silahkan lihat video berikut bagaimana menjalankan Web-based Python lewat ‘chatting’.

Artificial Intelligence (AI) merupakan salah satu bidang standar minimal kompetensi S1 (sarjana). Diharapkan peserta didik mampu menerapkannya. Untuk S2 dan S3 mampu mengembangkan bidang tersebut. Nah, jika organisasi ingin mendapatkan keunggulan kompetitif pada sistemnya, tidak ada jalan lain untuk memanfaatkan AI yang mulai menyusup ke segala lini.

Pendiri Google kabarnya ‘turun gunung’ mengingat ancaman AI mulai terasa. Bahkan dengan jumlah 1 juta pengguna yang oleh Netflix butuh 3.5 tahun ternyata ChatGPT hanya butuh 5 hari (link).

Jika masih diam saja, servis-servis lain Google seperti mail, Youtube bisa saja dikalahkan pemain baru dengan kemampuan AI yang terintegrasi Chat dan sejenisnya. Dengan chat yang teks saja sudah begitu heboh apalagi dalam bentuk gambar dan video. Untuk itu diperlukan periset-periset tangguh yang tentu saja tidak bisa lagi merekrut ‘tanpa ijasah’, mutlak diperlukan peneliti-peneliti yang tidak hanya jago praktis, melainkan juga teoritis dan analitis. Yuk, mulai oprek-oprek AI.

 

Analisa Sentimen dengan Generative Pre-trained Transformer (GPT)

Generative Pre-Trained Transformer (GPT) merupakan salah satu engine pada ChatGPT dalam memberikan respon terhadap pertanyaan ketika chatting. Biasanya analisa sentimen menggunakan Naïve Bayes, SVM, Random Forest, Neural Network, Gradient Boosting, dan yang terkini BERT. Namun GPT ternyata dapat digunakan untuk analisa sentimen.

Berikut ketika saya tanya konten: “Pemerintahan saat ini sangat buruk. Tidak banyak membantu masyarakat. Hanya menguntungkan pemilik modal atau orang-orang kaya saja.” Ternyata jawabannya di luar dugaan, tidak hanya menebak dengan baik, penjelasannya pun masuk di akal.

Untuk yang tertarik dengan sentiment analysis, tidak ada salahnya menggunakan model GPT untuk menganalisa sentimen. Tentu saja perlu pengecekan kecepatan proses mengingat saat ini masih Naïve Bayes yang paling cepat, walaupun kalah akuran dengan lainnya.

Kebanyakan riset menganalisa konten twitter yang memang gaya bahasanya ‘jeplak’ tanpa ‘tedeng aling-aling’ sehingga sangat mudah untuk analisa sentimen. Bagaimana dengan media masa dengan bahasa yang terkadang penuh dengan retorika, majas, ironi, dan sejenisnya. Misal saya menanyakan sebagai berikut:

Menurut anda, kalimat: “pemerintahan saat ini sungguh hebat, para koruptor, politikus licik, dan kutu loncat politikus sangat dimanjakan”, bersentimen positif atau negatif? Jawabannya sungguh di luar dugaan:

Kalimat “pemerintahan saat ini sungguh hebat, para koruptor, politikus licik, dan kutu loncat politikus sangat dimanjakan” sebenarnya bersentimen negatif, meskipun secara tertulis dapat diartikan sebagai sentimen positif.

Dalam kalimat tersebut, meskipun ada pengakuan positif terhadap pemerintahan saat ini yang disebut sebagai “sungguh hebat”, namun ungkapan selanjutnya menyatakan bahwa para koruptor, politikus licik, dan kutu loncat politikus sangat dimanjakan. Ungkapan tersebut jelas menunjukkan pandangan negatif terhadap pemerintahan, karena pemerintah yang hebat tidak akan memanjakan atau mendukung keberadaan koruptor, politikus licik, dan kutu loncat politikus.

Dalam analisis sentimen, kalimat-kalimat seperti ini cenderung dikategorikan sebagai sentimen negatif karena mengungkapkan pandangan atau evaluasi yang tidak menyenangkan atau merugikan terhadap suatu subjek atau topik.

Gimana? Perlu jadi pertimbangan dong model GPT untuk analisa sentimen?

Selamat Datang AI

Beberapa film menunjukan dampak positif dan negatif dari penggunaan AI di dunia. Dari film ‘AI’ dengan tokoh utamanya robot anak, robocop robot polisi, hingga yang membahayakan seperti David dalam film “Prometheus” (diberi kemampuan berkehendak, akhirnya merusak satu planet, hingga berambisi menjadi tuhan).


Banyak yang mengkhawatirkan masuknya AI tanpa adanya batasan. Mungkin karena bisa dimanfaatkan untuk kejahatan, atau bisa merugikan di kemudian hari walau saat ini mungkin belum terasa dampaknya. Salah satu AI yang cukup mengganggu misalnya engine pada catur (www.lichess.org atau www.chess.com), membuat wasit membutuhkan alat bantu apakah seseorang menggunakan engine atau tidak, hingga perlu AI juga untuk mendeteksi pemain menggunakan engine atau tidak.

Yang saat ini heboh adalah chatgpt (https://chat.openai.com/chat) dengan kemampuan seperti google tapi mampu berkomunikasi layaknya manusia. Beberapa waktu yang lalu saya memiliki masalah (vektorisasi data NLP dengan TF-IDF yang keluarannya tidak sesuai dengan jumlah record). Dengan google saya perlu mencari kasus-kasus yang mirip, dan mentok ke problem-problem yang sering terjadi saja.

Uniknya ketika masih mentok, belum ada jawaban yang fix, dia bertanya “bisa mengirim sample kode?”. Nah ketika saya paste potongan kode ke chatgpt, makhluk buatan ini langsung menjelaskan detil disertai revisi kodenya dimana [‘text_column’] harus ditambahkan, tidak hanya transform(db_df).

Bahkan Scopus sendiri memasukan ChatGPT sebagai Co-Author artikel ilmiah. Hal ini menyamakan level AI layaknya Co-Author saat ini (manusia). Kita tunggu saja apakah ChatGPT bisa sebagai First Author, dari merancang riset, menulis, submit dan lain-lain.

Aplikasi ini juga mengancam pengajar (guru dan dosen) dalam proses pembelajaran, terutama dalam tugas dan ujian. Mesin-mesin plagiasi perlu mencari cara apakah suatu tulisan dibuat manusia ataukah engine AI. Di Perancis, aplikasi ini dianggap ‘high risk’ dan diband (Link).

Bagaimana jika seorang teroris membuat ChatGPT palsu kemudian secara diam-diam chat dengan anak-anak muda dan melakukan doktrinasi ke remaja-remaja yang masih labil yang tanpa sadar si remaja itu chat dengan manusia yang menyamar sebagai engine dan mengajarkan hal-hal berbahaya.

Selama idola, fans, role model masih manusia, entah itu atlit, artis, guru dan dosen, keberadaan kita masih dibutuhkan. Guru dan dosen pun jadi sadar bahwa tidak hanya transfer ilmu dan skill saja yang diiperoleh dari institusi pendidikan melainkan akhlak, teladan yang baik, hingga bertambahnya network/jaringan/circle. Sekian, semoga bisa menginspirasi.