🇲🇨 vucabulu-1b-v0.1
English
French → Monegasque Translator (word-by-word) based on Gemma 3 1B, fine-tuned with LoRA.
⚠️ Version 0.1 — Proof of Concept
This model is a first step 🚀 The long-term goal is to develop a complete translation model capable of translating full sentences and generating text in Monegasque. We hope to receive support from linguistic experts and Monegasque institutions for future versions.
This version is a first proof of concept with ~78.6% accuracy on word-by-word French → Monegasque translation (improvable if polysemous words with multiple valid translations are excluded).
🏛️ Transparency & Open Source: We make available to the Comité National des Traditions Monégasques, institutions in charge of the Monegasque language, and anyone who requests it, all evaluation logs, detailed metrics, and benchmark data. Feel free to contact us!
📊 Comparative Benchmark
vucabulu-1b (this model) | 16,286 entries (full corpus) | ~78.6% ✅
Methodological note: The vucabulu model was evaluated on the entire reference corpus. Commercial models were evaluated on a subset of 1,000 words (margin of error ±2.8% at 95%).
🎯 Evaluated Task
French → Monegasque translation, word by word, exact comparison with the official dictionary. A word is considered correct if the generated translation exactly matches the dictionary entry or one of its variants.
📋 Evaluation Log Example
=================================================================
GLOBAL RESULTS
=================================================================
Words analyzed : 500
✅ Exact match : 365 (73.0%)
✅ Variant match : 3 (0.6%)
⚠️ Near-miss (±1 char) : 12 (2.4%)
❌ Miss : 108 (21.6%)
❌ Failed extraction : 12 (2.4%)
────────────────────────────────────────────────────
Strict accuracy : 73.60%
Accuracy + near-miss : 76.00%
=================================================================
ACCURACY BY PART OF SPEECH (top 10)
=================================================================
Grammar Total Exact Variant Miss Acc
───────────────────────────────────────────────────────
sm. 120 89 2 26 75.8%
sf. 118 87 1 29 74.6%
v. 75 55 0 20 73.3%
a. 64 50 0 14 78.1%
vpr. 29 12 0 11 41.4%
vi. 15 11 0 4 73.3%
a./sm. 12 11 0 1 91.7%
ad. 12 9 0 2 75.0%
sf 9 6 0 3 66.7%
s. 6 5 0 1 83.3%
⚠️ ** Evaluation Methodology: We test only strict word-for-word translation, without accounting for similar definitions or synonyms. Words with multiple meanings (polysemy) are a source of errors to be addressed in future training versions.
🔍 Linguistic Similarity Analysis
We also conducted a similarity study on errors from generalist large models. Their low scores are explained by the fact that they systematically confuse Monegasque with related languages:
- 🇮🇹 Italian — Dominant language in the region
- 🏴 Ligurian — Close linguistic family
- 🇫🇷 Corsican — Phonetic similarities
📝 This linguistic confusion will likely be the subject of a dedicated study or paper. Our fine-tuning specifically retrieves the real Monegasque words rather than Italian or Ligurian approximations.
🎯 Usage
With Unsloth (recommended — faster)
import torch
from unsloth import FastModel
model, tokenizer = FastModel.from_pretrained(
model_name = "NavisAI/vucabulu-1b-v0.1",
max_seq_length = 512,
load_in_4bit = False,
dtype = torch.bfloat16,
attn_implementation = "eager",
)
FastModel.for_inference(model)
# Build the prompt (Gemma format)
prompt = """<start_of_turn>user
Tu es un traducteur expert français-monégasque.
Comment dit-on 'bonjour' en monégasque ?<end_of_turn>
<start_of_turn>model
"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=128, temperature=0.1)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
🔧 Training Configuration
🇲🇨 Trained in Monaco, on Sovereign Infrastructure
| 🖥️ Hardware | ASUS GB10 (DGX Spark) / NVIDIA H100 NVL |
| 📍 Location | Monaco — 100% sovereign data and compute |
| ⏱️ Duration | ~4 hours (ASUS GB10) / ~15 minutes (H100 NVL) |
| ⚡ Consumption | ~1 kWh (ASUS GB10) |
| 💰 Electricity cost | ~€0.30 (ASUS GB10) |
| 🌱 Carbon footprint | ~27g CO2 — equivalent to an email with attachment! |
Dataset
- Dictionary entries: 16,286 raw entries
- Generated examples: 88,069 examples (~5.4 examples/word)
- Train: 79,262 examples (90%)
- Validation: 8,807 examples (10%)
- Format: JSONL, word-by-word translation
- Source: Official French-Monegasque dictionary by Louis Barral and Suzanne Simone (original 1983 edition, facsimile reprinted by the Comité National des Traditions Monégasques)
📌 Note v0.2+: The current dataset requires better extraction work (improved OCR or VLM-type vision models) to reduce noise and enrich training data.
🚀 Next Steps (v0.2+)
- 🧹 Re-refine and clean the dataset (cleaning, corrections, enrichment)
- 📈 Expand the training dataset
- 🤝 Contact associations and competent authorities to obtain authentic Monegasque text corpus
- 💬 Generate full sentence translations
- 🔄 Add Monegasque → French translation
- ✍️ Text generation in Monegasque
- 📊 Rigorous evaluation with translation metrics (BLEU, chrF)
- 🗣️ Feedback tool to allow experts and native speakers to validate/correct translations
🙏 Acknowledgments
- Unsloth AI — For their optimization tools that make fine-tuning accessible and fast
- Google Gemma Team — For the Gemma 3 1B model, a solid and open base
- Comité National des Traditions Monégasques — For reprinting the official dictionary by Louis Barral and Suzanne Simone, source of this dataset
This project aims to contribute to the preservation of Monegasque (munegascu), the traditional language of the Principality of Monaco.
🇮🇸 Inspired by Iceland
This project is inspired by the collaboration between Iceland and OpenAI for the preservation of Icelandic. In 2023, a team of 40 volunteers trained GPT-4 with only ~100 examples via RLHF, proving that small languages can benefit from AI with limited resources.
"This cooperation could become a model for other less widely spoken languages" — OpenAI, 2023
We hope that vucabulu can open a similar path for Monegasque language 🇲🇨
📜 License
This model is distributed under Google's Gemma Terms of Use, inherited from the Gemma 3 base model.
Authorized use: research, personal projects, commercial applications (under conditions).
Français
Traducteur Français → Monégasque (mot à mot) basé sur Gemma 3 1B, fine-tuné avec LoRA.
⚠️ Version 0.1 — Preuve de concept
Ce modèle est une première étape 🚀 L'objectif à terme est de développer un modèle de traduction complet capable de traduire des phrases entières et de générer du texte en monégasque. Nous espérons pouvoir bénéficier de l'appui d'experts linguistiques et du soutien des institutions monégasques pour les prochaines versions.
Cette version est une première preuve de concept avec une précision de ~78.6% sur la traduction mot à mot français → monégasque (améliorable si l'on exclut les mots polysémiques ayant plusieurs traductions valides).
🏛️ Transparence & Open Source : Nous tenons à disposition du Comité National des Traditions Monégasques, des institutions en charge de la langue monégasque, ainsi que de toute personne qui en fera la demande, l'ensemble des logs d'évaluation, métriques détaillées et données de benchmark. N'hésitez pas à nous contacter !
📊 Benchmark comparatif
vucabulu-1b (ce modèle) | 16,286 entrées (corpus complet) | ~78.6% ✅
Note méthodologique : Le modèle vucabulu a été évalué sur la totalité du corpus de référence. Les modèles commerciaux ont été évalués sur un sous-ensemble de 1 000 mots (marge d'erreur ±2.8% à 95%).
🎯 Tâche évaluée
Traduction français → monégasque, mot par mot, comparaison exacte avec le dictionnaire officiel. Un mot est considéré correct si la traduction générée correspond exactement à l'entrée du dictionnaire ou à l'une de ses variantes.
📋 Exemple de logs d'évaluation
=================================================================
RÉSULTATS GLOBAUX
=================================================================
Mots analysés : 500
✅ Exact match : 365 (73.0%)
✅ Variant match : 3 (0.6%)
⚠️ Near-miss (±1 car) : 12 (2.4%)
❌ Miss : 108 (21.6%)
❌ Extraction échouée : 12 (2.4%)
────────────────────────────────────────────────────
Précision stricte : 73.60%
Précision + near-miss : 76.00%
=================================================================
PRÉCISION PAR CATÉGORIE GRAMMATICALE (top 10)
=================================================================
Grammaire Total Exact Variant Miss Acc
───────────────────────────────────────────────────────
sm. 120 89 2 26 75.8%
sf. 118 87 1 29 74.6%
v. 75 55 0 20 73.3%
a. 64 50 0 14 78.1%
vpr. 29 12 0 11 41.4%
vi. 15 11 0 4 73.3%
a./sm. 12 11 0 1 91.7%
ad. 12 9 0 2 75.0%
sf 9 6 0 3 66.7%
s. 6 5 0 1 83.3%
⚠️ Méthodologie d'évaluation : Nous testons uniquement la traduction mot à mot stricte, sans prendre en compte les définitions proches ou synonymes. Les mots ayant plusieurs significations (polysémie) représentent une source d'erreurs à améliorer dans les prochaines versions d'entraînement.
🔍 Analyse de similarité linguistique
Nous avons également réalisé une étude de similarité sur les erreurs des grands modèles généralistes. Leur faible score s'explique par le fait qu'ils confondent systématiquement le monégasque avec des langues proches :
- 🇮🇹 Italien — Langue dominante dans la région
- 🏴 Ligure — Famille linguistique proche
- 🇫🇷 Corse — Similarités phonétiques
📝 Cette confusion linguistique fera probablement l'objet d'une étude ou d'un paper dédié. Notre fine-tuning permet justement d'aller chercher les vrais mots monégasques plutôt que des approximations italiennes ou ligures.
🎯 Usage
Avec Unsloth (recommandé — plus rapide)
import torch
from unsloth import FastModel
model, tokenizer = FastModel.from_pretrained(
model_name = "NavisAI/vucabulu-1b-v0.1",
max_seq_length = 512,
load_in_4bit = False,
dtype = torch.bfloat16,
attn_implementation = "eager",
)
FastModel.for_inference(model)
# Construire le prompt (format Gemma)
prompt = """<start_of_turn>user
Tu es un traducteur expert français-monégasque.
Comment dit-on 'bonjour' en monégasque ?<end_of_turn>
<start_of_turn>model
"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=128, temperature=0.1)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
🔧 Configuration d'entraînement
🇲🇨 Entraîné à Monaco, sur infrastructure souveraine
| 🖥️ Hardware | ASUS GB10 (DGX Spark) / NVIDIA H100 NVL |
| 📍 Lieu | Monaco — données et calcul 100% souverains |
| ⏱️ Durée | ~4 heures (ASUS GB10) / ~15 minutes (H100 NVL) |
| ⚡ Consommation | ~1 kWh (ASUS GB10) |
| 💰 Coût électrique | ~0,30€ (ASUS GB10) |
| 🌱 Empreinte carbone | ~27g CO2 — l'équivalent d'un email avec pièce jointe ! |
LoRA
| Paramètre | Valeur |
|---|---|
r (rank) |
64 |
lora_alpha |
64 |
lora_dropout |
0 |
target_modules |
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
bias |
none |
| PEFT type | LoRA |
Entraînement (SFTTrainer + Unsloth)
| Paramètre | Valeur |
|---|---|
| Epochs | 3 |
| Batch size | 32 |
| Learning rate | 2e-4 |
| LR scheduler | constant_with_warmup |
| Warmup steps | 50 |
| Optimizer | AdamW (PyTorch) |
| Precision | bf16 |
| Seed | 3407 |
Dataset
- Entrées dictionnaire : 16 286 entrées brutes
- Exemples générés : 88 069 exemples (~5.4 exemples/mot)
- Train : 79 262 exemples (90%)
- Validation : 8 807 exemples (10%)
- Format : JSONL, traduction mot à mot
- Source : Dictionnaire officiel français-monégasque de Louis Barral et Suzanne Simone (édition originale 1983, fac-similé réédité par le Comité National des Traditions Monégasques)
📌 Note v0.2+ : Le dataset actuel nécessite un meilleur travail d'extraction (OCR amélioré ou modèles de vision type VLM) pour réduire le bruit et enrichir les données d'entraînement.
📁 Fichiers
adapter_config.json— Configuration LoRAadapter_model.safetensors— Poids du modèle (LoRA)
🚀 Prochaines étapes (v0.2+)
- 🧹 Ré-affiner et dépolluer le dataset (nettoyage, corrections, enrichissement)
- 📈 Augmenter le dataset d'entraînement
- 🤝 Entrer en contact avec les associations et autorités compétentes pour obtenir du corpus de texte authentique en monégasque
- 💬 Générer la traduction de phrases complètes
- 🔄 Ajouter la traduction Monégasque → Français
- ✍️ Génération de texte en monégasque
- 📊 Évaluation rigoureuse avec métriques de traduction (BLEU, chrF)
- 🗣️ Outil de feedback pour permettre aux experts et locuteurs natifs de valider/corriger les traductions
🙏 Remerciements
- Unsloth AI — Pour leurs outils d'optimisation qui rendent le fine-tuning accessible et rapide
- Google Gemma Team — Pour le modèle Gemma 3 1B, base solide et ouverte
- Comité National des Traditions Monégasques — Pour la réédition du dictionnaire officiel de Louis Barral et Suzanne Simone, source de ce dataset
Ce projet vise à contribuer à la préservation de la langue monégasque (munegascu), langue traditionnelle de la Principauté de Monaco.
🇮🇸 Inspiré par l'Islande
Ce projet s'inspire de la collaboration entre l'Islande et OpenAI pour la préservation de l'islandais. En 2023, une équipe de 40 volontaires a entraîné GPT-4 avec seulement ~100 exemples via RLHF, prouvant que les petites langues peuvent bénéficier de l'IA avec des ressources limitées.
"Cette coopération pourrait devenir un modèle pour d'autres langues moins parlées" — OpenAI, 2023
Nous espérons que vucabulu puisse ouvrir une voie similaire pour le monégasque 🇲🇨
📜 Licence
Ce modèle est distribué sous la Gemma Terms of Use de Google, héritée du modèle de base Gemma 3.
Usage autorisé : recherche, projets personnels, applications commerciales (sous conditions).
Made in Monaco 🇲🇨 by Rémi Giraud (Navis AI Lab)
