AKSARA

Adaptive Knowledge & Semantic Architecture for Bahasa Representation & Autonomy

Framework yang menghasilkan CLM (Cognitive Language Model) β€” model bahasa Indonesia yang memahami makna, bukan memprediksi token.

Python 3.11+ License: MIT HF Model

"Kami tidak mengajarkan model bahasa Indonesia. Kami membuat model lahir sebagai bahasa Indonesia."

β€” Emylton Leunufna


Apa itu AKSARA?

AKSARA adalah framework yang menghasilkan CLM (Cognitive Language Model) β€” model bahasa Indonesia yang memahami makna, bukan memprediksi token. Jika Transformer menghasilkan LLM, maka AKSARA menghasilkan CLM. Setiap keputusan komputasi punya justifikasi linguistik eksplisit berdasarkan TBBBI (Tata Bahasa Baku Bahasa Indonesia).

from aksara import AksaraFramework

fw = AksaraFramework.dari_kbbi("kbbi_core_v2.json")
state = fw.proses("Hakim menjatuhkan vonis kepada terdakwa.")

print(state.ringkasan())
# β†’ status=VALID | skor=0.85 | pelanggaran=0 | morfem=6

print(state.krl_result.jelaskan())
# β†’ Proposisi: AKSI(jatuh, agen=hakim, pasien=vonis, penerima=terdakwa)
#   Frame: VONIS_HUKUM (skor=0.92)
#   Inferensi: terdakwa STATUS_MENJADI terpidana
#              terdakwa WAJIB menjalani putusan

CLM ini MEMAHAMI MAKNA β€” "terdakwa menjadi terpidana" bukan di-retrieve dari database dan bukan diprediksi secara statistik, tapi di-derive dari aturan general: "jika profesi hukum melakukan aksi hukum terhadap warga, maka status warga berubah".


Transformer β†’ LLM vs AKSARA β†’ CLM

Aspek Transformer β†’ LLM AKSARA β†’ CLM
Tujuan utama Memprediksi token berikutnya Memahami makna prompt
Unit dasar Subword token statistik Morfem (root + afiks TBBBI)
Pengetahuan Implisit di miliaran bobot Eksplisit di Knowledge Base
Reasoning Emergent (tidak dijamin) Forward chaining deterministik
Update pengetahuan Retrain/fine-tune Edit KB, langsung berlaku
Interpretabilitas Black box Setiap inferensi bisa dilacak
Ukuran model 4GB β€” 700GB ~5MB
Hardware minimum GPU 8GB+ CPU cukup (inference)

Instalasi

pip install aksara

Atau dari source:

git clone https://github.com/aksara-id/aksara.git
cd aksara
pip install -e .

Dependensi

  • Python 3.11+
  • PyTorch 2.0+
  • NumPy 1.24+

Arsitektur Pipeline

Kalimat (string)
   ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [ LPS ] Linguistic Parse System                             β”‚
β”‚         Dekomposisi morfem deterministik (TBBBI rules)      β”‚
β”‚         "mempublikasikan" β†’ me- + publikasi + -kan          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [ SFM ] Semantic Field Manifold                             β”‚
β”‚         Grounding semantik ke KBBI (71,211 kata, 10 domain) β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [ CPE ] Constraint Propagation Engine                       β”‚
β”‚         Evaluasi constraint morfosintaktik                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [ CMC ] Categorical Meaning Composer                        β”‚
β”‚         Komposisi makna kategorial                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [ TDA ] Topological Dependency Analyzer                     β”‚
β”‚         Analisis dependensi topologis                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ [ KRL ] Knowledge Representation Layer                      β”‚
β”‚         Proposisi + Frame matching + Inferensi              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
   ↓
AksaraState β€” output terstruktur + penjelasan + inferensi

Cara Pakai

Analisis Kalimat

from aksara import AksaraFramework

fw = AksaraFramework.dari_kbbi("kbbi_core_v2.json")
state = fw.proses("Dokter merawat pasien di rumah sakit.")

# Ringkasan
print(state.ringkasan())

# Penjelasan lengkap (bahasa Indonesia)
print(state.jelaskan())

# Analisis morfologi
for m in state.morfologi:
    print(f"  {m['teks']} β†’ root={m['root']}, afiks={m['afiks']}")

Penalaran (Inference)

state = fw.proses("Petani menanam padi di sawah.")

if state.krl_result:
    krl = state.krl_result
    print(krl.jelaskan())
    # Proposisi: AKSI(tanam, agen=petani, pasien=padi, lokasi=sawah)
    # Inferensi: hasil AKAN_TERSEDIA setelah proses
    #            petani MENGHASILKAN hasil
    #            petani BERGANTUNG_PADA kondisi alam

    # Query inferensial
    for inf in krl.tanya("MENGHASILKAN"):
        print(f"  {inf.subjek} {inf.relasi} {inf.objek}")

Penalaran Multi-Langkah (Chain Reasoning)

from aksara.primitives.krl.wacana import JendelaWacana

fw = AksaraFramework.dari_kbbi("kbbi_core_v2.json")
wacana = JendelaWacana()

# Langkah 1: penetapan regulasi
s1 = fw.proses("Menteri menetapkan peraturan baru tentang lingkungan.")
wacana.tambah(s1)

# Langkah 2: kewajiban dari regulasi
s2 = fw.proses("Peraturan itu mewajibkan semua pabrik mengurangi emisi.")
wacana.tambah(s2)

# Query: apa kewajiban pabrik?
# β†’ pabrik WAJIB patuhi peraturan (derived dari chain 2 aturan)

Extend Knowledge Base (Tanpa Training)

Ini keunggulan utama AKSARA β€” tambah pengetahuan domain baru langsung berlaku:

from aksara.primitives.krl.kb import KnowledgeBase, TipeEntitas, AturanDunia

kb = KnowledgeBase()

# 1. Tambah kata baru β†’ tipe entitas
kb.tambah_kata("drone", TipeEntitas.PRODUK_TEKNOLOGI)
kb.tambah_kata("blockchain", TipeEntitas.PRODUK_TEKNOLOGI)

# 2. Tambah aturan reasoning baru
kb.tambah_aturan(AturanDunia(
    nama="TEKNOLOGI_MENGUBAH_PROSES",
    tipe_aksi="buat",
    tipe_agen=TipeEntitas.PROFESI_TEKNOLOGI,
    tipe_pasien=TipeEntitas.PRODUK_TEKNOLOGI,
    kesimpulan=[
        "pasien MENGOTOMASI proses",
        "efisiensi MENINGKAT",
    ],
    domain="teknologi", prioritas=2,
))

# Langsung bisa bernalar tentang drone β€” tanpa training!

Lihat examples/extend_kb.py untuk contoh lengkap.


Knowledge Base Saat Ini

Komponen Jumlah Deskripsi
TipeEntitas 61 Hierarki ontologis (profesi, institusi, lokasi, benda, abstrak)
KATA_KE_TIPE 504 Pemetaan kata β†’ tipe entitas
VERBA_KE_TIPE_AKSI 369 Pemetaan verba β†’ tipe aksi semantik
SEMUA_ATURAN 32 Aturan kausal general per domain
KBBI Leksikon 71,211 Kata dasar + 10 domain semantik

Domain yang Dicakup

Hukum, Kesehatan, Pendidikan, Pertanian, Militer, Ekonomi, Seni/Budaya, Keagamaan, Politik, Transportasi, Bencana, Sosial, Pertambangan, Maritim, Media


Evaluasi

python tools/evaluasi_model.py
Evaluasi Skor Deskripsi
E1 Generalisasi State 70% Constraint satisfaction kalimat baru
E2 Morfologi Kata Baru 100% Dekomposisi afiks TBBBI (deterministik)
E3 Kalimat Baru 100% Realisasi proposisi β†’ kalimat (deterministik)
E4 Penalaran KRL 100% Forward chaining multi-langkah
E5 Wacana Lintas Kalimat 100% Entity tracking + resolusi referensi
Total 94%

CLI

python -m aksara audit                                    # Framework audit
python -m aksara info --checkpoint ./ckpt                 # Info checkpoint
python -m aksara generate --checkpoint ./ckpt --prompt "anak membaca"

Struktur Proyek

aksara/
  framework.py           ← AksaraFramework (orkestrator utama)
  config.py              ← AksaraConfig
  primitives/
    lps/                 ← Linguistic Parse System (morfologi TBBBI)
    sfm/                 ← Semantic Field Manifold (grounding KBBI)
    cpe/                 ← Constraint Propagation Engine
    cmc/                 ← Categorical Meaning Composer
    tda/                 ← Topological Dependency Analyzer
    krl/                 ← Knowledge Representation Layer
      kb.py              ← Knowledge Base (entitas, aksi, aturan)
      encoder.py         ← PropositionalEncoder
      inference.py       ← InferenceEngine (forward chaining)
      wacana.py          ← JendelaWacana (discourse tracking)
  base/
    state.py             ← AksaraState (output pipeline)
tools/
  evaluasi_model.py      ← Evaluasi E1-E5
  run_training.py        ← Training BSU/MEB
examples/
  extend_kb.py           ← Contoh extend knowledge base

Untuk Developer: 3 Jalur Pengembangan

Jalur 1: Pakai Pre-trained + Extend KB

  • Download model pre-trained
  • Tambah domain knowledge via KB API
  • Tanpa training, tanpa GPU

Jalur 2: Fine-tune

  • Mulai dari pre-trained weights
  • Tambahkan corpus domain spesifik
  • Retrain BSU/MEB untuk constraint satisfaction lebih tajam

Jalur 3: Build dari Nol

  • Framework sama, ganti KB + aturan afiks
  • Untuk bahasa lain (Melayu, Jawa, Sunda)

Dokumentasi Tambahan


Penulis

Emylton Leunufna


Lisensi

MIT

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Evaluation results