# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("AksaraLLM/aksarallm-1.5b-native")
model = AutoModelForCausalLM.from_pretrained("AksaraLLM/aksarallm-1.5b-native")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))aksarallm-1.5b-native
The first fully from-scratch AksaraLLM 1.5B model (2.04B actual params),
LLaMA-style architecture. Where the AksaraLLM-Qwen-1.5B* line is descended
from Qwen2, this checkpoint contains no inherited weights โ it was trained
from random init on AksaraLLM's own corpus and tokenizer.
Measured baseline (Devin audit, CPU bf16, 50 short Indonesian sentences)
| Metric | Value |
|---|---|
| Perplexity | 113.5 (much higher than Qwen-derived models, see below) |
| English-stopword ratio in ID-prompted output | 0.0% |
| Indonesian-stopword ratio in ID-prompted output | 31.3% (highest of any AksaraLLM model โ most Indonesian-saturated) |
| Parameters | 2039.0 M |
| Architecture | LlamaForCausalLM |
| Vocabulary | 151 665 |
Why the high perplexity?
This model started from random init and has been trained on a smaller corpus than the Qwen2-derived models, which began with ~5 T tokens of pretraining already baked in. PPL โ 113 reflects "model is converging on Indonesian distribution but not fully there yet". The very high Indonesian-word ratio (31%) and zero English leak suggest the model is producing Indonesian-only output even when uncertain โ a useful signal that the language identity is correctly trained, but the lexical / factual quality is below the Qwen-derived models.
This is the honest from-scratch baseline for the AksaraLLM project. It is the right reference point when measuring how much value continued pretraining / from-scratch with a larger corpus delivers (which is exactly what the planned 20B aims to demonstrate).
Loading notes
The checkpoint contains legacy rope.sin_cached and rope.cos_cached
keys that are unexpected by HF's LlamaForCausalLM; HF silently drops
them on load โ this is benign. Same tie_word_embeddings config / checkpoint
mismatch as the Qwen variants; recommend setting tie_word_embeddings: false
in config.json.
Quickstart
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tok = AutoTokenizer.from_pretrained("AksaraLLM/aksarallm-1.5b-native")
model = AutoModelForCausalLM.from_pretrained(
"AksaraLLM/aksarallm-1.5b-native",
torch_dtype=torch.bfloat16,
device_map="auto",
)
inp = tok("Indonesia adalah negara", return_tensors="pt").to(model.device)
print(tok.decode(model.generate(**inp, max_new_tokens=120, do_sample=True, top_p=0.9)[0], skip_special_tokens=True))
License
Apache 2.0
Sample outputs (CPU inference, greedy, repeat_penalty=1.15)
Real generation captured during the Devin audit on 2026-05-02. Greedy decoding (do_sample=False) so these are reproducible.
Continuations (no chat template)
Prompt: Indonesia adalah negara kepulauan terbesar di dunia,
Continuation: dan berada di kawasan Indonesia. Kebantahannya juga mengalami perubahan kecil yang memang tidak menentu. Pada tahun 1930, seorang pemerintat diperlakukan dengan pengelolaan yang lebih baik. Dalam permainan ini, perlu berbentuk kota dan kembali ke khus
Prompt: Resep sederhana untuk membuat nasi goreng adalah
Continuation: kandungan yang tidak akan bermanfaat dengan baik. Kota ini berikut dihadirkan pada kecilnya jelajah kembali dan menghasilkan khusus yang terbaik, dan memperhatikan perawatan dan pemeras kesehatan.
Kembang kota juga menawarkan kota yang lebih banyak dipermainkan oleh
Prompt: Ibukota Republik Indonesia adalah
Continuation: kembali menggantikan pemerintahan Kepala Paling Jaya di Indonesia. Dalam Kualifikasi Tengku Sosial (KAN) 1029, Bapak M. Kusyari
Pada tahun 1354 Kepala KAN berbagai permainan kecil yang terjadi dengan memperbaiki k
Prompt: Bahasa Indonesia berasal dari rumpun bahasa
Continuation: Kakik, dan permainan ini berbeda-beda. Dalam pemerintahan Jepang, kota Pekanba adalah kekuatan yang terlalu banyak di seorang penghiper 1930-2050. Tidak tidak mengbihnya untuk memperhatikan kembali kekayaan dan kegagalan ke
- Downloads last month
- 120
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="AksaraLLM/aksarallm-1.5b-native") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)