Instructions to use nitikeshd/odia-en-literary-translator with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use nitikeshd/odia-en-literary-translator with PEFT:
from peft import PeftModel from transformers import AutoModelForSeq2SeqLM base_model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M") model = PeftModel.from_pretrained(base_model, "nitikeshd/odia-en-literary-translator") - Notebooks
- Google Colab
- Kaggle
odia-en-literary-translator (v4)
A QLoRA adapter on facebook/nllb-200-distilled-600M for English → Odia (ଓଡ଼ିଆ).
Honest status: v4 measurably improves general-domain English→Odia translation over the NLLB baseline (+1.46 chrF++), but does not improve literary/poetic Odia (−0.08). Released with transparent metrics — not a literary SOTA claim.
Training
- Base: NLLB-200-distilled-600M. Adapter: LoRA r=16 (4.7M params, 0.76%), 4-bit QLoRA on a free Colab T4.
- Data: 30,000 general English–Odia pairs (AI4Bharat Samanantar) + 678 literary pairs (real public-domain literary Odia from Odia Wikisource paired with back-translated English), literary oversampled 5× → 33,390 pairs. 1000 training steps.
Results (chrF++, sacrebleu word_order=2, 100 held-out pairs each)
| Test set | Baseline (NLLB) | v4 | Δ |
|---|---|---|---|
| General (Samanantar) | 35.81 | 37.28 | +1.46 ✅ |
| Literary (held-out) | 23.21 | 23.13 | −0.08 |
Interpretation: more in-domain data + longer training yields a genuine general-domain gain. Literary stays flat because its training/test English is synthetic (back-translated) — limited literary signal. Improving literary translation requires human-curated literary parallel data.
Usage
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
from peft import PeftModel
tok = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M", src_lang="eng_Latn")
base = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M")
model = PeftModel.from_pretrained(base, "nitikeshd/odia-en-literary-translator")
enc = tok("The train leaves at six in the morning.", return_tensors="pt")
out = model.generate(**enc, forced_bos_token_id=tok.convert_tokens_to_ids("ory_Orya"), num_beams=4)
print(tok.batch_decode(out, skip_special_tokens=True)[0])
Audio (text + speech)
Live demo (text + Odia speech): https://huggingface.co/spaces/nitikeshd/odia-translator-demo
(audio via facebook/mms-tts-ory).
Limitations & ethics
- Low-resource; literary fidelity remains poor. May hallucinate/drop content — verify before use.
- Trained only on openly-licensed / public-domain Odia (Wikisource) + Samanantar.
- Literary data uses back-translation (synthetic English) — a known weak signal.
Changelog
- v4: 30k general + 3390 literary (×5), 1000 steps. General +1.46 chrF++; literary flat.
- v3 (prev): 4k general + 2034 literary, 400 steps. General +0.06; literary −0.08.
- Downloads last month
- 41
Model tree for nitikeshd/odia-en-literary-translator
Base model
facebook/nllb-200-distilled-600M