EveSa commited on
Commit
3257a33
2 Parent(s): bf2e03a 7f1c2ca

Merge pull request #23 from EveSa/Ling

Browse files
Files changed (3) hide show
  1. Documentation.md +19 -4
  2. README.md +72 -1
  3. src/fine_tune_T5.py +4 -0
Documentation.md CHANGED
@@ -14,13 +14,13 @@ Le corpus est nettoyé avant d'être utilisé pour l'entraînement du LSTM. Seul
14
 
15
  2 systèmes :
16
  - LSTM réalisé à partir du <a href="https://loicgrobol.github.io//neural-networks/slides/03-transformers/transformers-slides.py.ipynb">cours</a> et de cet <a href="https://www.kaggle.com/code/columbine/seq2seq-pytorch">exemple</a> et de beaucoup d'autres référence en ligne.
17
- - Fine-tuned transformers
 
18
 
19
  # La méthodologie
20
 
21
  ## Répartition du travail 👥
22
  Nous avons travaillé avec le logiciel de gestion de version Github en mettant en place une intégration continue envoyant directement les `pull request` sur l'espace Huggingface.
23
-
24
  Idéalement, les `pull request` doivent être validées par deux membres du projet avant d'être accéptées afin d'éviter les erreurs en production. Nous n'avons pas mis en place ces restrictions à cause de la difficulté à gérer Docker dans Huggingface qui nous a nécessité beaucoup de modification.
25
 
26
  ## Problèmes rencontrés et résolution
@@ -53,7 +53,18 @@ Idéalement, les `pull request` doivent être validées par deux membres du proj
53
  - [ ] Passage vers du Sampling
54
 
55
  ### Problème sur le fine-tuning
56
-
 
 
 
 
 
 
 
 
 
 
 
57
  ### Problème sur l'interface
58
 
59
  ### Problème de l'Intégration continue
@@ -132,6 +143,10 @@ Pour ce faire nous nous sommes beaucoup inspirée du kaggle https://www.kaggle.c
132
  ## Résultats du LSTM
133
 
134
  Les résultats du LSTM sont inutilisables mais ont permis au moins de se confronter à la difficulté de mettre en place des réseaux de neurones depuis pas grand chose.
135
- On aurait aimé avoir plus detemps pour aller plus loin et comprendre mieux encore : l'entraîement par batch, pourquoi les résultats sont si mauvais, mettre d'autres stratégies de génération en place, ...
 
136
 
137
  ## Résultat du fine-tuning
 
 
 
 
14
 
15
  2 systèmes :
16
  - LSTM réalisé à partir du <a href="https://loicgrobol.github.io//neural-networks/slides/03-transformers/transformers-slides.py.ipynb">cours</a> et de cet <a href="https://www.kaggle.com/code/columbine/seq2seq-pytorch">exemple</a> et de beaucoup d'autres référence en ligne.
17
+ - Fine-tuned transformers modèle lancé et pré-entrainé par Google :<a href="https://huggingface.co/google/mt5-small">google/mt5-small</a>, il s'agit d'une variance du <a href="https://huggingface.co/docs/transformers/v4.16.2/en/model_doc/mt5">mT5</a>. Le model est entrainé pour notre tâche en se basant sur la documentation sur <a href="https://huggingface.co/docs/transformers/tasks/summarization">Summarisation</a> proposé par Huggingface.
18
+
19
 
20
  # La méthodologie
21
 
22
  ## Répartition du travail 👥
23
  Nous avons travaillé avec le logiciel de gestion de version Github en mettant en place une intégration continue envoyant directement les `pull request` sur l'espace Huggingface.
 
24
  Idéalement, les `pull request` doivent être validées par deux membres du projet avant d'être accéptées afin d'éviter les erreurs en production. Nous n'avons pas mis en place ces restrictions à cause de la difficulté à gérer Docker dans Huggingface qui nous a nécessité beaucoup de modification.
25
 
26
  ## Problèmes rencontrés et résolution
 
53
  - [ ] Passage vers du Sampling
54
 
55
  ### Problème sur le fine-tuning
56
+ - [x] La fonction map ne peut pas s'appliquer :
57
+ - Dans le prétrainement des données, utilise Dataset.from_dict(dataframe) pour obtenir les donneés en Dataset au lieu de Dataframe
58
+ - [x] Problème de la permission d'appel du model privé enregistré sur HuggingFace :
59
+ - Se connecter à l'aide de `huggingface-cli login` et mettre `use_auth_token=True` en appelant le model.
60
+ - [x] Processus arrêté sans erruers détectées :
61
+ - Diminuer le nombre de données
62
+ - Modifier les paramètres d'entrainement en diminuant le nombre d'epoch d'entrainement
63
+ - [ ] Warning message pour les tokens non identifiables causé par
64
+ la conversion de sentencepiece tokenizer en fast tokenizer:
65
+ - [ ] pas de résolution à ce jour
66
+ - [ ] Les résultats d'évaluation selon ROUGE sont très mauvais, rouge2 à 0:
67
+ - [ ] pas de résolution à ce jour
68
  ### Problème sur l'interface
69
 
70
  ### Problème de l'Intégration continue
 
143
  ## Résultats du LSTM
144
 
145
  Les résultats du LSTM sont inutilisables mais ont permis au moins de se confronter à la difficulté de mettre en place des réseaux de neurones depuis pas grand chose.
146
+
147
+ On aurait aimé avoir plus de temps pour aller plus loin et comprendre mieux encore : l'entraîement par batch, pourquoi les résultats sont si mauvais, mettre d'autres stratégies de génération en place, ...
148
 
149
  ## Résultat du fine-tuning
150
+
151
+ Les résumés générés ne sont pas grammaticalement corrects à 100% mais les informations importantes du texte sont bien présentes dans le résumé, et la longeur du résumé correspond bien à notre attente. Cependant les résultats d'évaluation selon ROUGE est très mauvais, malgré une amélioration de 0.007 à 0.06 pour rouge1, il n'ést plus possible d'obtenir de meilleurs scores.
152
+
README.md CHANGED
@@ -4,4 +4,75 @@ sdk: docker
4
  app_file: src/api.py
5
  pinned: false
6
  ---
7
- # Initialisation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  app_file: src/api.py
5
  pinned: false
6
  ---
7
+
8
+ # Project Deep Learning - Text Summarisation tool and it's application programming interface
9
+
10
+ As part of the master course "Neural Network",for this university project, our task is about creating a application, a interface or a python library in the use of NLP(Natural Language Processing) with the help of an artificial neural network system.
11
+
12
+
13
+ ## Description
14
+
15
+ **Objectives of our project :**
16
+
17
+ Create a interface which allows users to sammrize a long text like press article into a brief version.
18
+
19
+ To achieve this general objective, for the algorithm part, we would like to test two different deep learning methods: setting up a LSTM model and fine tuning Transformer model.
20
+
21
+ For the interface, having a interface building with fastAPI framework and putting the application on Huggingface.
22
+
23
+
24
+ ## Getting Started
25
+
26
+ ### Préparation
27
+
28
+ * Open the link below directing towards our interface on huggingface.
29
+ ```
30
+ https://huggingface.co/spaces/EveSa/SummaryProject
31
+ ```
32
+ ### The interface
33
+
34
+ * 1- Choosing a model for your summarization task (LSTM/Fine-tuned T5) by clicking on the scroll-down list. And click the Select model botton.
35
+
36
+ * 2- Enter your text to summarize in the left section.
37
+
38
+ * 3- Click on 'Go!' botton and you will get your sammary!
39
+
40
+ * 4- Dont forget to reset the App for your next try. The botton is at the right next to 'Go!'.
41
+
42
+ ## In case you want to try to execute our scripts :
43
+
44
+ ### Préparation
45
+ * In order to run the script, you need:
46
+
47
+ * 1- Create a virtual environment named .venv
48
+ ```
49
+ python3 -m virtualenv .venv
50
+ source .venv/bin/activate
51
+ ```
52
+ * 2- Also install the dependencies
53
+ ```
54
+ pip install -U -r requirements.txt
55
+ ```
56
+
57
+ * You are now ready to execute the scripts ^^
58
+
59
+ ### The programme api.py
60
+
61
+ * Run the script with the command below:
62
+ ```
63
+ python3 api.py
64
+ ```
65
+ * This code generate the same page as on Huggingface in your browser. To do the task your may follow the steps in the previous section.
66
+
67
+ ## Authors
68
+
69
+ Eve Sauvage
70
+
71
+ Estelle SALMON
72
+
73
+ Lingyun GAO
74
+
75
+
76
+ ## License
77
+
78
+ This project is licensed under the [M2 TAL] License
src/fine_tune_T5.py CHANGED
@@ -146,7 +146,11 @@ if __name__ == '__main__':
146
  train_dataset = datasetmaker('data/train_extract.jsonl')
147
 
148
 
 
 
 
149
  test_dataset = datasetmaker("data/test_extract.jsonl")
 
150
 
151
  test_dataset = datasetmaker('data/test_extract.jsonl')
152
 
 
146
  train_dataset = datasetmaker('data/train_extract.jsonl')
147
 
148
 
149
+ <<<<<<< HEAD
150
+ dev_dataset = datasetmaker("data/dev_extract.jsonl")
151
+ =======
152
  test_dataset = datasetmaker("data/test_extract.jsonl")
153
+ >>>>>>> 4e410f4bdcd6de645d9e73bb207d8a9170dfc3e1
154
 
155
  test_dataset = datasetmaker('data/test_extract.jsonl')
156