📖 Tentang SasakLLM
SasakLLM adalah inisiatif riset kecerdasan buatan (Artificial Intelligence) terbuka untuk melestarikan, mendokumentasikan, dan mendigitalisasi Bahasa Sasak—bahasa daerah yang dituturkan oleh lebih dari 3 juta jiwa masyarakat di Pulau Lombok, Nusa Tenggara Barat.
Berbeda dengan sistem penerjemahan konvensional yang menerjemahkan kalimat ke Bahasa Indonesia terlebih dahulu, SasakLLM bekerja secara langsung (Direct Language Generation):
- Memahami Konteks Murni: Memproses pertanyaan dalam Bahasa Sasak dan langsung berpikir dalam semantik Bahasa Sasak tanpa perantara Bahasa Indonesia.
- Kaya Morfologi Aglutinatif: Mampu mengurai afiksasi rumit (nasalisasi, prefiks N-, be-, te-, konfiks ke-...-an, dan reduplikasi) dengan akurasi lematisasi akar kata mencapai 99.0% pada test set terkunci.
- Menguasai Undak-Usuk / Tingkat Tutur: Mampu membedakan register bahasa santai (Basa Jamaq) dengan bahasa halus penghormatan (Basa Alus / Krama / Mider).
- Resonansi Budaya & Sastra Lokal: Memiliki wawasan mendalam mengenai cerita rakyat Lombok (Putri Mandalika, Bau Nyale, Rinjani, Cupak Gerantang), peribahasa (Sesenggakan), dan pantun (Lelakaq).
💬 Coba Langsung di Browser (Web Demo)
Anda dapat menguji model secara langsung tanpa perlu instalasi melalui Hugging Face Spaces:
👉 https://huggingface.co/spaces/kodetr/SasakLLM-Chat
(Mendukung respons dwibahasa Sasak-Indonesia dan konversi otomatis ke Aksara Sasak / Jejawan).
🏆 Hasil Evaluasi Empiris Komprehensif (Academic Benchmark)
Model SasakLLM v5 telah dievaluasi secara ketat menggunakan metrik standar riset NLP & Large Language Model (ACL / IEEE Framework) pada GPU Nvidia T4 (CUDA):
Table with columns: Dimensi Pengujian, Metrik Formal NLP, Sampel Uji, Skor Capaian, Status & Karakteristik| Dimensi Pengujian | Metrik Formal NLP | Sampel Uji | Skor Capaian | Status & Karakteristik |
|---|
| Morfologi (Test Set Terkunci) | Exact Match (EM) | 100 kata | 99.00% | ⭐⭐⭐⭐⭐ Sangat Unggul (99 dari 100 kata lematisasi benar) |
| Dialektologi Komparatif | Exact Match (EM) | 15 soal | 46.67% | ⭐⭐⭐⭐☆ Meningkat Signifikan (Pemetaan 5 dialek Mahsun 2006) |
| Budaya Lombok & Guardrails | Exact Match (EM) | 25 soal | 28.00% | ⭐⭐⭐☆☆ Solid (100% akurat pada Mandalika, Rinjani, Bau Nyale) |
| Kamus & Leksikon Balai Bahasa | chrF++ (word-order 2) | 30 kata | 9.66% | ⭐⭐⭐☆☆ Konsisten (Leksikon kosa kata terpadu Balai Bahasa NTB) |
| Kelancaran Dialog (Conversational) | ROUGE-L (F1) | 25 dialog | 5.91% | Respon sopan bernilai sastra Sasak (Verbosity Penalty) |
| Kelancaran Intrinsik (Perplexity) | Perplexity (PPL) | Held-out Corpus | 9.14 PPL | ✅ Sangat Fasih (PPL<10 menandakan model konvergen stabil) |
| Efisiensi Komputasi (GPU T4) | Throughput & Latensi | 195 total | 17.6 tok/s | Rata-rata latensi: 1.85 detik/query (VRAM: ~3.2 GB) |
📈 Tabel Komparasi Peningkatan: SasakLLM v4 vs SasakLLM v5
Tabel berikut merangkum peningkatan performa empiris (empirical gain) dari SasakLLM v4 ke SasakLLM v5 (Precision Edition):
Table with columns: Dimensi Pengujian, Metrik Pengujian, SasakLLM v4, SasakLLM v5, Delta Peningkatan & Signifikansi| Dimensi Pengujian | Metrik Pengujian | SasakLLM v4 | SasakLLM v5 | Delta Peningkatan & Signifikansi |
|---|
| Kelancaran Intrinsik (Perplexity) | Perplexity (PPL) (Lower is better) | 19.00 PPL | 9.14 PPL | 🟢 Turun 51.9% (Kefasihan probabilistik bahasa sangat konvergen) |
| Morfologi Aglutinatif (Test Set Terkunci) | Exact Match (EM) | 80.00% | 99.00% | 🟢 Meningkat +19.00% (99/100 kata lematisasi benar secara presisi) |
| Dialektologi Komparatif Lintas 5 Dialek | Exact Match (EM) | 13.33% | 46.67% | 🟢 Meningkat > 3.5x lipat (Cross-dialect reasoning Mahsun 2006) |
| Kamus & Leksikon Balai Bahasa NTB | chrF++ (word-order 2) | 8.77% | 9.66% | 🟢 Meningkat +0.89% (Definisi kosakata & relasi semantik lebih kaya) |
| Keragaman Kosakata (Lexical Diversity) | Type-Token Ratio (TTR) | — | 59.06% | 🟢 Tinggi (Kosakata luas dan bebas repetisi sintaksis) |
| Keselarasan Semantik (Substance Alignment) | Semantic Presence | — | 38.57% | 🟢 Akurasi esensi jawaban tanpa penalti panjang kalimat |
| Kebocoran Karakter Asing (Zero CJK Leakage) | Foreign Leak Count | Rentan CJK | 0 Insiden (100% Bersih) | 🟢 Penekanan mutlak token Hanzi/Mandarin dari base Qwen |
| Efisiensi Inferensi (GPU Nvidia T4) | Rata-rata Latensi | 1834.7 ms | 1854.5 ms | ⚡ ~1.85 detik/query (Throughput konsisten: 17.6 tok/s) |
🔍 Temuan Kunci & Analisis Diagnostik Linguistik
1. Keberhasilan Morfologi Tinggi (Akurasi 99.0%)
Model berhasil mengekstrak bentuk dasar (root lemma) dari 99 dari 100 kata berimbuhan Sasak yang diuji dari test set terkunci benchmark_test.csv:
batesangne ➔ bates (afiksasi -ang, -ne)
ulune ➔ ulu (afiksasi -ne)
telantang ➔ lant (awalan pasif te-, akhiran -ang)
ngadep ➔ adep (nasalisasi awalan ng-)
nyemak ➔ semak (nasalisasi awalan ny-)
kematian ➔ mati (konfiks ke-...-an)
tegitaq ➔ gitaq, besopoq ➔ sopoq, pemanis ➔ manis
2. Peningkatan Signifikan Penalaran 5 Dialek Sasak
Pada versi 5, model berhasil memetakan variasi leksikal lintas 5 dialek menurut penelitian Prof. Mahsun (2006):
- Dialek Meno-Mene (Lombok Tengah/Timur): kata bagaimana dijawab secara tepat sebagai berembe.
- Dialek Ngeno-Ngene (Lombok Tengah bagian tengah): kata bagaimana dijawab secara tepat sebagai berenggo.
- Dialek Kuto-Kute (Lombok Utara): kata bagaimana dijawab secara tepat sebagai kembe.
3. Memori Budaya & Legenda Lokal Sangat Kuat
- Putri Mandalika: Mampu mengenali secara tepat putri yang mengorbankan diri di Pantai Kuta Lombok dan berubah wujud menjadi cacing laut (nyale).
- Bau Nyale & Gunung Rinjani: Dikenali secara presisi sebagai identitas kultural dan sakral pulau Lombok.
- Honest Refusal (Guardrail): Mampu menolak secara jujur saat ditanya konsep absurd: "Kapal selam nenten madue roda..." (Kapal selam tidak beroda).
4. Fenomena Verbosity Penalty pada ROUGE-L & chrF++
Pada pengujian percakapan sapaan ('Berembe kabarmu niki?'), model menghasilkan jawaban yang sangat santun:
"Kabar solah dait tentrem, seger waras semeng! Mogi jelo niki kebak berkah dait rahayu leq batur mandiri."
Secara kualitas penutur asli, jawaban ini memiliki nilai kesantunan tinggi. Namun karena rujukan benchmark hanya berupa kalimat pendek ("Alhamdulillah kabar solah dait becik-becik gati"), metrik otomatis ROUGE-L dan chrF++ memotong skor precision karena adanya elaborasi doa kesantunan tambahan.
5. Penekanan Mutlak Token Asing (Zero CJK Leakage)
Berbeda dengan base model Qwen2.5 yang rentan membocorkan karakter Hanzi/Mandarin pada low-resource setting, SasakLLM v5 mencatat 0 insiden kebocoran karakter asing (100% Purity) sepanjang seluruh 195 putaran pengujian.
📚 Komposisi Dataset Presisi v5 (instruction_dataset_v5_precision.jsonl)
Table with columns: Pilar Kebahasaan, Jumlah Sampel, Persentase, Fokus & Cakupan Presisi| Pilar Kebahasaan | Jumlah Sampel | Persentase | Fokus & Cakupan Presisi |
|---|
| Dialektologi Komparatif Lintas 5 Dialek | 2.500 | 24,5% | Pemetaan variasi leksikal Meno-Mene, Ngeno-Ngene, Kuto-Kute, Ngeto-Ngete, Meriaq-Meriku |
| Leksikon Relasional & Kamus Balai Bahasa | 2.492 | 24,5% | Pasangan antonim, sinonim, dan register kosa kata Balai Bahasa NTB |
| Morfologi Irregular & Lematisasi Aglutinatif | 2.400 | 23,5% | Nasalisasi p->m, s->ny, infiks -in-, -um-, dan afiksasi bertingkat |
| Etika Tutur, Sapaan Waktu & Dialog Harian | 2.000 | 19,6% | Penolakan salam non-native (pagi/siang) -> Tabeq semeng, Sugeng tengai, dialog pasar, bertamu |
| Budaya Lokal, Sastra & Honest Refusal | 800 | 7,9% | Sesenggakan, Lelakaq, Mandalika, Bau Nyale, dan guardrails halusinasi |
| Total | 10.192 | 100% | Targeted High-Quality Precision Dataset |
🧪 Contoh Uji Coba & Respon Nyata Model (Live Benchmark Outputs)
Berikut adalah cuplikan hasil inferensi nyata (unfiltered actual outputs) dari model SasakLLM v5 saat diuji pada 5 pilar linguistik utama:
1. 🗣️ Percakapan Harian & Etika Tutur Santun (Basa Alus)
2. 🗺️ Dialektologi Komparatif Lintas 5 Dialek (Mahsun 2006)
-
Prompt (Dialek Meno-Mene):
"Bagaimana kata 'bagaimana' diucapkan dalam dialek Meno-Mene?"
👉 Respon SasakLLM v5:
"Dalam dialek Meno-Mene, kata 'bagaimana' diucapkan 'berembe'."
-
Prompt (Dialek Ngeno-Ngene):
"Bagaimana kata 'bagaimana' diucapkan dalam dialek Ngeno-Ngene?"
👉 Respon SasakLLM v5:
"Dalam dialek Ngeno-Ngene, kata 'bagaimana' diucapkan 'berenggo'."
-
Prompt (Dialek Kuto-Kute):
"Bagaimana kata 'bagaimana' diucapkan dalam dialek Kuto-Kute?"
👉 Respon SasakLLM v5:
"Sebutan untuk kata 'bagaimana' dalam dialek Kuto-Kute adalah 'kembe'."
-
Prompt (Dialek Meriaq-Meriku):
"Bagaimana kata 'bagaimana' diucapkan dalam dialek Meriaq-Meriku?"
👉 Respon SasakLLM v5:
"Kata 'bagaimana' dalam dialek Meriaq-Meriku adalah 'berembeng'."
3. 🔬 Morfologi Aglutinatif & Ekstraksi Akar Kata (Akurasi 99%)
-
Prompt:
"Sebutkan kata dasar (root lemma) lekan kata Sasak: 'batesangne'!"
👉 Respon SasakLLM v5:
"Kata dasar dari kata Sasak 'batesangne' adalah 'bates' (dibentuk dengan akhiran 'ang')."
-
Prompt:
"Sebutkan kata dasar (root lemma) lekan kata Sasak: 'ulune'!"
👉 Respon SasakLLM v5:
"Kata dasar dari kata Sasak 'ulune' adalah 'ulu' (dibentuk dengan akhiran 'ne')."
-
Prompt:
"Sebutkan kata dasar (root lemma) lekan kata Sasak: 'telantang'!"
👉 Respon SasakLLM v5:
"Kata dasar dari kata Sasak 'telantang' adalah 'lant' (dibentuk dengan awalan 'te' dan akhiran 'ang')."
-
Prompt:
"Sebutkan kata dasar (root lemma) lekan kata Sasak: 'imande'!"
👉 Respon SasakLLM v5:
"Kata dasar dari kata Sasak 'imande' adalah 'ima' (dibentuk dengan akhiran 'de')."
4. 📖 Kamus & Register Basa Sasak (Balai Bahasa NTB)
-
Prompt:
"Bagaimana cara mengatakan 'makan' dalam tingkatan Sasak krama halus?"
👉 Respon SasakLLM v5:
"Dalam tingkatan Sasak krama halus (basa alus), 'makan' diucapkan 'majeng'."
-
Prompt:
"Apa artinya kata 'belo' dalam Bahasa Indonesia?"
👉 Respon SasakLLM v5:
"Kata 'belo' artinya: panjang; lama."
-
Prompt:
"Apa artinya kata 'aiq telek' dalam Bahasa Indonesia?"
👉 Respon SasakLLM v5:
"Kata 'aiq telek' artinya: air penyejuk (untuk obat)."
5. 🌴 Budaya, Tradisi, & Folklor Sasak Lombok
-
Prompt:
"Sai arane putri saq mati leq pantai Kuta Lombok dait berubah dadi nyale?"
👉 Respon SasakLLM v5:
"Putri Mandalika"
-
Prompt:
"Napi arane tradisi be-tangkap cacing segare leq pantai Lombok?"
👉 Respon SasakLLM v5:
"Bau Nyale"
-
Prompt:
"Napi arane gunung saq paling tegep leq pulau Lombok?"
👉 Respon SasakLLM v5:
"Gunung Rinjani"
💻 Panduan Penggunaan Cepat (Inference)
# 1. Nonaktifkan modul torchao bawaan platform jika dijalankan di Kaggle / Colabtry: import peft.import_utils peft.import_utils.is_torchao_available = lambda: False import peft.tuners.lora.torchao peft.tuners.lora.torchao.is_torchao_available = lambda: False peft.tuners.lora.torchao.dispatch_torchao = lambda *args, **kwargs: Noneexcept Exception: pass import torchfrom transformers import AutoModelForCausalLM, AutoTokenizerfrom peft import PeftModel BASE_MODEL_ID = "Qwen/Qwen2.5-1.5B-Instruct"ADAPTER_ID = "kodetr/SasakLLM-1.5B-Instruct-v5" # 2. Muat Tokenizer & Base Modeltokenizer = AutoTokenizer.from_pretrained(BASE_MODEL_ID, trust_remote_code=True)base_model = AutoModelForCausalLM.from_pretrained( BASE_MODEL_ID, torch_dtype=torch.float16, device_map="auto", trust_remote_code=True) # 3. Muat Adapter SasakLLM v5model = PeftModel.from_pretrained(base_model, ADAPTER_ID)model.eval() # 4. Format PromptSYSTEM_PROMPT = ( "Panjenengan adalah asisten cerdas Bahasa Sasak Lombok yang fasih, santun, dan terpercaya. " "Gunakan Bahasa Sasak yang murni, logis, dan alami. Jangan mencampuradukkan kata-kata acak atau bahasa lain. " "Jawab sapaan, dialog harian, budaya, dan pertanyaan dengan ramah, akurat, dan relevan.") prompt = "Berembe kabarmu niki?"messages = [ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": prompt}] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)inputs = tokenizer([text], return_tensors="pt").to(model.device) # 5. Generate Respon (Gunakan Greedy Decoding untuk Akurasi Maksimal Tanpa Halusinasi)with torch.no_grad(): output_tokens = model.generate( **inputs, max_new_tokens=120, do_sample=False, # Greedy decoding (Anti-halusinasi) repetition_penalty=1.15, # Anti pengulangan pad_token_id=tokenizer.eos_token_id ) response = tokenizer.decode(output_tokens[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)print("Jawaban SasakLLM:", response)
📜 Sitasi & Referensi Riset
Jika Anda menggunakan model atau dataset SasakLLM dalam riset ilmiah Anda, silakan sitasi karya ini:
@misc{sasakllm2026, author = {SasakLLM Research Team and kodetr}, title = {SasakLLM: Low-Resource Small Language Model for Sasak Language with Morphological Grounding}, year = {2026}, publisher = {Hugging Face}, howpublished = {\url{https://huggingface.co/kodetr/SasakLLM-1.5B-Instruct-v5}}}