# Dioula-AI — Fine-tuning Llama 3.1 70B en Dioula
Modèle de traduction et de conversation **Français ↔ Dioula (Jula)**,
fine-tuné avec QLoRA sur **38 027 paires** de phrases propres et dédupliquées.
- **Modèle de base** : Llama 3.1 70B Instruct (Meta)
- **Méthode** : QLoRA 4-bit (PEFT + bitsandbytes + TRL)
- **Dataset** : 38 027 paires FR↔Dioula → 114 075 exemples (x3 augmentation)
- **Fine-tuning** : AWS EC2 GPU (p3/p4d)
- **Inférence** : AWS EC2 ou API FastAPI
---
## Structure du projet
```
dioula-ai/
├── 1_download_dataset.py # Télécharge le dataset brut HuggingFace
├── 2_prepare_dataset.py # Formate dataset_clean.json → JSONL (train/valid/test)
├── 3_finetune.sh # Fine-tuning QLoRA Llama 3.1 70B (AWS GPU)
├── 4_test_model.py # Test manuel du modèle
├── build_dataset.py # Construit dataset_clean.json (HF + connaissances)
├── inference.py # Moteur d'inférence (PyTorch)
├── main.py # API FastAPI
├── benchmark_aligned.py # Benchmark FR→Dioula
├── dataset_clean.json # Dataset propre 38 027 paires (versionné)
├── setup_aws.sh # Script de setup complet sur AWS
├── requirements.txt # Dépendances Mac (MLX, dev local)
├── requirements-aws.txt # Dépendances AWS (PyTorch + TRL + bitsandbytes)
└── model/ # Modèles et adapteurs (non versionné — voir S3/HF)
├── llama-3.1-70b/ # Modèle de base (à télécharger sur AWS)
└── adapters/ # Poids LoRA après fine-tuning
```
> `model/` et les fichiers `.jsonl` ne sont pas dans le repo (trop lourds).
> Le dataset propre `dataset_clean.json` (~7 MB) est versionné.
---
## Démarrage rapide — AWS
### Prérequis
- Instance EC2 avec GPU : **p3.2xlarge** (V100 16GB, min) ou **p4d.24xlarge** (A100 80GB, recommandé)
- Ubuntu 22.04 LTS
- Accès au modèle `meta-llama/Meta-Llama-3.1-70B-Instruct` sur HuggingFace
(demande gratuite sur
huggingface.co)
- Token HuggingFace : h …