Spaces:
Runtime error
Runtime error
Merge pull request #23 from EveSa/Ling
Browse files- Documentation.md +19 -4
- README.md +72 -1
- 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 |
-
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|