Résumé automatique

Lincoln France
9 min readOct 12, 2021

--

Contexte

Avec l’explosion de la collecte et du stockage de données textuelles, le besoin d’analyser et d’extraire de l’information pertinente de cette masse est de plus en plus présent.

De plus, l’essor des modèles de deep learning pour le traitement automatique du langage naturel (TALN) ont facilité l’usage des données textuelles dans des problématiques opérationnels. Le résumé automatique de texte, au même titre que le question answering, l’analyse de similarité, la classification de document et autres tâches liées au TALN font partie de ces problématiques.

C’est dans ce contexte que le Lab Innovation de Lincoln a décidé de mener des travaux sur le résumé automatique de texte. Ces travaux ont permis d’établir un benchmark des modèles de résumé automatique disponibles pour la langue Française, d’entrainer notre propre modèle et enfin de le mettre en production.

🤗 Huggingface

Il s’est vite avéré évident que nous allions devoir nous tourner vers des modèles de type Transformers (Attention is all you need [1]) qui se sont récemment imposés comme la référence en matière de traitement automatique du langage.

Une startup française nommée Huggingface en a profité pour lancer un ensemble d’outils (principalement des packages python ; transformers, datasets, …) facilitant l’entrainement et le partage des modèles basés sur les Transformers ainsi que la mise à disposition de jeux de données d’entrainement.

L’avantage des modèles présents sur cette plateforme est qu’ils sont déjà pré-entrainés, c’est à dire que la partie encodeur du modèle (qui permet de créer la représentation vectorielle du texte) a déjà été entrainée (le plus souvent via la méthode de Mask Language Modeling). Cette étape étant la plus gourmande en termes de données et de puissance de calcul, c’est une aubaine d’avoir accès à ce genre de modèles.

Nous ne sommes donc pas partis de zéro et même s’il existe un coût d’entrée pour maitriser ces libraires python, elles permettent d’économiser un temps précieux.

🔥 L’entrainement des modèles

Les données

Avant de pouvoir démarrer nos travaux, il a d’abord fallu construire une base de données pour l’apprentissage de modèles de résumé automatique. Nous avons récupéré des articles de presse depuis plusieurs sites de journaux français. L’hypothèse étant que le titre et le chapeau de l’article constituent un bon résumé de l’article. Cette base contient ~60K articles et est continuellement mise à jour.

Par la suite, une base de données nommée MLSUM [2] a été publié. Cette base contient également des articles de presse provenant de différents pays. Les articles en langue française proviennent essentiellement du Monde. Cela nous a rassuré dans notre choix de construire une base de données à partir d’articles de presse. La base MLSUM étant plus conséquente que la nôtre (425K articles), nous avons décidé de combiner les deux sources de données.

L’état de l’art

Les algorithmes de résumé automatique peuvent-être séparés en deux catégories : les résumés extractifs et les résumés abstractifs. Dans le cadre extractif, les résumés sont construits à partir de phrases extraites depuis le texte alors que les résumés abstractifs sont générées à partir de nouvelles phrases.

Avec l’essor des modèles de Deep Learning et notamment grâce aux Transformers, la création de résumés abstractifs est de plus en plus performante sans être parfaite pour autant. En effet, cette tâche est d’autant plus complexe que le texte à résumer est long. Cela engendre notamment des durées d’apprentissage qui explosent avec la longueur du texte. Des compromis doivent être fait sur la qualité pour pouvoir entrainer ce type de modèles.

Les modèles de résumé automatique sont assez courants en langue anglaise mais ils le sont beaucoup moins sur la langue française. Il existe des modèles multilingues, à l’instar de ceux entrainés par les auteurs de la base de données MLSUM. Récemment, peu après l’entrainement de nos modèles, un nouveau modèle nommé Barthez [3] a été publié sur la plateforme HuggingFace. Il a lui aussi été entrainé sur un jeu de données d’articles de presse en Français nommé OrangeSum [3].

Ces modèles nous serviront de référence pour comparer les performances des modèles entrainés par nos soins.

Métriques

Pour l’évaluation des modèles nous avons utilisé les mêmes métriques que celles utilisées dans le papier MLSUM, à savoir :

ROUGE : sans doute la mesure la plus souvent rapportée dans les tâches de résumé, le Recall Oriented Understudy for Gisting Evaluation (Lin, 2004) calcule le nombre de n-grams similaires entre le résumé évalué et le résumé de référence humain.

METEOR : The Metric for Evaluation of Translation with Explicit ORdering (Banerjee and Lavie, 2005) a été conçue pour l’évaluation des résultats de la traduction automatique. Elle est basée sur la moyenne harmonique de la précision et du rappel sur les unigrams, le rappel ayant une pondération supérieure à la précision. METEOR est souvent utilisé dans les publications sur le résumé automatique (See et al., 2017 ; Dong et al., 2019), en plus de ROUGE.

Novelty : il a été remarqué que certains modèles abstractifs se reposent trop sur l’extraction (See et al., 2017 ; Krysci ‘nski et al.‘, 2018). Par conséquent, il est devenu courant de mesurer le pourcentage de nouveaux n-grams produits au sein des résumés générés.

Source: Traduction depuis le papier MLSUM [2].

AzureML

Pour l’entrainement des modèles, nous avons utilisé le service cloud Azure ML qui fournit un environnement complet pour l’entrainement, le monitoring et le déploiement de modèles.

Nous avons plus précisément utilisé le SDK python qui permet de gérer tout l’environnement AzureML de façon programmatique, du lancement de “jobs” au déploiement des modèles.

Les Modèles

Nous avons tenté de finetuner des modèles basés sur les architectures T5 [4] et BART [5] en partant de modèles pré-entrainés disponibles sur Huggingface :

Résultats

Tout d’abord, nous avons fait plusieurs tentatives, en entrainant les modèles sur 10K articles, en faisant varier le nombre de tokens donnés en entrée du modèle (512 ou 1024) avec les architectures mentionnées plus haut.

Une première observation qu’on a pu faire est que les métriques ROUGE et METEOR ne semblent pas très adaptées à l’évaluation des performances de nos modèles.

Score METEOR et ROUGE-L de nos modèles versus les modèles de référence

En comparant nos modèles (qui ne sont pas très bons car peu entrainés) avec les modèles de références, on voit que ces derniers ont des scores ROUGE et METEOR équivalents voire moins bons que nos modèles. Nous avons donc choisi de baser nos comparaisons sur le score de Novelty uniquement.

Ces premiers entrainements nous ont ensuite permis de sélectionner l’architecture qui semblait converger le plus rapidement. Dans notre cas, c’est le modèle basé sur BART avec 512 tokens qui a été retenu pour deux raisons :

  • Les modèles avec 1024 tokens en entrée ne sont pas tellement meilleurs alors qu’ils sont plus coûteux à entrainer
  • Le modèle BART a de meilleures performances en novelty que les modèles T5 et donc des résumés potentiellement plus abstractifs.
Score de Novelty des modèles que nous avons entrainés

Nous avons donc décidé de pousser l’entrainement du modèle mbart-large-512 plus loin en l’entrainant cette fois pendant 2 epochs, soit 700k articles. Ceci a pris une trentaine d’heures sur une carte graphique Tesla V100.

Score de Novelty de notre modèle final vs les modèles de référence

Avec ce deuxième entrainement, nous avons réussi à augmenter de façon significative les performances de notre modèle. Néanmoins, elles restent bien évidemment inférieures aux résultats « humains » et aux modèles de références ayant optimisé la performance (MBERT et Barthez).

Quelques exemples de résumés

Covid-19 : le passe sanitaire ne concernera bientôt plus que 64 centres commerciaux en France, contre 178 actuellement (lemonde.fr)

Notre résumé :
“Le passe sanitaire ne sera plus demandé dans les centres commerciaux où il était jusque-là”.

Le tacle du Lundi — Bleus : il faut en finir avec les bons copains du vestiaire — Le Point

Notre résumé :
“Le sélectionneur de l’équipe de France, Didier Deschamps, ne parvient plus à gagner depuis cinq matches. L’heure de la remise en question est venue.”

Vous pouvez également tester nos modèles sur le portefolio du lab

Limitations

Au-delà des performances, cette expérimentation nous a permis de mettre en lumière quelques limites du résumé automatique :

Actuellement, la taille du texte en entrée des modèles de type Transformer est limitée par la capacité en mémoire des GPU. Le coût en mémoire étant quadratique avec la taille du texte en entrée, cela pose un vrai problème pour les tâches de résumé automatique où le texte à résumer est souvent assez long. Cependant des améliorations prometteuses dans l’architecture des Transformers commencent à voir le jour (longformer [6], bigbird [7]) et pourraient permettre de revenir à un coût linéaire.

Il y a également le problème des métriques. Il est très difficile de trouver des métriques pertinentes pour évaluer les tâches de génération de texte. Nous avons vu que les métriques METEOR et ROUGE, qui sont très largement utilisées dans la littérature, n’étaient pas très pertinentes lorsque nous avons voulu comparer nos modèles avec les modèles de référence. Le problème de ces métriques provient sûrement du fait qu’il faudrait comparer la sortie du modèle à un ensemble d’exemples de référence plutôt qu’à un seul. En effet, il y a plusieurs façons de résumer un article. Dans notre cas nous n’avons qu’un résumé de référence (le chapeau de l’article) et il faudrait en avoir plusieurs pour que ces métriques soient plus robustes et pertinentes.

Nous avons également rencontré plusieurs problèmes liés aux données en elles-mêmes. Le principal problème est que le chapeau de l’article était souvent une paraphrase voire un duplicata des premières phrases de l’article. Cela avait pour conséquence que nos modèles tendaient à être plus extractifs qu’abstractifs en renvoyant simplement les premières phrases de l’article. Il a donc fallu faire un travail de curation en supprimant les articles posant problème pour éviter ce genre de biais.

Déploiement

Publication sur HuggingFace

En suivant les instructions disponibles sur les pages ci-dessous, le modèle a été déployé sur le Hub Huggingface.

Il est donc maintenant disponible au plus grand nombre 🎆

lincoln/mbart-mlsum-automatic-summarization · Hugging Face

Déploiement via AzureML

Le service Azure ML permet également de déployer des modèles de façon assez simple soit sur des instances de conteneur (ACI) soit sur un cluster Kubernetes (AKS).

Comment déployer des modèles Machine Learning — Azure Machine Learning | Microsoft Docs

Vous pouvez également encapsuler vos modèles dans une application Flask conteneurisée puis la déployer via des pipelines de CI/CD sur une instance de conteneur ou un cluster kubernetes 😉

Exemple d’application Flask que nous avons utilisée pour déployer nos modèles publiés sur Huggingface :

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from flask import Flask, request
import json
app = Flask(__name__)tokenizer = AutoTokenizer.from_pretrained("lincoln/mbart-mlsum-automatic-summarization")
model = AutoModelForSeq2SeqLM.from_pretrained("lincoln/mbart-mlsum-automatic-summarization")
@app.route("/score", methods=['POST'])
def score():
data = json.loads(request.data)
tokens = tokenizer(data['inputs'], truncation=True, return_tensors='pt').input_ids
summary = model.generate(tokens, num_beams=4, max_length=300)

return {'summary_text': tokenizer.decode(summary[0], skip_special_tokens=True)}

Lincoln Lab

antoine hamon

Références

[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, & Illia Polosukhin. (2017). Attention Is All You Need.
[2] Thomas Scialom, Paul-Alexis Dray, Sylvain Lamprier, Benjamin Piwowarski, & Jacopo Staiano. (2020). MLSUM: The Multilingual Summarization Corpus.
[3] Moussa Kamal Eddine, Antoine J. -P. Tixier, & Michalis Vazirgiannis. (2021). BARThez: a Skilled Pretrained French Sequence-to-Sequence Model.
[4] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, & Peter J. Liu. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer.
[5] Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov, & Luke Zettlemoyer. (2019). BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension.
[6] Iz Beltagy, Matthew E. Peters, & Arman Cohan. (2020). Longformer: The Long-Document Transformer.
[7] Manzil Zaheer, Guru Guruganesh, Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontanon, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, & Amr Ahmed. (2021). Big Bird: Transformers for Longer Sequences.

--

--

Lincoln France

LINCOLN est une société de Conseil qui aide les entreprises à valoriser leurs données. Light Up Your Data !