wikimedia/wikipedia
Viewer • Updated • 61.6M • 266k • 1.23k
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.
| 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) |
| Keterangan | Value |
|---|---|
| Sumber | Wikipedia bahasa Indonesia |
| Total Token | ~219 juta token |
| Total Baris | ~10 juta baris |
| Ukuran File | ~1 GB |
| 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 |
pip install transformers torch
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 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 |
Model ini dirilis di bawah lisensi Apache 2.0 — bebas digunakan untuk keperluan penelitian maupun komersial dengan mencantumkan atribusi.
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}
}