A
5.1M-parameter
model that translates
both ways
between
Moroccan Darija (الدارجة المغربية)
and
Modern Standard Arabic (الفصحى)
.
A single set of weights serves both directions; a direction-specific system prompt selects
which way to translate.
Finetuned from
oddadmix/Emhotob-5M-v2
, a tiny Llama-architecture
base (hidden 128, 5 layers, 4 heads, vocab 32000, tied embeddings).
Scaling study.
This is one rung of a from-scratch Arabic scaling study that runs an
identical SFT + eval recipe across bases from 0.5M to 50M parameters to locate where
translation
emerges
. On the headline MSA↔Egyptian pair, output is degenerate at ≤1M,
becomes real-but-rough at 5M, and usable at 10M+. See the sibling
oddadmix/50M-Darija-MSA-v1
for the fluent reference.
Evaluation
Deterministic held-out set of
2,961 pairs
(
seed=42
),
decoded
greedily
(
do_sample=False
, no repetition penalty), scored with sacreBLEU:
Direction
sacreBLEU
chrF
Darija → MSA
10.73
27.76
MSA → Darija
16.34
28.57
Saved weights are the best checkpoint by validation loss (
eval_loss = 2.718
). 20 samples
per direction with references are in
eval_bidirectional.json
.
Example translations
Real greedy-decoded outputs from the held-out set:
Darija → MSA
Source
Model output
Reference
لا، عندنا تذاكر يا حبيبة
لا، لدينا تذاكر يا حبيب.
لا، لدينا تذاكر يا حبيبتي.
غطّا وجهو و بكا
لقد كسرته.
لقد غطى وجهه وبكى.
MSA → Darija
Source
Model output
Reference
لا، لدينا تذاكر يا حبيبتي.
لا، راه راه راه راه
لا، عندنا تذاكر يا حبيبة
لقد غطى وجهه وبكى.
راه كاين فلقسم
غطّا وجهو و بكا
Usage
ChatML format.
Pick the system prompt for the direction you want:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "oddadmix/Emhotob-5M-Darija-MSA-v2"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16).to("cuda").eval()
SYSTEM = "أنت مترجم محترف. ترجم النص من الدارجة المغربية إلى اللغة العربية الفصحى."deftranslate(text, system=SYSTEM):
prompt = (f"<|im_start|>system\n{system}<|im_end|>\n"f"<|im_start|>user\n{text.strip()}<|im_end|>\n<|im_start|>assistant\n")
ids = tok(prompt, return_tensors="pt", add_special_tokens=False).to(model.device)
if tok.bos_token_id isnotNone:
bos = torch.tensor([[tok.bos_token_id]], device=model.device)
ids["input_ids"] = torch.cat([bos, ids["input_ids"]], dim=1)
ids["attention_mask"] = torch.cat([torch.ones_like(bos), ids["attention_mask"]], dim=1)
out = model.generate(**ids, max_new_tokens=256, do_sample=False,
eos_token_id=tok.eos_token_id, pad_token_id=tok.pad_token_id)
return tok.decode(out[0, ids["input_ids"].size(1):], skip_special_tokens=True).strip()
Training
Base model:
oddadmix/Emhotob-5M-v2
(Llama arch, hidden 128, 5 layers, 4 heads, vocab 32000, tied embeddings;
5,080,704 params
after resizing for 2 ChatML tokens)
Method:
HuggingFace
Trainer
, ChatML,
prompt-masked cross-entropy
(loss only on the
assistant turn). Each row is exploded into
two
training examples (one per direction).
Hyperparameters:
3 epochs · effective batch 64 · LR 3e-4 (cosine, 5% warmup) ·
bf16 · max length 1024 ·
load_best_model_at_end
on
eval_loss
.
A ~5.1M model: reliable on short/common sentences, but drift, repetition, and errors appear
on long or rare inputs. Gender is disambiguated only from context. For fluent translation use the
50M sibling.
License
Apache-2.0, inherited from the base model.
Runs of oddadmix Emhotob-5M-Darija-MSA-v2 on huggingface.co
15
Total runs
1
24-hour runs
-1
3-day runs
2
7-day runs
4
30-day runs
More Information About Emhotob-5M-Darija-MSA-v2 huggingface.co Model
Emhotob-5M-Darija-MSA-v2 huggingface.co is an AI model on huggingface.co that provides Emhotob-5M-Darija-MSA-v2's model effect (), which can be used instantly with this oddadmix Emhotob-5M-Darija-MSA-v2 model. huggingface.co supports a free trial of the Emhotob-5M-Darija-MSA-v2 model, and also provides paid use of the Emhotob-5M-Darija-MSA-v2. Support call Emhotob-5M-Darija-MSA-v2 model through api, including Node.js, Python, http.
Emhotob-5M-Darija-MSA-v2 huggingface.co is an online trial and call api platform, which integrates Emhotob-5M-Darija-MSA-v2's modeling effects, including api services, and provides a free online trial of Emhotob-5M-Darija-MSA-v2, you can try Emhotob-5M-Darija-MSA-v2 online for free by clicking the link below.
oddadmix Emhotob-5M-Darija-MSA-v2 online free url in huggingface.co:
Emhotob-5M-Darija-MSA-v2 is an open source model from GitHub that offers a free installation service, and any user can find Emhotob-5M-Darija-MSA-v2 on GitHub to install. At the same time, huggingface.co provides the effect of Emhotob-5M-Darija-MSA-v2 install, users can directly use Emhotob-5M-Darija-MSA-v2 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
Emhotob-5M-Darija-MSA-v2 install url in huggingface.co: