Génération de question à partir d'un contexte
Le modèle est fine tuné à partir du modèle moussaKam/barthez afin de générer des questions à partir d'un paragraphe et d'une suite de token. La suite de token représente la réponse sur laquelle la question est basée.
Input: Les projecteurs peuvent être utilisées pour <hl>illuminer<hl> des terrains de jeu extérieurs
Output: À quoi servent les projecteurs sur les terrains de jeu extérieurs?
Données d'apprentissage
La base d'entrainement est la concatenation des bases SquadFR, fquad, piaf. L'input est le context et nous avons entouré à l'aide du token spécial <hl> les réponses.
Volumétrie (nombre de triplet contexte/réponse/question):
- train: 98 211
- test: 12 277
- valid: 12 776
Entrainement
L'apprentissage s'est effectué sur une carte Tesla V100.
- Batch size: 20
- Weight decay: 0.01
- Learning rate: 3x10-5 (décroit linéairement)
- < 24h d'entrainement
- Paramètres par défaut de la classe TrainingArguments
- Total steps: 56 000
La loss represente des "sauts" à cause de la reprise de l'entrainement à deux reprises. Cela induit une modification du learning rate et explique la forme de la courbe.
Résultats
Les questions générées sont évaluées sur les métrique BLEU et ROUGE. Ce sont des métriques approximative pour la génération de texte.
Tokenizer
Le tokenizer de départ est BarthezTokenizer auquel ont été rajouté les tokens spéciaux <sep> et <hl>.
Utilisation
Le modèle est un POC, nous garantissons pas ses performances
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from transformers import Text2TextGenerationPipeline
model_name = 'lincoln/barthez-squadFR-fquad-piaf-question-generation'
loaded_model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
loaded_tokenizer = AutoTokenizer.from_pretrained(model_name)
nlp = Text2TextGenerationPipeline(model=loaded_model, tokenizer=loaded_tokenizer)
nlp("Les projecteurs peuvent être utilisées pour <hl>illuminer<hl> des terrains de jeu extérieurs")
# >>> [{'generated_text': 'À quoi servent les projecteurs sur les terrains de jeu extérieurs?'}]
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from transformers import Text2TextGenerationPipeline
model_name = 'lincoln/barthez-squadFR-fquad-piaf-question-generation'
loaded_model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
loaded_tokenizer = AutoTokenizer.from_pretrained(model_name)
text = "Les Etats signataires de la convention sur la diversité biologique des Nations unies doivent parvenir, lors de la COP15, qui s’ouvre <hl>lundi<hl>, à un nouvel accord mondial pour enrayer la destruction du vivant au cours de la prochaine décennie."
inputs = loaded_tokenizer(text, return_tensors='pt')
out = loaded_model.generate(
input_ids=inputs.input_ids,
attention_mask=inputs.attention_mask,
num_beams=16,
num_return_sequences=16,
length_penalty=10
)
questions = []
for question in out:
questions.append(loaded_tokenizer.decode(question, skip_special_tokens=True))
for q in questions:
print(q)
# Quand se tient la conférence des Nations Unies sur la diversité biologique?
# Quand a lieu la conférence des Nations Unies sur la diversité biologique?
# Quand se tient la conférence sur la diversité biologique des Nations unies?
# Quand se tient la conférence de la diversité biologique des Nations unies?
# Quand a lieu la conférence sur la diversité biologique des Nations unies?
# Quand a lieu la conférence de la diversité biologique des Nations unies?
# Quand se tient la conférence des Nations unies sur la diversité biologique?
# Quand a lieu la conférence des Nations unies sur la diversité biologique?
# Quand se tient la conférence sur la diversité biologique des Nations Unies?
# Quand se tient la conférence des Nations Unies sur la diversité biologique?
# Quand se tient la conférence de la diversité biologique des Nations Unies?
# Quand la COP15 a-t-elle lieu?
# Quand la COP15 a-t-elle lieu?
# Quand se tient la conférence sur la diversité biologique?
# Quand s'ouvre la COP15,?
# Quand s'ouvre la COP15?
Citation
Model based on:
paper: https://arxiv.org/abs/2010.12321
github: https://github.com/moussaKam/BARThez
@article{eddine2020barthez,
title={BARThez: a Skilled Pretrained French Sequence-to-Sequence Model},
author={Eddine, Moussa Kamal and Tixier, Antoine J-P and Vazirgiannis, Michalis},
journal={arXiv preprint arXiv:2010.12321},
year={2020}
}
- Downloads last month
- 133