--- library_name: transformers license: cc-by-nc-4.0 base_model: facebook/nllb-200-3.3B metrics: - bleu - chrf - ter model-index: - name: Terjman-Supreme-v2.0 results: [] datasets: - BounharAbdelaziz/Terjman-v2-English-Darija-Dataset-350K language: - ary - en pipeline_tag: translation --- # 🇲🇦 Terjman-Supreme-v2.0 (3.3B) 🚀 **Terjman-Ultra-v2.0** is an improved version of [atlasia/Terjman-Ultra-v1](https://huggingface.co/atlasia/Terjman-Ultra-v1), built on the powerful Transformer architecture and fine-tuned for **high-quality, accurate translations**. This version is still based on [facebook/nllb-200-3.3B](https://huggingface.co/facebook/nllb-200-3.3B) but has been trained on a **larger and more refined dataset**, leading to improved translation performance. The model achieves results **on par with gpt-4o-2024-08-06** on [TerjamaBench](https://huggingface.co/datasets/atlasia/TerjamaBench), an evaluation benchmark for English-Moroccan darija translation models, that challenges the models more on the cultural aspect. ## 🚀 Features ✅ **Fine-tuned for English->Moroccan darija translation**. ✅ **State-of-the-art performance** among open-source models. ✅ **Compatible with 🤗 Transformers** and easily deployable on various hardware setups. ## 🔥 Performance Comparison The following table compares **Terjman-Supreme-v2.0** against proprietary and open-source models using BLEU, chrF, and TER scores. Higher **BLEU/chrF** and lower **TER** indicate better translation quality. | **Model** | **Size** | **BLEU↑** | **chrF↑** | **TER↓** | |------------|------|-------|-------|------| | **Proprietary Models** | | | | | | gemini-exp-1206 | * | **30.69** | **54.16** | 67.62 | | claude-3-5-sonnet-20241022 | * | 30.51 | 51.80 | **67.42** | | gpt-4o-2024-08-06 | * | 28.30 | 50.13 | 71.77 | | **Open-Source Models** | | | | | | Terjman-Ultra-v2.0| 1.3B | **25.00** | **44.70** | **77.20** | | **Terjman-Supreme-v2.0 (This model)** | 3.3B | 23.43 | 44.57 | 78.17 | | Terjman-Large-v2.0 | 240M | 22.67 | 42.57 | 83.00 | | Terjman-Nano-v2.0 | 77M | 18.84 | 38.41 | 94.73 | | atlasia/Terjman-Large-v1.2 | 240M | 16.33 | 37.10 | 89.13 | | MBZUAI-Paris/Atlas-Chat-9B | 9B | 14.80 | 35.26 | 93.95 | | facebook/nllb-200-3.3B | 3.3B | 14.76 | 34.17 | 94.33 | | atlasia/Terjman-Nano | 77M | 09.98 | 26.55 | 106.49 | ## 🔬 Model Details - **Base Model**: [facebook/nllb-200-3.3B](https://huggingface.co/facebook/nllb-200-3.3B) - **Architecture**: Transformer-based sequence-to-sequence model - **Training Data**: High-quality parallel corpora with high quality translations - **Training Precision**: FP16 for efficient inference ## 🚀 How to Use You can use the model with the **Hugging Face Transformers** library: ```python from transformers import AutoModelForSeq2SeqLM, AutoTokenizer model_name = "BounharAbdelaziz/Terjman-Supreme-v2.0" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSeq2SeqLM.from_pretrained(model_name) def translate(text, src_lang="eng_Latn", tgt_lang="ary_Arab"): inputs = tokenizer(text, return_tensors="pt", src_lang=src_lang, tgt_lang=tgt_lang) output = model.generate(**inputs) return tokenizer.decode(output[0], skip_special_tokens=True) # Example translation text = "Hello there! Today the weather is so nice in Geneva, couldn't ask for more to enjoy the holidays :)" translation = translate(text) print("Translation:", translation) # prints: صباح الخير! اليوم الطقس زوين بزاف فجنيف، ما قدرتش نطلب أكثر باش نتمتع بالعطلة :) ``` ## 🖥️ Deployment ### Run in a Hugging Face Space Try the model interactively in the [Terjman-Ultra Space](https://huggingface.co/spaces/BounharAbdelaziz/Terjman-Ultra-v2.0) 🤗 ### Use with Text Generation Inference (TGI) For fast inference, use **Hugging Face TGI**: ```bash pip install text-generation text-generation-launcher --model-id BounharAbdelaziz/Terjman-Supreme-v2.0 ``` ### Run Locally with Transformers & PyTorch ```bash pip install transformers torch python -c "from transformers import pipeline; print(pipeline('translation', model='BounharAbdelaziz/Terjman-Supreme-v2.0')('Hello there!'))" ``` ### Deploy on an API Server Use **FastAPI** to serve translations as an API: ```python from fastapi import FastAPI from transformers import AutoModelForSeq2SeqLM, AutoTokenizer app = FastAPI() model_name = "BounharAbdelaziz/Terjman-Supreme-v2.0" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSeq2SeqLM.from_pretrained(model_name) @app.get("/translate/") def translate(text: str): inputs = tokenizer(text, return_tensors="pt", src_lang="eng_Latn", tgt_lang="ary_Arab") output = model.generate(**inputs) return {"translation": tokenizer.decode(output[0], skip_special_tokens=True)} ``` ## 🛠️ Training Details Hyperparameters** The model was fine-tuned using the following training settings: - **Learning Rate**: `0.0005` - **Training Batch Size**: `1` - **Evaluation Batch Size**: `1` - **Seed**: `42` - **Gradient Accumulation Steps**: `64` - **Total Effective Batch Size**: `64` - **Optimizer**: `AdamW (Torch)` with `betas=(0.9,0.999)`, `epsilon=1e-08` - **Learning Rate Scheduler**: `Linear` - **Warmup Ratio**: `0.1` - **Epochs**: `3` - **Precision**: `Mixed FP16` for efficient training ## 📜 License This model is released under the **CC BY-NC (Creative Commons Attribution-NonCommercial)** license, meaning it can be used for research and personal projects but not for commercial purposes. For commercial use, please get in touch :) ### Framework versions - Transformers 4.47.1 - Pytorch 2.5.1+cu124 - Datasets 3.1.0 - Tokenizers 0.21.0 ```bibtex @misc{terjman-v2, title = {Terjman-v2: High-Quality English-Moroccan Darija Translation Model}, author={Abdelaziz Bounhar}, year={2025}, howpublished = {\url{https://huggingface.co/BounharAbdelaziz/Terjman-Supreme-v2.0}}, license = {CC BY-NC} } ```