cheriftenga/nllb-200-distilled-600M-ewe-lora
NLLB-200-distilled-600M fine-tune LoRA FR <-> EWE
Note : une version v2 bidirectionnelle est disponible et recommandee : cheriftenga/nllb-200-distilled-600M-ewe-lora-v2. Elle ameliore fortement le sens EWE -> FR (52,24 chrF++ contre 37,52).
Modele de traduction automatique francais <-> ewe (ewe, langue gbe parlee au Togo et au Ghana), obtenu par fine-tuning LoRA de facebook/nllb-200-distilled-600M sur le corpus cheriftenga/tg-nlp-toolkit-fr-ewe-v0.3.
Projet : toolkit NLP pour langues a faibles ressources du Togo (ewe, kabiyè). Ce modele est la premiere pierre : un traducteur FR <-> EWE adapte a l'ewe du Togo (littoral de Lome) et au domaine sante/administration (grilles thematiques en cours de traduction manuelle).
Resultats
Scores officiels (test de reference verifie, 241 paires)
Scores mesures sur le test de reference verifie a 100 % (241 paires, double validation par 2 locuteurs natifs independants, 97 % de concordance entre verificateurs, arbitrage final) :
Gain FR -> EWE : +10,17 chrF++ et +11,03 BLEU par rapport au zero-shot : le corpus apporte un gain reel, fort et significatif.
EWE -> FR : le modele v1 n'a ete entraine que dans le sens FR -> EWE ; le sens inverse ne progresse donc pas (leger recul en chrF++, +0,23 BLEU). Le fine-tuning v2 (bidirectionnel, paires inversees) vise a corriger ce point faible.
Scores sur le split test auto-aligne (6 564 paires, pour comparaison)
Exemples (FR -> EWE, apres fine-tuning)
Utilisation
Le modele publie est l'adaptateur LoRA uniquement : il doit etre charge sur le modele de base avec peft.
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from peft import PeftModel
REPO = "cheriftenga/nllb-200-distilled-600M-ewe-lora"
tokenizer = AutoTokenizer.from_pretrained(REPO)
base = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M")
model = PeftModel.from_pretrained(base, REPO)
model.eval()
def traduire(texte, src="fra_Latn", tgt="ewe_Latn"):
tokenizer.src_lang = src
enc = tokenizer(texte, return_tensors="pt", truncation=True, max_length=128)
gen = model.generate(
**enc,
forced_bos_token_id=tokenizer.convert_tokens_to_ids(tgt),
max_new_tokens=128,
num_beams=4,
)
return tokenizer.batch_decode(gen, skip_special_tokens=True)[0]
print(traduire("Comment vas-tu ?"))Codes NLLB : fra_Latn (francais), ewe_Latn (ewe).
Donnees d'entrainement
Corpus cheriftenga/tg-nlp-toolkit-fr-ewe-v0.3 (65 640 paires : train 52 512 / dev 6 564 / test 6 564), assemble depuis :
Limitations
- Ewe ancien vs moderne : une partie des donnees vient de la Bible 1913 (orthographe ancienne). Le modele herite de ce melange ; la cible long terme est l'ewe parle actuel (Lome).
- Direction EWE -> FR : le modele v1 est unidirectionnel (entraine uniquement FR -> EWE) ; le sens inverse ne progresse pas (leger recul en chrF++). Le fine-tuning v2 (bidirectionnel) vise a le corriger.
- Defauts connus : redondances occasionnelles, artefacts de tokenisation (ex. "Wo- kpoe").
- Domaine : principalement religieux/generaliste ; les domaines sante/administration seront couverts par la traduction manuelle des grilles thematiques (en cours).
Licence et attribution
- Modele :
cc-by-nc-sa-4.0— licence heritee du modele de base NLLB-200 (Meta AI, CC-BY-NC-SA-4.0). Usage non commercial sans accord distinct. - Donnees : domaine public (Bible 1913, Segond 1910) + ODC-By (OPUS/NLLB — attribution : <https://opus.nlpl.eu/>).
Auteurs
- TENGA Cherif Abdel Azize (Ingenieur IA)
Citation
@misc{tengue2026ewelora,
title={NLLB-200-distilled-600M fine-tune LoRA FR-EWE},
author={Tengue, Cherif},
year={2026},
howpublished={\url{https://huggingface.co/cheriftenga/nllb-200-distilled-600M-ewe-lora}}
}