Révolutionner l'analyse des sentiments grâce aux adaptateurs

Découvrez comment nous révolutionnons l'analyse des sentiments en intégrant la technique révolutionnaire AdapterFusion, en surmontant l'oubli catastrophique et en permettant un apprentissage multitâche efficace. Découvrez l'architecture légère des adaptateurs et leurs performances supérieures dans notre étude de cas détaillée.

DANS CET ARTICLE

Prêt à extraire l'or de vos données ?

Introduction

Imaginez que vous vous efforciez d'entraîner efficacement un modèle linguistique sur plusieurs tâches et que vous vous aperceviez qu'il oublie les apprentissages précédents au fur et à mesure que de nouvelles informations sont acquises. C'est le problème auquel d'innombrables chercheurs et développeurs ont été confrontés lorsqu'ils travaillaient sur des modèles d'analyse des sentiments.

L'incapacité à retenir et à partager les connaissances acquises dans le cadre de tâches multiples a entravé les progrès et conduit au phénomène redouté de l'oubli catastrophique.

Voici la solution qui change la donne : les adaptateurs. Ces composants innovants dotés d'une architecture légère transforment le paysage de l'analyse des sentiments car ils peuvent être formés plus rapidement, avec moins de ressources GPU par rapport aux grands modèles de langage et sans nuire aux performances.

Le secret de la réussite des adaptateurs réside dans leur capacité à relever les défis de l'apprentissage par transfert, en combinant des connaissances provenant de divers ensembles de données de manière non destructive et sans compromettre les performances.

Bienvenue dans la nouvelle génération d'analyse des sentiments, pilotée par la technique de pointe AdapterFusion. Il est temps de laisser les oublis catastrophiques derrière nous et d'embrasser un avenir avec des modèles intelligents et polyvalents, capables d'apprendre et de partager efficacement des connaissances provenant de tâches multiples.

Dans ce billet de blog, nous explorons le potentiel des architectures d'adaptateurs pour les tâches d'analyse des sentiments, en particulier en utilisant la technique AdapterFusion.

  1. Nous commençons par présenter les adaptateurs et le modèle Transformer, en soulignant leurs avantages par rapport à la mise au point traditionnelle, en mettant l'accent sur leur architecture légère.
  2. Nous présentons ensuite un exemple détaillé d'utilisation d'adaptateurs pour l'analyse des sentiments, en évaluant à la fois un adaptateur unique et des modèles de fusion.

→ Nos résultats montrent que les deux modèles sont plus performants que l'adaptateur actuellement en production, mais il est surprenant de constater que le modèle de fusion n'est pas beaucoup plus performant que l'adaptateur unique. D'autres expériences sont nécessaires pour tirer une conclusion plus solide.

Relever le défi avec AdapterFusion

L'oubli catastrophique, principal obstacle rencontré par les chercheurs, peut désormais être résolu grâce à AdapterFusion, une technique présentée dans l'article. AdapterFusion : Composition de tâches non destructive pour l'apprentissage par transfert par J. Pfeiffer et al.

Les adaptateurs sont essentiellement des couches légères ajoutées aux modèles BERT, qui offrent deux avantages remarquables :

  1. Tout en ayant beaucoup moins de paramètres d'apprentissage, les adaptateurs ont des performances équivalentes à celles des modèles entièrement réglés, ce qui en fait un choix efficace.
  2. Les adaptateurs excellent dans l'apprentissage par transfert, car ils peuvent apprendre à partir de différents ensembles de données et combiner efficacement ces connaissances à l'aide d'une composition de tâches non destructive qui utilise des mécanismes d'attention dynamiques.

En tirant parti des adaptateurs, nous pouvons créer des modèles qui partagent des connaissances issues de différentes tâches tout en évitant les oublis catastrophiques, ce qui garantit un processus d'apprentissage fiable et stable.

Progrès et étapes du projet

Nous avons commencé ce projet le 1er février, avec l'objectif de terminer le modèle de sentiment et d'émotion pour le mois d'avril.

La conception du modèle permet des améliorations constantes basées sur des évaluations internes et sur le précieux retour d'information des clients, ce qui garantit qu'il répond toujours aux attentes et les dépasse.

Architecture des adaptateurs : Libérer la puissance

Les adaptateurs sont une technique architecturale puissante pour les modèles de transformateurs qui permettent un réglage fin efficace sans qu'il soit nécessaire d'entraîner à nouveau l'ensemble du modèle.

En insérant de petits modules entraînables entre les couches d'un modèle pré-entraîné, les adaptateurs permettent une personnalisation pour des tâches spécifiques tout en réduisant le nombre de paramètres entraînables, ce qui se traduit par des temps d'entraînement plus rapides et des besoins en mémoire moindres.

Les adaptateurs constituent donc une option intéressante pour les tâches de traitement du langage naturel, telles que la prédiction des sentiments et des émotions, pour lesquelles une adaptation rapide et des performances élevées sont essentielles.

Architecture des goulets d'étranglement

Les couches d'adaptation sont constituées d'une matrice de projection vers le bas, d'une fonction de non-linéarité, d'une matrice de projection vers le haut et d'une connexion résiduelle.

Un hyperparamètre clé est la dimension du goulot d'étranglement mqui apparaît dans la définition du facteur de réduction ci-dessous. Ce facteur définit le rapport entre la dimension cachée de la couche d'un modèle et la dimension du goulot d'étranglement :

facteur de réduction = \frac{d_{hidden}}{d_{bottleneck}} = \frac{d}{m}

Since m << d, the bottleneck architecture significantly reduces the number of parameters and acts as an encoder able to filter out crucial information.

Dans la pratique, les adaptateurs entraînent l'équivalent de 0,5 % à 8 % des paramètres du modèle original.

AdapterFusion : Extraction et composition de connaissances

AdapterFusion combine plusieurs adaptateurs simples, chacun formé indépendamment sur une tâche spécifique ou dataset. L'adaptateur résultant est une fusion d'adaptateurs simples. Ce processus comporte deux étapes :

  1. Extraction de connaissances: Apprentissage de paramètres spécifiques à la tâche pour chaque adaptateur de manière indépendante.
  2. Composition des connaissances: Combiner efficacement les connaissances de manière non destructive.

Cette méthode permet aux adaptateurs d'éviter les oublis catastrophiques plus efficacement que les mises au point séquentielles sur plusieurs tâches.

Activation contextuelle

En termes simples, l'activation contextuelle est une technique utilisée pendant l'étape de composition des connaissances pour améliorer les performances du modèle en combinant les connaissances de plusieurs adaptateurs formés.

Pour ce faire, on utilise un mécanisme d'attention, présenté pour la première fois dans l'article Attention Is All You Need (A. Vaswani et al., 2017).

Cela permet au modèle de se concentrer sur les informations les plus utiles pour une entrée donnée. Cette approche permet de former des adaptateurs sur des ensembles de données de sentiments et d'émotions plus efficacement que les méthodes traditionnelles d'apprentissage par transfert.

AdapterFusion apprend un mélange paramétré d'adaptateurs formés disponibles et identifie les adaptateurs les plus utiles pour une entrée donnée.

Les paramètres Ψ utilisés dans AdapterFusion consistent en des matrices de clés, de valeurs et de requêtes à chaque couche. ldénotées par Kl, Vlet Ql. En utilisant la sortie de chaque adaptateur zl,t comme entrée pour Key et Value, AdapterFusion apprend l'activation contextuelle.

En fin de compte, cette approche puissante permet la formation efficace d'adaptateurs sur des ensembles de données de sentiments et d'émotions tout en surmontant les limites des techniques traditionnelles d'apprentissage par transfert.

Mise en œuvre des adaptateurs

Dans cette section, nous examinerons les principaux points concernant la mise en œuvre des adaptateurs et leur application dans notre cas d'utilisation.

Tâches à accomplir

Prédire les sentiments et les émotions est un défi complexe en raison de la nature complexe des langues naturelles. Par exemple, un seul mot peut exprimer un large éventail de sentiments et d'émotions, et le changement ou l'ajout de mots peut modifier le sens et l'interprétation.

Heureusement, les deux tâches partagent de nombreux aspects communs, tels que l'utilisation de modèles adaptateurs-transformateurs et la configuration d'hyperparamètres pendant la formation, même si les tâches de prédiction diffèrent. L'analyse des sentiments est un problème de classification multiple, tandis que l'analyse des émotions est un problème de classification multi-label.

Il est essentiel de recueillir des informations en retour et de tirer parti de la modularité des adaptateurs pour améliorer le modèle pour chaque client. Ces prédictions peuvent être entièrement basées sur les décisions du client, ce qui nécessite un réglage fin sur des données aussi proches que possible des siennes. Par exemple, il y a deux façons de prédire le sentiment :

  • Sentiment basé sur le locuteur: J'aime vraiment me moquer des gens avec mes amis serait plutôt classé comme positif.
  • Sentiment moral: J'aime vraiment me moquer des gens avec mes amis serait catégorisé comme négatif.

L'analyse des revues sera généralement basée sur le premier type de sentiment, tandis qu'une banque, par exemple, optera pour une analyse basée sur des critères moraux.

Prédiction du sentiment

Le résultat souhaité pour la prédiction des sentiments est un nombre flottant compris entre [-1 ; 1] (-1 pour négatif, 0 pour neutre et 1 pour positif). Cependant, les ensembles de données utilisés pour former les modèles sont généralement conçus pour des problèmes de multi-classification, car la cible est constituée d'étiquettes (binaires, ternaires ou à cinq points d'échelle).

L'objectif est de mettre en œuvre une formation multi-classification capable d'apprendre à partir d'ensembles de données comportant un nombre arbitraire d'étiquettes et de renvoyer un résultat continu dans l'intervalle [-1 ; 1]. Ceci peut être facilement réalisé avec une transformation affine.

Prédiction des émotions

Le résultat final de la prédiction des émotions sera des émotions identifiées à partir d'une liste d'émotions prédéfinies. L'objectif est d'obtenir une probabilité pour chacune des 28 émotions possibles suivantes :

["admiration", "amusement", "colère", "contrariété", "approbation", "sollicitude", "confusion", "curiosité", "désir", "déception", "désapprobation", "dégoût", "embarras", "excitation", "peur", "gratitude", "chagrin", "joie", "amour", "nervosité", "optimisme", "fierté", "réalisation", "soulagement", "remords", "tristesse", "surprise", "neutre"].

Le choix de ces émotions a été directement inspiré par le site goemotions dataset, qui est un site annoté par des humains dataset de 58k. Reddit en langue anglaise. Il présente 27 émotions, dont 12 positives, 11 négatives, 4 catégories d'émotions ambiguës et 1 classe supplémentaire : "neutre".

Présentation des ensembles de données

L'idée est d'utiliser une variété d'ensembles de données d'entraînement pour notre modèle afin d'acquérir un maximum de connaissances et de généraliser autant que possible, c'est-à-dire de bien prédire sur des données d'entrée inédites.

De même, en termes d'évaluation, plus il y a d'ensembles de données, mieux c'est. En particulier, avant de mettre un modèle en production, il est recommandé de l'évaluer sur des données de clients (éventuellement très bruitées) afin de mieux anticiper les performances du modèle.

Sentiment

Voici quelques ensembles de données publiques intéressants pour l'analyse des sentiments, contenant un nombre raisonnablement élevé d'échantillons :

La plupart de ces ensembles de données sont en anglais et correspondent à des critiques. Par conséquent, notre modèle est plus susceptible de classer les critiques que d'autres types de données, ce qui nous convient parfaitement à l'adresse Lettria puisque nous travaillons principalement sur la prédiction des critiques. Toutefois, cela peut s'avérer contraignant pour d'autres types de données.

La majorité de ces ensembles de données ont des étiquettes binaires, ce qui peut être problématique pour prédire les classes positives, neutres et négatives. En revanche, les ensembles de données à 5 étiquettes contiennent beaucoup plus d'informations utiles pour classer les sentiments en trois classes, même si l'apprentissage peut prendre plus de temps en raison de la complexité accrue.

Parmi ces ensembles de données, Amazon-Reviews-Multi a été choisi. Il comprend 200 000 échantillons d'avis contenant au moins 20 caractères et 5 étiquettes.

Dataset pour évaluer les prédictions de sentiment

Nos modèles seront évalués sur un site français anonyme dataset contenant environ 661 échantillons. Les étiquettes ont été soigneusement et manuellement définies, et les entrées trop ambiguës ont été éliminées.

Comme le montre le diagramme circulaire, le site dataset reste assez déséquilibré en raison du petit nombre de labels neutres.

Émotion

Le public dataset go_emotions disponible sur HuggingFace en anglais sera utilisé.

Il correspond à un dataset annoté par l'homme de 58k Reddit extraits de subreddits populaires en anglais et étiquetés avec les 28 catégories d'émotions définies ci-dessus.

Il contient 211 225 annotations, fournies par 82 annotateurs, de 58 011 exemples de textes trouvés sur Reddit. Chaque texte a été annoté par plusieurs annotateurs afin de parvenir à un consensus, compte tenu de la subjectivité des annotations.

Pour prédire les émotions en français et en anglais, l'original dataset a été traduit en français et en espagnol à l'aide de l'API DeepL.

Paramètres et configurations

L'architecture adaptateur-transformateur sera insérée dans un modèle multilingue pré-entraîné basé sur les transformateurs : XLM-RoBERTa-Base pour traiter l'anglais, le français, l'espagnol (et d'autres langues à l'avenir). Ce modèle a été entraîné sur la modélisation du langage masqué et contient environ 280 millions de paramètres.

Par rapport au modèle BERT utilisé, il y a beaucoup moins de paramètres entraînables : seulement 1,5 million de paramètres, soit 0,5 %.

L'idée est de suivre les paramètres du modèle aussi étroitement que possible pour comprendre ses performances. L'utilisation de MLFlow sera particulièrement utile pour obtenir une évaluation approfondie des performances du modèle.

PytorchLightning sera utilisé pour entraîner nos modèles.

Avant d'optimiser le modèle, les ensembles de données ont été prétraités. Il s'agit notamment de

  • Suppression des motifs indésirables non pris en charge par les bibliothèques de manipulation de données
  • Traduire les ensembles de données pour obtenir des versions françaises, anglaises et espagnoles.
  • Normalisation des étiquettes dataset pour traiter les ensembles de données avec des étiquettes entières commençant par 0

Une fois les ensembles de données prêts à être utilisés, l'optimisation consiste à trouver les configurations appropriées pour :

  • lr: le taux d'apprentissage
  • la patience
  • min_epochs/max_epochs
  • pas_min/max_pas
  • distribution_weights_loss: poids pour prendre en compte le déséquilibre dataset
  • perte: le choix de la fonction de perte
  • activation_function: il est possible d'utiliser softmax et de considérer l'analyse des émotions comme un problème de multi-classification au détriment d'un problème multi-label.

La perte d'entropie croisée sera utilisée comme fonction de perte pour l'analyse des sentiments, puisqu'il s'agit d'un problème de classification multi-classes. Pour l'analyse des émotions, la perte d'entropie croisée binaire peut être utilisée puisqu'il s'agit d'un problème de classification multi-label.

Évaluation du modèle : Un exemple d'analyse de sentiments

Mesures d'évaluation

Pour évaluer les performances de notre modèle sur des problèmes de classification multi-classes (et multi-labels également), nous pouvons utiliser des outils tels que les matrices de confusion et les rapports de classification de sklearn. Ces outils fournissent des résultats détaillés pour chaque classe, ce qui nous aide à comprendre les performances du modèle. Étant donné que notre test dataset est déséquilibré, la précision n'est peut-être pas la meilleure mesure. Nous nous concentrerons plutôt sur le score F1, qui prend en compte à la fois la précision et le rappel et qui est bien adapté aux ensembles de données déséquilibrés.

Expérience : AdapterFusion pour combiner les langues

D'après les recherches de J. Pfeiffer et al. la fusion d'adaptateurs est une caractéristique attrayante des modèles basés sur les adaptateurs. Nous allons voir si elle peut améliorer les performances de notre modèle. Les expériences précédentes ont montré que le site Amazon-Reviews-Multi dataset est particulièrement utile pour former des adaptateurs uniques. Par conséquent, tous les modèles de cette expérience seront entraînés sur ce site multilingue dataset.

Nous allons entraîner nos modèles sur 90 000 échantillons en français, anglais et espagnol, en utilisant un batch_size de 8 et un lr de 1e-4. Le premier modèle(SingleAdapterModel) sera entraîné sur une version combinée de dataset dans les trois langues. Le second modèle(AdapterFusionModel) fusionnera trois adaptateurs simples, chacun entraîné sur une langue distincte dataset, puis affinera le modèle fusionné sur la version combinée dataset.

Il est important de noter que nous ne pouvons pas dire de manière concluante si la fusion est meilleure que les adaptateurs simples en nous basant uniquement sur cette expérience. Une comparaison plus approfondie consisterait à calculer la moyenne des résultats sur plusieurs entraînements avec différentes configurations et à afficher les écarts types.

Synthèse des résultats

Les résultats de l'expérience montrent que le modèle SingleAdapterModel et le modèle AdapterFusionModel sont plus performants que le modèle actuel en production en termes de score F1 et de précision. Le modèle SingleAdapterModel a obtenu une précision de 0,871 et un score F1 macro moyen de 0,664. En comparaison, le modèle AdapterFusionModel a obtenu une précision de 0,861 et un score F1 macro moyen de 0,674.

Bien que les deux modèles présentent des améliorations par rapport au modèle de production actuel, les différences entre eux ne sont pas suffisamment importantes pour déterminer de manière concluante la supériorité d'une approche par rapport à l'autre.

Conclusion

Il est intéressant de noter que le modèle de fusion n'est pas beaucoup plus performant que l'adaptateur unique.

Étant donné que nous utilisons un modèle de base multilingue (XLM-RoBERTa-base Model), il est possible que l'entraînement sur un site multilingue dataset n'entraîne pas de problèmes d'interférence catastrophiques. Selon l'article de J. Pfeiffer et al. les modèles de fusion sont plus performants que les adaptateurs simples sur les ensembles de données à faibles ressources (ceux avec des données limitées pour l'inférence), tandis que les adaptateurs simples sont légèrement plus performants sur les ensembles de données à ressources élevées (ceux avec beaucoup de données disponibles).

Si les performances des deux approches sont comparables, le modèle de fusion nécessite plus d'espace de stockage : le modèle ONNX occupe 1,13 Go contre 1,04 Go pour l'adaptateur unique. En outre, il peut être plus pratique d'améliorer un modèle unique plutôt qu'un modèle de fusion.

En fin de compte, il est important de se rappeler qu'une seule expérience ne suffit pas pour tirer des conclusions définitives.

Cependant, il est évident que les deux modèles testés sont nettement plus performants que le modèle de série actuel dans les configurations données.

Sources d'information

Callout

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Continuer à lire

Voir tous les articles ->
Créez votre pipeline NLP en 2 minutes
Démarrez ->