Downloads · 30 days
37
4% of all-time downloads
num1notsvn/wicara-56m-chat
wicara-56m-chat is a text generation model from num1notsvn. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Weight-efficient Indonesian Conversational Architecture, Research Artifact
Downloads · 30 days
37
4% of all-time downloads
All-time downloads
894
Public
Parameters
66.5M
133 MB on disk
Likes
2
Public
Click a slice to open those files.
.safetensors133 MB · 99%
From the Hugging Face model README
Weight-efficient Indonesian Conversational Architecture, Research Artifact
A 56-million-parameter Indonesian conversational model that we trained from scratch on a single consumer laptop (NVIDIA RTX 4050 6 GB).
Wicara (from Sanskrit vicāra): speech, discourse.
Data, tokenizer, architecture, training, and SFT pipeline were built directly in PyTorch — no off-the-shelf model, no external API. This model is the conversational and instruction-tuned version (SFT v5), fine-tuned directly on top of our base model: num1notsvn/wicara-56m-base.
id)| Component | Specification |
|---|---|
| Total Parameters | 56,027,520 |
| Non-Embedding Parameters | 45,541,120 |
Layers (n_layer) | 10 |
Hidden Dimension (d_model) | 640 |
| Attention Mechanism | Grouped-Query Attention (10 query heads / 5 KV heads, GQA 2:1) |
Feed-Forward Dimension (d_ffn) | 1,728 (SwiGLU) |
Head Dimension (head_dim) | 64 |
| Context Length | 512 tokens |
| Vocabulary Size | 16,384 byte-level BPE (4.26 chars/token on Indonesian text) |
| Positional Embedding | RoPE ($\theta = 10000.0$) |
| Normalization | Pre-norm RMSNorm ($\epsilon = 10^{-5}$) |
| Embedding Tying | Yes (lm_head.weight == tok_emb.weight) |
wicara-56m-base)ind_Latn (18.7%)wicara-56m-chat)wicara-56m-base (step 17,010).src/infer/pencegat.py).You can run Wicara using the Hugging Face transformers library directly:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "num1notsvn/wicara-56m-chat"
device = "cuda" if torch.cuda.is_available() else "cpu"
# Load tokenizer and model
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16).to(device)
# Prepare conversation
messages = [
{"role": "system", "content": "Kamu adalah asisten AI berbahasa Indonesia yang ramah."},
{"role": "user", "content": "Halo! Siapa namamu dan kamu bisa apa?"},
]
# Apply chat template
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(device)
# Generate response
outputs = model.generate(
**inputs,
max_new_tokens=160,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.15,
do_sample=True,
eos_token_id=[tokenizer.eos_token_id, 2],
)
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)
Released under the Apache-2.0 License.
@misc{ardin2026wicara,
title={Wicara: A Weight-efficient Indonesian Conversational Architecture Built from Scratch},
author={Bagus Ardin Prayoga},
year={2026},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/num1notsvn/wicara-56m-chat}}
}