MONA: a multilingual small language model you can open up
MONA is a 110M-parameter Llama-style language model trained from scratch on one laptop GPU for English, Hindi, Hinglish and Awadhi (Tulsidas). It was built to teach how LLMs work: the companion terminal app lets anyone look inside it, stage by stage, in English, हिंदी or Hinglish.
- Code, app and full build story: https://github.com/JayD108/Mona
pip installthe repo, then runmona: the app downloads these files on first run.
Model
| Architecture | decoder-only transformer: 12 layers, width 768, 12 heads, SwiGLU 2048, RMSNorm, RoPE, tied embeddings |
| Parameters | 110.1M (85.0M non-embedding) |
| Tokenizer | byte-level BPE, 32,768 tokens, trained on a balanced EN / HI / Hinglish / Awadhi sample (Hindi 1.33 tokens/word) |
| Context | 1,024 tokens |
| Pretraining | 2.5B tokens, AdamW, bf16, WSD learning-rate schedule (peak 6e-4), ~19 h on an RTX 5080 Laptop GPU |
| Chat tuning | supervised fine-tuning with loss masking on ~100K conversations |
Evaluation (held-out text, bits per byte, lower is better)
| English | Hindi | Hinglish |
|---|---|---|
| 1.027 | 0.455 | 1.058 |
Final held-out loss per language (nats/token): english 3.146, hindi 3.063, hinglish 2.899, awadhi 5.445
Sample (MONA-Chat, "Who are you?"): *I'm Emily Wilson, the executive director of the National Geographic Society. I'm the lead author of the new report, "The Greatest Planet: The Greatest Earthquake in History." I'm thrilled to share my *
Files
assets/models/mona/mona.pt: base model (bf16 state dict) ·assets/runs/mona_m_chat/model.pt: MONA-Chatassets/models/mona/tokenizer.json: tokenizer (Hugging Facetokenizersformat)assets/…: a small, licence-clean demo bundle used by the app (see NOTICE.md)
from mona.engine.glassbox import GlassBox # from the GitHub repo
gb = GlassBox() # loads the newest weights on CPU
print(gb.next_word("The capital of India is", top=5))
Intended use and limits
For education and experimentation. MONA is small: it writes fluent text but often states things that are wrong, cannot do arithmetic, and must not be used for factual, medical, legal or other consequential decisions.
Training data and licences
English: FineWeb-Edu (ODC-By 1.0) · Hindi and romanized Hindi: AI4Bharat Sangraha (CC-BY-4.0; its Wikipedia-derived parts are CC BY-SA) · chat: smol-smoltalk (Apache-2.0), Aya dataset (Apache-2.0) · Awadhi: Tulsidas's verses (public domain). See NOTICE.md for full attribution.
Copyright note: an earlier Tulsidas corpus also contained a modern Hindi commentary (Gita Press, likely still under copyright). When this was noticed, at 0.8B of 2.5B training tokens (~0.1% of batches up to then), it was removed: the rest of pretraining, the chat tuning and everything in this repository use only public-domain verse. No commentary text is distributed here.
Credits
Built by Mrittunjay Dubey. Coding assisted by Claude (Anthropic).
- Downloads last month
- 12