Spaces:
Sleeping
Sleeping
| # 📰 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 |