The model should continue with the diacritized Arabic text.
Quick start
python
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
34model_id ="ahmedsamirtarjama/Tashkeel-50M"5device ="cuda"if torch.cuda.is_available()else"cpu"67tok = AutoTokenizer.from_pretrained(model_id)8tok.padding_side ="left"9if tok.pad_token isNone:10 tok.pad_token = tok.eos_token
1112model = AutoModelForCausalLM.from_pretrained(13 model_id,14 torch_dtype=torch.bfloat16 if device =="cuda"else torch.float32,15).to(device)16model.eval()1718text ="اللغة العربية لغة جميلة"19prompt =f"قم بتشكيل هذة الجمله : {text}\n"20inputs = tok(prompt, return_tensors="pt").to(device)2122with torch.inference_mode():23 out = model.generate(24**inputs,25 max_new_tokens=256,26 do_sample=False,27 pad_token_id=tok.pad_token_id,28)2930print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Training
Full fine-tune (not LoRA) with Hugging Face Trainer:
Hyperparameter
Value
Epochs
1
Learning rate
3e-4
Scheduler
cosine
Warmup steps
500
Batch size
32
Max sequence length
768 (longer examples dropped)
Loss
next-token LM loss on the diacritized target only (prompt tokens masked with -100)
Precision
bfloat16
Approximate training recipe:
<source prompt> + <diacritized target> + </s>
Evaluation
Evaluated on Misraj/SadeedDiac-25 with standard Morph/Total DER & WER (missing GT diacritics skipped).
Mapping used below: Total ≈ (CE) (with case endings), Morph ≈ (w/o CE) (without case endings). Hallucinations ≈ share of examples skipped due to word-count mismatch.
Model
DER (CE)
WER (CE)
DER (w/o CE)
WER (w/o CE)
Hallucinations
Claude-3-7-Sonnet
1.39
4.67
0.77
2.31
0.82
Tashkeel-50M
3.08*
9.56*
2.26*
6.77*
~99
GPT-4
3.86
5.27
3.86
10.93
1.02
Gemini-Flash-2.0
3.19
7.99
2.38
5.50
1.17
Sadeed
7.29
13.74
5.26
9.92
7.19
*Tashkeel-50M DER/WER are computed only on examples where the prediction and reference have the same word count. Because most generations change length (truncation / repetition / insertions), they are skipped by the length-matching evaluator — hence the high hallucination rate. Treat the starred numbers as optimistic and not a full apples-to-apples comparison with systems that preserve word identity on nearly all examples.
For production tashkeel, prefer stronger constrained models or add decoding constraints that keep the undiacritized skeleton fixed.
Intended use
Research and prototyping for Arabic diacritization
Baseline for small / efficient tashkeel models
Educational demos of causal-LM fine-tuning for sequence transduction
Limitations
Small capacity (~50M); quality lags dedicated / large instruction models on hard classical Arabic
Causal generation can truncate, repeat, or insert words; DER/WER only apply when word counts match
Prompt is Arabic-instruction style; changing the prompt may degrade quality
Not a general-purpose chat model
Citation
If you use this model, please also cite the base model and dataset:
bibtex
1@misc{tashkeel50m,
2 title = {Tashkeel-50M},
3 author = {Ahmed Samir},
4 year = {2026},
5 howpublished = {\url{https://huggingface.co/ahmedsamirtarjama/Tashkeel-50M}}
6}