CoolFace
Modelpublic

pushkarsharma/wmt26-arabic-asian-mt

sourceHugging Facecc-by-nc-4.0updated 15d agoView on Hugging Face
0likes
Model Card

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

FolderBase modelAdaptationSubmitted as
madlad/google/madlad400-10b-mtLoRA, frozen 8-bit baseprimary
nllb/facebook/nllb-200-3.3Bfull fine-tuning, bf16contrastive-1
gemmax2/ModelSpace/GemmaX2-28-9B-v0.1QLoRA, 4-bit NF4contrastive-2

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.

DirectionMADLAD-400 (primary)NLLB-200 (contr-1)GemmaX2 (contr-2)
en→ar143
hi→ar132
ur→ar132
ar→en242
ar→hi112
ar→ur312

Usage

Download one direction rather than the whole repo (NLLB alone is 40 GB):

python
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:

python
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):

python
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.

NLLB-200MADLAD-400GemmaX2-28-9B
Adaptationfull FTLoRAQLoRA
Precisionbf168-bit base4-bit NF4, bf16 compute
Epochs553
Learning rate5e-55e-52e-4
LoRA r / α / dropout—16 / 32 / 0.0516 / 32 / 0.05
Checkpoint selectionCOMET-22eval losseval loss

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.