Tentang PantunGPT
Proyek final Club AI: membangun model bahasa kecil dari nol, melatihnya dengan pantun Indonesia, lalu menjalankannya langsung di browser.
Dari teks sampai pantun di layar
- Data. Sekitar 7.900 pantun dari dataset SAMPIRAN dibersihkan, duplikatnya dibuang, lalu dibagi menjadi data latih, validasi, dan uji. Pantun yang mirip selalu masuk bagian yang sama agar evaluasi jujur.
- Token. Setiap huruf, spasi, dan pergantian baris menjadi satu angka. Kosakatanya hanya32 token.
- Model. Transformer decoder-only dengan 4,8 juta parameter, ditulis sendiri dengan PyTorch dan dimulai dari bobot acak. Tidak memakai model pralatih atau API.
- Training. Di Google Colab, model belajar menebak huruf berikutnya pada ribuan pantun.
- Export. Model diubah ke format ONNX dan diuji agar hasilnya sama dengan PyTorch.
- Browser. ONNX Runtime Web (WebAssembly) menjalankan model di perangkatmu. Tokenizer dan pemilihan huruf ditulis ulang dalam TypeScript dan diuji terhadap hasil Python.
Keterbatasan
- Model belajar bentuk pantun, bukan makna. Isi sering tidak nyambung dan kadang muncul kata yang tidak ada.
- Rima ABAB tidak selalu terbentuk. Penanda rima di halaman utama hanya perkiraan otomatis.
- Model tidak bisa diminta tema. Kolom awal baris hanya dilanjutkan, bukan dipahami.
- Model hanya mengenal huruf kecil a–z, spasi, dan pergantian baris. Huruf kapital diubah menjadi huruf kecil, sedangkan angka dan tanda baca dibuang.
- Output tidak disaring. Data latih berasal dari internet dan bisa memuat candaan yang kurang pantas.
Kredit dataset
SAMPIRAN: An Indonesian Pantun Dataset, dibuat oleh Emmanuella Anggi Siallagan di Fakultas Ilmu Komputer, Universitas Indonesia.
Siallagan, E. A., & Alfina, I. (2023). Poetry Generation for Indonesian Pantun: Comparison Between SeqGAN and GPT-2. Jurnal Ilmu Komputer dan Informasi, 16(1), 59–67.
Sesuai ketentuan dataset, salinan dataset tidak disebarkan di website atau repository ini.
Referensi
- nanoGPT dan makemore oleh Andrej Karpathy, sebagai bahan belajar.
- ONNX Runtime Web untuk menjalankan model di browser.