A code-mixed Singlish → Sinhala translation model built on top of mBART small-100, fine-tuned in two stages using LoRA. This model handles the everyday Sri Lankan reality of switching between English and Sinhala mid-sentence — something standard translation systems consistently fail at.
What It Does
Given a code-mixed input like:
mama hungry, kanna yamu
uber eken gihilla mall ekata yamu
meeting eka cancel una
LoRA was applied on top of the merged stage-1 weights and trained on a purpose-built code-mixed dataset with catastrophic forgetting prevention via replay.
Parameter
Value
Base model
savinugunarathna/Small100-Singlish-Sinhala-Merged
Method
LoRA (r=32, α=64, dropout=0.05)
LoRA targets
q_proj, k_proj, v_proj, out_proj, fc1, fc2
Trainable params
~5.5% of total
Epochs
3
Batch size
8 × 4 grad accum = 32 effective
Learning rate
3e-5 (cosine schedule, 5% warmup)
Hardware
NVIDIA P100 16GB
Precision
float32 (training)
Data Composition
Source
Samples
Role
Code-mixed pairs
full set × 2 upsample
Primary target
Phonetic Singlish–Sinhala
15,000
Replay — prevents forgetting
Adhoc vocabulary
5,000
Replay — preserves edge cases
Evaluation
Final evaluation on held-out test sets after merge:
Test Set
CER ↓
WER ↓
Exact Match ↑
Phonetic
0.0211
0.1015
31.0%
Adhoc
0.0458
0.1583
25.5%
CER of 0.021 on phonetic means the model gets the character sequence right roughly 98% of the time — the remaining errors are mostly minor orthographic variants (e.g. මහලු vs මහළු) rather than meaning-altering mistakes.