Instructions to use bivariant/Griot-MT-1.3B-ALL with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use bivariant/Griot-MT-1.3B-ALL with Transformers:
# Use a pipeline as a high-level helper # Warning: Pipeline type "translation" is no longer supported in transformers v5. # You must load the model directly (see below) or downgrade to v4.x with: # 'pip install "transformers<5.0.0' from transformers import pipeline pipe = pipeline("translation", model="bivariant/Griot-MT-1.3B-ALL")# Load model directly from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("bivariant/Griot-MT-1.3B-ALL") model = AutoModelForSeq2SeqLM.from_pretrained("bivariant/Griot-MT-1.3B-ALL", device_map="auto") - PEFT
How to use bivariant/Griot-MT-1.3B-ALL with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Griot-MT
Griot-MT est le modèle de traduction automatique multilingue de Bivariant pour les langues africaines.
Il couvre 18 langues africaines en traduction bidirectionnelle avec le français, soit 36 directions de traduction.
Résultat principal : Griot-MT atteint 38.11 BLEU et 58.00 chrF++ sur l'ensemble des 36 directions, avec une couverture de 100 %.
Projet Griot · Collecte & alignement · GitHub · Bivariant
Langues couvertes
Baatonou (bba), Baoulé (bci), Dioula (dyu), Ewé (ewe), Ewondo (ewo), Fon (fon), Fulfulde (fub), Hausa (hau), Lingala (lin), Luganda (lug), Mooré (mos), Sar (mwm), Oromo (orm), Sango (sag), Shona (sna), Somali (som), Swahili (swh) et Wolof (wol).
Chaque langue est évaluée dans les deux directions :
- langue africaine → français ;
- français → langue africaine.
Architecture de la release
Griot-MT est distribué sous la forme :
- d'un modèle multilingue partagé d'environ 1,394 milliard de paramètres ;
- d'un adaptateur LoRA/RSLoRA par langue ;
- d'environ 23,6 millions de paramètres entraînables, soit environ 1,69 % du modèle partagé ;
- d'un tokenizer partagé.
Configuration LoRA de la release :
Les artefacts publics sont organisés sous adapters/<code>/.
Benchmark
Griot-MT est comparé à :
- NLLB-200 1.3B ;
- Google Cloud Translation.
Le benchmark contient :
3 systèmes × 18 langues × 2 directions = 108 unités d'évaluation.
Les métriques sont :
- SacreBLEU BLEU,
tokenize=13a; - chrF++,
word_order=2.
Pour le score global coverage-aware, une direction non supportée reçoit BLEU = 0 et chrF++ = 0.
Résultats globaux
| Système | BLEU | chrF++ | Directions supportées | Couverture |
|---|---|---|---|---|
| Griot-MT | 38.11 | 58.00 | 36/36 | 100.00% |
| NLLB-200 1.3B | 16.13 | 33.53 | 26/36 | 72.22% |
| Google Cloud Translation | 15.03 | 33.97 | 28/36 | 77.78% |
Couverture
Griot-MT couvre les 36/36 directions.
NLLB-200 1.3B couvre 26/36 directions.
Google Cloud Translation couvre 28/36 directions.
Résultats selon la direction
Griot-MT obtient :
- 48.01 BLEU / 64.20 chrF++ en langue africaine → français ;
- 28.20 BLEU / 51.80 chrF++ en français → langue africaine.
Qualité sur les directions supportées
Ce tableau retire uniquement la pénalité liée aux directions non supportées.
| Système | BLEU | chrF++ | Directions évaluées |
|---|---|---|---|
| Griot-MT | 38.11 | 58.00 | 36 |
| NLLB-200 1.3B | 22.34 | 46.43 | 26 |
| Google Cloud Translation | 19.33 | 43.68 | 28 |
Comparaison matched-support
Pour éviter qu'un avantage de couverture soit confondu avec un avantage de qualité, Griot-MT est également comparé aux baselines sur exactement les mêmes directions.
Griot-MT vs NLLB-200 1.3B
Sur les 26 directions supportées par NLLB :
| Système | BLEU | chrF++ |
|---|---|---|
| Griot-MT | 40.63 | 60.41 |
| NLLB-200 1.3B | 22.34 | 46.43 |
Gain Griot-MT : +18.29 BLEU et +13.98 chrF++.
Griot-MT vs Google Cloud Translation
Sur les 28 directions supportées par Google Cloud Translation :
| Système | BLEU | chrF++ |
|---|---|---|
| Griot-MT | 39.59 | 59.58 |
| Google Cloud Translation | 19.33 | 43.68 |
Gain Griot-MT : +20.26 BLEU et +15.91 chrF++.
Vue par langue
Les graphiques complets par langue et par direction sont disponibles dans benchmarks/visualizations/.
Inférence
Installation :
%pip uninstall -y torchao
%pip install -q \
"transformers==5.16.1" \
"peft==0.20.0" \
"accelerate==1.14.0" \
"sentencepiece==0.2.2" \
"safetensors>=0.4.3" \
"huggingface_hub>=0.34.0"
import torch
from transformers import (
AutoTokenizer,
AutoModelForSeq2SeqLM,
)
from peft import PeftModel
MODEL_ID = "bivariant/griot-mt"
LANGUAGE_TOKENS = {
"bba": "bba_Latn",
"bci": "bci_Latn",
"dyu": "dyu_Latn",
"ewe": "ewe_Latn",
"ewo": "ewo_Latn",
"fon": "fon_Latn",
"fub": "fub_Latn",
"hau": "hau_Latn",
"lin": "lin_Latn",
"lug": "lug_Latn",
"mos": "mos_Latn",
"mwm": "mwm_Latn",
"orm": "gaz_Latn",
"sag": "sag_Latn",
"sna": "sna_Latn",
"som": "som_Latn",
"swh": "swh_Latn",
"wol": "wol_Latn",
}
FRENCH_TOKEN = "fra_Latn"
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float16 if device == "cuda" else torch.float32
language = "fon"
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
base_model = (
AutoModelForSeq2SeqLM
.from_pretrained(
MODEL_ID,
torch_dtype=dtype,
)
.to(device)
)
model = PeftModel.from_pretrained(
base_model,
MODEL_ID,
subfolder=f"adapters/{language}",
)
model.eval()
def translate(
text,
source_token,
target_token,
):
tokenizer.src_lang = source_token
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
).to(device)
with torch.inference_mode():
output_ids = model.generate(
**inputs,
forced_bos_token_id=(
tokenizer.convert_tokens_to_ids(
target_token
)
),
num_beams=4,
max_length=257,
repetition_penalty=1.3,
no_repeat_ngram_size=3,
)
return tokenizer.decode(
output_ids[0],
skip_special_tokens=True,
)
# Français -> Fon
print(
translate(
"Bonjour, comment allez-vous ?",
FRENCH_TOKEN,
LANGUAGE_TOKENS["fon"],
)
)
# Fon -> Français
print(
translate(
"Wɛzɔ.",
LANGUAGE_TOKENS["fon"],
FRENCH_TOKEN,
)
)
Tokens de langue
Le français utilise fra_Latn.
Pour Oromo, Griot-MT utilise gaz_Latn.
Les autres langues utilisent leurs tokens Griot correspondants dans la release.
Décodage de référence
Les résultats publiés utilisent les paramètres suivants :
num_beams=4
max_length=257
repetition_penalty=1.3
no_repeat_ngram_size=3
Ces valeurs correspondent au protocole d'évaluation de référence et ne constituent pas une obligation pour tous les usages.
Interprétation des résultats
Les scores présentés sont spécifiques aux jeux de test utilisés dans cette évaluation.
Les performances peuvent varier selon :
- le domaine ;
- le dialecte ;
- les conventions orthographiques ;
- le code-switching ;
- la terminologie spécialisée.
Les scores coverage-aware et matched-support répondent à deux questions différentes :
- coverage-aware : quelle est la performance sur tout le portefeuille linguistique ciblé ?
- matched-support : quelle est la qualité lorsque les deux systèmes supportent exactement les mêmes directions ?
Ressources
- Modèle : bivariant/griot-mt
- Page projet : bivariant.github.io/Griot
- Bivariant : bivariant.com
Griot — Open Multilingual Intelligence for African Languages.
- Downloads last month
- 425






