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