NALA-WIKI-ID-110m-base

NALA (Nusantara Autoregressive Language AI) adalah model bahasa Indonesia yang dibangun dan ditraining dari nol (from scratch) tanpa menggunakan bobot pre-trained manapun. Model ini ditraining menggunakan dataset Wikipedia bahasa Indonesia.

⚠️ Ini adalah base model — model hanya bisa melanjutkan teks, bukan menjawab pertanyaan. Untuk kemampuan instruksi, diperlukan fine-tuning tambahan.


Detail Model

Keterangan Value
Arsitektur GPT-2 (decoder-only)
Jumlah Parameter ~110M
Vocabulary Size 32,000 (BPE)
Context Length 1,024 tokens
Tokenizer BPE custom (ditraining dari Wikipedia ID)
Bahasa Indonesia (id)
Jenis Base model (pre-trained only)

Dataset

Keterangan Value
Sumber Wikipedia bahasa Indonesia
Total Token ~219 juta token
Total Baris ~10 juta baris
Ukuran File ~1 GB

Training Details

Keterangan Value
Framework PyTorch + HuggingFace Transformers
Optimizer AdamW (lr=3e-4, betas=(0.9, 0.95))
Scheduler Cosine Annealing with Warmup
Warmup Steps 200
Gradient Clipping 1.0
Precision bfloat16 (mixed precision)
Batch Size 8 (gradient accumulation 4 = efektif 32)
Hardware 2× NVIDIA GeForce RTX 5090 (32GB VRAM each)
Epochs 1
Loss Akhir ~3.5
Perplexity Akhir ~36

Cara Menggunakan

Install dependencies

pip install transformers torch

Generate teks

from transformers import GPT2LMHeadModel, PreTrainedTokenizerFast
import torch

model     = GPT2LMHeadModel.from_pretrained("billalxcode/NALA-WIKI-ID-110m-base")
tokenizer = PreTrainedTokenizerFast.from_pretrained("billalxcode/NALA-WIKI-ID-110m-base")
model.eval()

def generate(prompt, max_new_tokens=100):
    inputs = tokenizer(prompt, return_tensors="pt")
    output = model.generate(
        **inputs,
        max_new_tokens     = max_new_tokens,
        do_sample          = True,
        temperature        = 0.8,
        top_k              = 50,
        top_p              = 0.95,
        repetition_penalty = 1.5,
        pad_token_id       = tokenizer.pad_token_id,
        eos_token_id       = tokenizer.eos_token_id,
    )
    generated = output[0][inputs["input_ids"].shape[1]:]
    return tokenizer.decode(generated, skip_special_tokens=True)

print(generate("Indonesia adalah negara"))
print(generate("Ilmu pengetahuan adalah"))

Tokenizer

Tokenizer dibangun dari nol menggunakan algoritma BPE (Byte-Pair Encoding) dan ditraining khusus dari korpus Wikipedia bahasa Indonesia.

Keterangan Value
Algoritma BPE (Byte-Pair Encoding)
Vocab Size 32,000
Special Tokens <|pad|>, <|unk|>, <|bos|>, <|eos|>
BOS Token ID 2
EOS Token ID 3
PAD Token ID 0

Limitasi

  • Model ini adalah base model — output berupa kelanjutan teks, bukan jawaban atas pertanyaan
  • Ditraining hanya dari Wikipedia Indonesia, sehingga pengetahuannya terbatas pada konten ensiklopedia
  • Belum melalui proses fine-tuning instruksi (instruction tuning) maupun RLHF
  • Kemungkinan menghasilkan informasi yang tidak akurat atau tidak relevan

Roadmap

  • Pre-training dari Wikipedia Indonesia
  • Penambahan dataset (berita, buku, forum)
  • Instruction fine-tuning
  • RLHF
  • NALA-WIKI-ID-345m-base (model lebih besar)

Lisensi

Model ini dirilis di bawah lisensi Apache 2.0 — bebas digunakan untuk keperluan penelitian maupun komersial dengan mencantumkan atribusi.


Citation

Jika kamu menggunakan model ini dalam penelitian, harap cantumkan:

@misc{NALA-WIKI-ID-110m-base,
  author    = {billalxcode},
  title     = {NALA-WIKI-ID-110m-base: Indonesian Language Model from Scratch},
  year      = {2026},
  publisher = {HuggingFace},
  url       = {https://huggingface.co/billalxcode/NALA-WIKI-ID-110m-base}
}
Downloads last month
28
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train billalxcode/NALA-WIKI-ID-110m-base