Spaces:
Sleeping
Sleeping
File size: 2,389 Bytes
0cebe35 3eae2ef 0cebe35 3eae2ef |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# 📰 AG News Text Classification Demo
Ce projet présente une application de classification de textes d’actualité basée sur le dataset **AG News**.
L'objectif est de comparer plusieurs stratégies d'inférence de modèles Transformers pour la classification de texte.
---
## 🚀 Démo en ligne
L’application est disponible ici :
[**Lien vers la démo Hugging Face Space**](https://huggingface.co/spaces/Merwan611/classification-text)
---
## 📂 Organisation du projet
- `app.py` : interface Gradio avec deux onglets (`Demo` + `Documentation`)
- `scripts/inference.py` : fonctions d’inférence pour 4 types de modèles
- `scripts/train.py` : script d’entraînement du modèle BERT fine-tuné sur AG News
- `scripts/utils.py` : calcul des métriques d’évaluation (accuracy, F1, etc.)
- `requirements.txt` : liste des dépendances Python
---
## 🧠 Description des modèles utilisés
1. **Base model**
Modèle BERT préentraîné `textattack/bert-base-uncased-ag-news` utilisé directement sans fine-tuning.
2. **Zero-shot**
Modèle `facebook/bart-large-mnli` utilisé pour classification zero-shot via pipeline Hugging Face.
3. **Few-shot**
Approche zero-shot avec exemples dans le prompt (prompt engineering).
4. **Fine-tuned model**
Modèle BERT `bert-base-uncased` entraîné sur un sous-ensemble équilibré du dataset AG News (3000 exemples par classe), sauvegardé sur Hugging Face Hub sous `Merwan611/agnews-finetuned-bert`.
---
## 📊 Données et entraînement
- **Dataset** : AG News (4 classes : World, Sports, Business, Sci/Tech)
- **Préprocessing** : tokenisation avec `AutoTokenizer` BERT
- **Entraînement** : 3 epochs, batch size 32, métrique optimisée : accuracy
- **Sous-échantillonnage** pour accélérer l’entraînement : 3000 exemples par classe pour le train, 1000 par classe pour le test
---
## 📈 Performances
Les métriques calculées sont :
- Accuracy
- Precision (moyenne pondérée)
- Recall (moyenne pondérée)
- F1-score (moyenne pondérée)
Le modèle fine-tuné atteint généralement une meilleure précision que le modèle de base ou les approches zero-shot.
---
## ⚙️ Lancer l’application localement
1. Cloner le repo
2. Créer un environnement virtuel Python
3. Installer les dépendances :
```bash
pip install -r requirements.txt
4. Lancer python app.py |