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 |
|