TL;DR: Agaram 2.5B is a Tamil-English model from Murai Labs. I ran it locally with Ollama and tested 20 phrases written in both Sri Lankan and Tamil Nadu Tamil. It got 17/20 Tamil Nadu and 12/20 Sri Lankan right. This is a small test, not a benchmark.
What Agaram is
Agaram (அகரம்) is a 2.5B-parameter small language model. Murai Labs trained it from scratch on a corpus that is mostly Tamil.
Basics:
- 2.53B parameters, 28 layers
- About 50B pretraining tokens, 58.2% Tamil
- Tamil-specific tokenizer: about 1.55 tokens per Tamil word, against 9.44 for Qwen2.5
- Chats in Tamil script, Tanglish (Tamil in English letters), and English
- Tool calls, 4K context (8K in the decay and SFT stages)
- Apache-2.0 weights, GGUF files included
Most Tamil support I used before was an add-on to English-first models. “Trained from scratch” got my attention. I wanted to see how it handles everyday spoken Tamil, and whether it handles Sri Lankan Tamil and Tamil Nadu Tamil.
Running it locally
I ran the Q8_0 GGUF build on a MacBook Air (M5, 24 GB RAM) with Ollama 0.40.8. The build pulls straight into Ollama:
| |
First chats
>>> how are you?
I am doing well, thank you for asking! How can I help you today?
>>> eppadi suham?
I'm doing great! I'm here to help you with anything you need.
>>> eppadi suham? answer in tamil
நான் நல்லா இருக்கேன். உங்களுக்கு என்ன உதவி வேணும்னு சொல்லுங்க, நான் பண்றேன்.
>>> எப்படி சுஹம் ?
எப்படி இருக்கீங்க? நான் நல்லா இருக்கேன். உங்களுக்கு என்ன வேணும்னு சொல்லுங்க, நான் பண்றேன்.
>>> write me a poem about cats
நிச்சயமாக! இதோ ஒரு குட்டி கவிதை:
வீட்டின் காவலன்,
வெயிலில் உழைக்கும் நண்பன்,
அன்பான நண்பன்,
என் செல்லக்குட்டி!
It understood Tanglish but replied in English until I asked for Tamil. Its Tamil replies are colloquial (நல்லா இருக்கேன், பண்றேன்), not formal written Tamil.
It also wrote a poem. I asked for a cat poem, but the lines (guardian of the house, a friend who works in the sun) sound more like a dog. Still, that is fluent Tamil from a 2.5B model on a laptop.
Then I asked it to explain one sentence written two ways, Sri Lankan first, then Tamil Nadu. Both mean roughly “That boy speaks nicely”:
>>> Explain the meaning of this sentence in English:
... “அந்தப் பெடியன் வடிவா கதைக்கிறான்.”
The boy is speaking in a very formal way.
>>> Explain the meaning of this sentence in English:
அந்தப் பையன் அழகா பேசுறான்.
The boy is speaking in a very formal way.
It gave the same answer for both, and both were slightly off. Was it reading the Sri Lankan words, or guessing from the parts that the two versions share? I set up a bigger test to find out.
The dialect test: Sri Lankan Tamil vs Tamil Nadu Tamil
Tamil has regional dialects. I wanted to see whether Agaram handles both Sri Lankan Tamil and Tamil Nadu Tamil.
I wrote 20 everyday phrases. Each phrase has a Sri Lankan Tamil and a Tamil Nadu Tamil version with the same meaning. Agaram translated all 40 into English. A script grades the output, and I reviewed the grades by hand (🟡 = close but not exact).
Find the script and the phrases under Reproduce it.
Full results:
| # | English meaning | Sri Lankan Tamil | Model (SL) | Tamil Nadu Tamil | Model (TN) |
|---|---|---|---|---|---|
| 1 | Yes, I know. | ஓம், எனக்குத் தெரியும். | ✅ Oh, I know. | ஆமா, எனக்குத் தெரியும். | ✅ Yes, I know. |
| 2 | I need to talk to you. | நான் உங்களோட கதைக்க வேணும். | ❌ I want to tell you a story. | நான் உங்ககிட்ட பேசணும். | ✅ I want to talk to you. |
| 3 | I can’t come today. | எனக்கு இண்டைக்கு வர ஏலாது. | ✅ I can’t come today. | என்னால இன்னைக்கு வர முடியாது. | ✅ I cannot come today. |
| 4 | What are you doing? | என்ன செய்யிறீங்கள்? | ✅ What are you doing? | என்ன பண்றீங்க? | ✅ What are you doing? |
| 5 | Have you eaten? | சாப்பிட்டீங்களோ? | ✅ Did you eat? | சாப்பிட்டீங்களா? | ✅ Did you eat? |
| 6 | Where is that boy going? | அந்தப் பெடியன் எங்க போறான்? | ❌ What is the boy going to? | அந்தப் பையன் எங்க போறான்? | ❌ What is the boy going to? |
| 7 | It looks beautiful. | அது வடிவா இருக்கு. | ❌ It looks like it. | அது அழகா இருக்கு. | ✅ It looks beautiful. |
| 8 | A little water, please. | கொஞ்சம் தண்ணி தாங்கோ. | 🟡 Please give me some water. | கொஞ்சம் தண்ணி குடுங்க. | 🟡 Give me some water. |
| 9 | Mother is in the kitchen. | அம்மா குசினியில இருக்கிறா. | ✅ Mom is in the kitchen. | அம்மா சமையலறையில இருக்காங்க. | ✅ Mom is in the kitchen. |
| 10 | Shall we go to the shop? | கடைக்குப் போவோமா? | ✅ Shall we go to the shop? | கடைக்குப் போலாமா? | ✅ Shall we go to the shop? |
| 11 | Can you come today? | உங்களுக்கு இண்டைக்கு வர ஏலுமா? | ✅ Can you come today? | உங்களால இன்னைக்கு வர முடியுமா? | ✅ Can you come today? |
| 12 | I can’t do this. | எனக்கு இதைச் செய்ய ஏலாது. | ✅ I cannot do this. | என்னால இதைப் பண்ண முடியாது. | ✅ I cannot do this. |
| 13 | Let’s talk about this tomorrow. | இதைப் பற்றி நாளைக்குக் கதைப்போம். | ✅ Let’s talk about it tomorrow. | இதைப் பத்தி நாளைக்குப் பேசலாம். | ✅ We can talk about it tomorrow. |
| 14 | Who were you talking to? | நீங்கள் ஆரோட கதைச்சீங்கள்? | ❌ What is your story? | நீங்க யார்கிட்ட பேசுனீங்க? | ❌ What did you talk to? |
| 15 | That girl sings well. | அந்தப் பெட்டை நல்லாப் பாடுறாள். | ✅ The female is singing well. | அந்தப் பொண்ணு நல்லாப் பாடுறா. | ✅ The girl is singing well. |
| 16 | This flower is beautiful. | இந்தப் பூ வடிவா இருக்கு. | ❌ It looks like a flower. | இந்தப் பூ அழகா இருக்கு. | ✅ This flower is beautiful. |
| 17 | Please come here. | இங்க வாங்கோ. | ✅ Come here. | இங்க வாங்க. | ✅ Come here. |
| 18 | Please sit down. | இருங்கோ. | ❌ Iruno. | உக்காருங்க. | ✅ Sit down. |
| 19 | Please give me that book. | அந்தப் புத்தகத்தை எனக்குத் தாங்கோ. | ✅ Please give me the book. | அந்தப் புத்தகத்தை எனக்குக் குடுங்க. | ✅ Please give me the book. |
| 20 | Yes, that boy is my younger brother. | ஓம், அந்தப் பெடியன் என்ர தம்பி. | 🟡 Om, that boy is my younger brother. | ஆமா, அந்தப் பையன் என்னோட தம்பி. | ✅ Yes, that boy is my younger brother. |
Sri Lankan Tamil: 12/20 (60%). Tamil Nadu Tamil: 17/20 (85%). The script gave Sri Lankan Tamil 11/20. I overrode row 15, because “The female is singing well” is awkward but still accurate. I do not count 🟡 rows as correct.
The grading is not perfectly even. Row 1 (“Oh, I know”, which drops “yes”) got a ✅, but row 20 (“Om, that boy…”) got a 🟡. Row 1 is the generous call.
Where it went wrong
Most of the Sri Lankan misses come from a small set of words:
- கதை (talk). In Tamil Nadu Tamil, கதை means “story”. In Sri Lankan Tamil it also means “to talk”. The model used “story” in row 2 and “your story” in row 14. It did get கதைப்போம் (“let’s talk”) right in row 13. Row 14 also failed in Tamil Nadu Tamil, so கதை is only part of that one.
- வடிவா (beautiful). The model translated it as “looks like” in rows 7 and 16. The Tamil Nadu word அழகா worked in both rows. In the first probe, both அழகா and வடிவா came out as “formal”, so the model is not fully reliable on either word.
- இருங்கோ (sit down). The model transliterated it back as “Iruno” instead of translating it.
- ஓம் (yes). The model never translated it as “yes”. It gave “Oh, I know” (row 1, which I graded generously) and “Om, that boy…” (row 20).
Two failures had nothing to do with dialect. Rows 6 and 14 also failed in Tamil Nadu Tamil, and row 6 got the same wrong answer in both versions. So பெடியன் (boy) is not the cause. Both rows are question words (“where”, “who”), but two rows are too few to say that the model fails on them in general. Other questions (rows 4, 5, 10, 11) passed.
Why the gap? (a guess)
My guess is training data. There is much more Tamil Nadu Tamil online than Sri Lankan Tamil. So a model trained on web text sees the Tamil Nadu forms much more often. I cannot prove it. The paper lists its Tamil sources (FineWeb-2, HPLT, Sangraha, CulturaX, OSCAR, Wikipedia, Project Madurai, books, and OCR text). It says 98% of the first pool was web text from Common Crawl. It gives no regional breakdown and does not mention Sri Lankan Tamil.
This test is also small: 20 phrases, one model, graded by me. The script used the Q8_0 GGUF with greedy decoding (temperature: 0), so the results should be repeatable. I ran it again and got the same 40 answers. The first chats above used plain ollama run defaults. The gap suggests a real difference, but the cause is still a guess.
Limitations
The paper is direct about the model’s limits:
- Limited factual knowledge
- Weak multi-step reasoning
- Unreliable refusal of harmful requests
- Sometimes answers Tamil requests in English
- Can lose earlier context in longer conversations
- A research model, not a source of safety-critical advice
I saw a related problem myself. Tanglish questions got English answers until I asked for Tamil. My testing did not cover the others.
Reproduce it
Everything is in ai-playground/agaram-tamil-model:
- Test script: sl-vs-tn-tamil.py
- Test data: sl-vs-tn-examples.json
- Results: srilankan-vs-tamil-nadu-tamil.md
More phrases, or other dialects (Jaffna against Batticaloa, Chennai against Madurai), would make this much more useful. PRs and feedback are welcome.
Takeaways
- A 2.5B Tamil-first model handles casual Tamil and Tanglish chat on a laptop.
- Even a Tamil-first model translated Tamil Nadu Tamil better than Sri Lankan Tamil in my test.
- The misses were specific words, not whole sentences. A small set of Sri Lankan words (கதை, வடிவா, ஓம், இருங்கோ) caused most of the failures. A targeted eval set or some fine-tuning data might close that gap.
Thanks to Ramchand Kumaresan (@Mechramc) and Murai Labs for building a Tamil-first model and releasing it openly.
Screenshots


Links
- Announcement: https://x.com/Mechramc/status/2115426441764499947
- Weights: https://huggingface.co/murai-labs/agaram-2.5b-instruct
- GGUF: https://huggingface.co/murai-labs/agaram-2.5b-gguf
- Code: https://github.com/Murai-Labs/Agaram2.5b
- Paper: https://arxiv.org/abs/2610.18420
- Chat demo: https://huggingface.co/spaces/mechramc/agaram-2.5b-chat
- My experiment: https://github.com/sujee/ai-playground/tree/main/agaram-tamil-model
- My social posts: https://x.com/sujee_dev/status/2116094941592182978
A note on AI: I used AI as a writing and coding partner to help organize my thoughts and polish this article. The ideas and experiments are mine.