Traduction automatique Wolof vers Francais (NLLB-200 + LoRA + API FastAPI)
# Traduction automatique Wolof vers Français
Projet de NLP : fine-tuning d'un modèle de traduction neuronale du **wolof vers le français**,
puis mise à disposition du modèle via une **API REST** (FastAPI), avec un déploiement en ligne.
L'ensemble de la démarche (préparation des données, fine-tuning, fusion, évaluation) ainsi que
les résultats se trouvent dans le notebook **`traduction_wolof_francais.ipynb`**, qui constitue
le cœur du projet.
## Choix techniques
- **Modèle de base** : `facebook/nllb-200-distilled-600M`. NLLB-200 prend déjà en charge le
wolof (`wol_Latn`) et le français (`fra_Latn`), ce qui donne un bien meilleur point de départ
qu'un modèle multilingue qui ne connaît pas le wolof.
- **Données** : `galsenai/french-wolof-translation` (environ 17 000 paires wolof/français).
- **Méthode de fine-tuning** : LoRA (adaptateurs de bas rang). On n'entraîne qu'environ 0,8 %
des paramètres, ce qui permet d'entraîner le modèle sur un Mac (GPU MPS, 16 Go) sans saturer
la mémoire et beaucoup plus rapidement qu'un fine-tuning complet.
- **API** : FastAPI + Uvicorn.
## Organisation des fichiers
```
.
├── traduction_wolof_francais.ipynb # notebook principal : tout le pipeline + résultats
├── training_history.json # historique de perte de l'entraînement (pour la courbe)
├── app.py # API FastAPI (locale)
├── test_api.py # script de test de l'API
├── requirements.txt
├── data/ # corpus découpé en train / val / test
└── hf_space/ # version déployée sur Hugging Face (Docker + adaptateur LoRA)
```
## Mise en route
Installation des dépendances dans un environnement virtuel :
```bash
python -m venv venv
./venv/bin/pip install -r requirements.txt
```
### Reproduire l'entraînement et l'évaluation
Ouvrir et exécuter le notebook `traduction_wolof_francais.ipynb`. Il contient tout le pipeline :
1. préparation des données (téléchargement, nettoyage, découpage) ; …