pushkarsharma/wmt26-arabic-asian-mt
WMT 2026 Low-Resource Arabic–Asian MT — NLP-IIT-Patna
Fine-tuned weights for our submission to the WMT 2026 shared task on Low-Resource Arabic–Asian Machine Translation: six directions (Arabic↔English, Arabic↔Hindi, Arabic↔Urdu) across three multilingual models, each direction trained separately.
Code, data preparation and evaluation: github.com/poskar-a/Arabic-translation-challenges
Each folder holds one subfolder per direction — ar-en, en-ar, ar-hi, hi-ar, ar-ur, ur-ar — with the tokenizer and trainer state alongside the weights. NLLB folders contain full model weights; MADLAD and GemmaX2 folders contain LoRA adapters to be applied on top of the base checkpoints above.
Official ranks
Blind challenge test set. Primary and contrastive systems are ranked on separate leaderboards, so the columns are not directly comparable.
Usage
Download one direction rather than the whole repo (NLLB alone is 40 GB):
from huggingface_hub import snapshot_download
path = snapshot_download(
"pushkarsharma/wmt26-arabic-asian-mt",
allow_patterns="madlad/ar-en/*",
)MADLAD-400 (primary). Prefix the source with the target-language tag:
from peft import PeftModel
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
base = AutoModelForSeq2SeqLM.from_pretrained("google/madlad400-10b-mt", device_map="auto")
model = PeftModel.from_pretrained(base, f"{path}/madlad/ar-en")
tok = AutoTokenizer.from_pretrained(f"{path}/madlad/ar-en")
inputs = tok("<2en> مرحبا بالعالم", return_tensors="pt").to(model.device)
print(tok.decode(model.generate(**inputs, num_beams=4)[0], skip_special_tokens=True))NLLB-200. Set the source language and force the target BOS token (arb_Arab, eng_Latn, hin_Deva, urd_Arab):
tok = AutoTokenizer.from_pretrained(f"{path}/nllb/ar-en")
model = AutoModelForSeq2SeqLM.from_pretrained(f"{path}/nllb/ar-en", device_map="auto")
tok.src_lang = "arb_Arab"
inputs = tok("مرحبا بالعالم", return_tensors="pt").to(model.device)
ids = model.generate(**inputs, forced_bos_token_id=tok.convert_tokens_to_ids("eng_Latn"), num_beams=4)
print(tok.decode(ids[0], skip_special_tokens=True))GemmaX2-28-9B. Instruction prompt, adapter on a 4-bit base:
Translate the following text from Arabic to English:
{source}
Translation:Decoding for all reported results: beam 4, no_repeat_ngram_size=3, repetition penalty 1.3, length penalty 0.8, max_new_tokens = min(512, 2.5 × source length), outputs normalised to Unicode NFC.
Training
One run per direction on a single RTX 6000 Ada (49 GB), seed 42, effective batch size 32, linear schedule with warmup, early stopping at patience 2.
No heuristic normalisation was applied before tokenisation: the usual Arabic rules collapse Urdu characters that are contrastive, and each model's subword vocabulary was learned over unnormalised text.
License
Released under CC BY-NC 4.0, the most restrictive of the upstream licenses (NLLB-200 is CC BY-NC 4.0; MADLAD-400 is Apache 2.0; GemmaX2 inherits the Gemma license). Base-model terms apply to their respective derivatives.
