KavithaSaaram-9b-it is a fine-tuned large language model built for intralingual translation of classical Tamil poetry into modern, understandable Tamil. It bridges the linguistic gap between Sangam and classical Tamil literature and today's Tamil speakers, with a focus on poetic and cultural preservation.
KavithaSaaram-9b-it is a 9-billion parameter decoder-only language model fine-tuned for intralingual poetry translation. The model is part of the PaaPeyarchi project, a research initiative to simplify ancient Tamil literary texts using modern Tamil for educational, literary, and cultural applications. It leverages a curated dataset of classical Tamil poems paired with simplified, culturally faithful translations.
KavithaSaaram-9b-it shows significant improvements over KavithaSaaram-2b across all major metrics.
The 9B model produces translations that are more fluent, faithful, and easier to understand while preserving poetic structure.
Diwahar A.K.(2025).
KavithaSaaram-9b-it: A Large Language Model for Intralingual Tamil Poetry Translation [Computer software]. Hugging Face.
https://huggingface.co/akdiwahar/KavithaSaaram-9b-it
1@misc{akdiwahar2025kavithasaaram9b,
2 title = {KavithaSaaram-9b-it: A Large Language Model for Intralingual Tamil Poetry Translation},
3 author = {Diwahar A.K.},
4 year = {2025},
5 publisher = {Hugging Face},
6 howpublished = {\url{https://huggingface.co/akdiwahar/KavithaSaaram-9b-it}},
7 note = {Fine-tuned LLM for simplifying classical Tamil poetry}
8}
This model is intended for the intralingual translation of Tamil poetry, particularly:
1from transformers import AutoTokenizer, AutoModelForCausalLM
2
3tokenizer = AutoTokenizer.from_pretrained("akdiwahar/KavithaSaaram-9b-it")
4model = AutoModelForCausalLM.from_pretrained("akdiwahar/KavithaSaaram-9b-it")
5
6prompt = "Tamil Intralingual Translation: 'அன்பிற்கும் உண்டோ அடைக்குந்தாழ் ஆர்வலர் புன்கணீர் பூசல் தரும்'"
7inputs = tokenizer(prompt, return_tensors="pt")
8outputs = model.generate(**inputs, max_new_tokens=512,repetition_penalty=1.1,no_repeat_ngram_size=4,temperature=1, do_sample=False)
9print(tokenizer.decode(outputs[0], skip_special_tokens=True))