savinugunarathna/mT5-Singlish-Sinhala-Merged
010
mT5 — Singlish → Sinhala Transliteration
Fine-tuned version of google/mt5-base for the task of Singlish-to-Sinhala transliteration, developed as part of the IndoNLP 2025 Shared Task on Singlish–Sinhala Transliteration.
This is the merged (LoRA weights absorbed) final model.
Task
Singlish (romanised colloquial Sinhala) → Sinhala script transliteration.
Training Pipeline
Trained using a three-phase curriculum strategy with LoRA, using the same pipeline as the Small100 variant, adapted for the mT5 architecture.
Data
Synthetic Augmentation
Adhoc data was expanded with a rule-based Singlish augmenter:
- Vowel dropping — randomly drops non-boundary vowels
- Cluster simplification — collapses common digraphs (
th→t,sh→s,nd→n, etc.) - Vowel swapping — substitutes phonetically similar vowels (
a↔e,i↔e,o↔u)
Aggression factor: 0.5. Applied at 15% / 20% / 15% across the three phases.
Input Prefix
Inputs are prefixed with transliterate: at inference time, consistent with T5-style task conditioning.
Three-Phase Curriculum
LoRA Configuration
Training Arguments
Evaluation Results
BERTScore computed using Ransaka/sinhala-bert-medium-v2.
Usage
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
model_id = "savinugunarathna/mT5-Singlish-Sinhala-Merged"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
inputs = tokenizer("transliterate: mama giya", return_tensors="pt")
outputs = model.generate(
**inputs,
num_beams=4,
max_length=128,
length_penalty=1.2,
repetition_penalty=1.2,
no_repeat_ngram_size=3,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# → මම ගියNote: Always prependtransliterate:to inputs. Suppressing<extra_id_N>tokens viabad_words_idsis recommended for clean output.
