Communications Mining
Plus récente (Latest)
False
Guide du développeur Communications Mining
Last updated 17 mai 2024

Efficient Transformers II : Dilarification des connaissances et ajustements de précision

Ce post en deux parties explique comment rendre le NLP de pointe plus efficace en explorant les modifications apportées aux techniques de modélisation du langage basées sur Transformer , populaires mais exigeantes en termes de calculs.

  • Explication des raisons pour lesquelles le mécanisme d'auto-attention du Transformer a une charge de travail informatique élevée.
  • Présentation de mécanismes d’attention alternatifs qui sont plus efficaces à fonctionner sans affecter considérablement les performances.

Ce post permettra :

  • Explorez les méthodes qui entraînent de petits modèles pour reproduire les sorties de grands modèles.
  • Expliquer comment affiner efficacement les modèles de langage.
  • Fournissez nos recommandations de scénarios dans lesquels utiliser les différentes approches efficaces de Transformer.

Le post précédent comprenait un bref historique de l’apprentissage de la représentation sémantique dans NLP, et un aperçu du fonctionnement du mécanisme d’auto-attention du Transformer. Nous suggérons d'abord de lire ces sections pour les lecteurs qui peuvent ne pas y être familiarisés. Ce message partage également une partie de la notation introduite dans le message précédent.

Extraction des connaissances

La classification des connaissances est un domaine de recherche visant à améliorer l'efficacité des transformations. Elle forme de petits modèles (étudiants) en les encourageant à reproduire les sorties de grands modèles (docteurs). Il s'agit d'une technique qui, à l'origine, était populaire dans les tâches de classification dans Computer Vision, mais qui a été appliquée avec succès dans plusieurs domaines, dont la NLP. Le workflow standard est :

  1. Entraînez un grand modèle à l'aide de données génériques labellisées.
  2. Entraînez un petit modèle pour imiter le grand modèle à l'aide de données non labellisées spécifiques à la tâche (et de données labellisées spécifiques à la tâche, si disponibles).

Bien que ce processus implique toujours l'entraînement d'un grand modèle, il s'agit d'un coût unique. La tâche la plus fréquente des prédictions sera effectuée par le petit modèle, qui est considérablement plus efficace. Par conséquent, la technique de la classification des connaissances est particulièrement populaire pour exécuter l'apprentissage automatique dans des environnements limités en matériel, par exemple sur des appareils mobiles.

Remarque : il est utile de noter qu'un petit modèle pourrait simplement être entraîné (à partir de zéro) sur les mêmes données que celles utilisées pour entraîner le plus grand. Cependant, le petit modèle peut ne pas avoir la capacité d'apprendre des représentations de la même qualité que le grand. Le petit modèle apprend à partir des probabilités prédites du grand modèle, qui encodent généralement plus d'informations que le libellé de classe seul. Cela permet au petit modèle d'apprendre des représentations plus riches et, dans de nombreux scénarios, cela signifie que le petit modèle a une meilleure puissance prédictive que s'il était entraîné à partir de zéro.

Prenons un document x et un libellé de classe y, avec le libellé de classe appartenant à l'une des catégories C (c'est-à-dire y∈ {1,2,…,C}). Indiquez la probabilité avec laquelle un grand modèle f prédit que le document x a le libellé de classe y=c comme p(c;f(x)). Cette probabilité est généralement calculée à l'aide d'une fonction de la forme :



f(x) est la sortie d'un réseau neuronal (par exemple, un Transformer) qui prend x comme entrée. Le grand modèle est entraîné en utilisant l'objectif de vraisemblance maximale suivant :


où I(c;y)=1 si y=c sinon 0.

Le petit modèle g peut être entraîné pour reproduire les probabilités prédites par le grand modèle f à l'aide d'un objectif de la forme :


Voici quelques exemples de fonctions objectifs :

  • Un objectif de style de probabilité maximum :
    docs image
    • Cela équivaut à minimiser la divergence ML entre p(c;f) et p(c;g).
  • Erreur carrée moyenne négative (MSE) entre les journaux :
    docs image
Si des données labellisées spécifiques à une tâche sont disponibles lors de l'entraînement du petit modèle, l'objectif supervisé et l'objectif de classification sont combinés à l'aide d'une moyenne pondérée :


Extraction spécifique à la tâche​

Le modèle biLSTM-SOFT effectue une classification spécifique aux tâches en tentant de reproduire les prédictions d’un modèle BERT déjà affiné sur les tâches de classification. Pour le modèle d'apprentissage, il utilise un LSTM bidirectionnel à une seule couche. Bien qu'il s'agisse d'un modèle récurrent, car il ne comporte qu'une seule couche, il est toujours rapide à exécuter.

L'objectif de laminage est le MSE négatif entre les journaux de l'apprentissage et de l'apprentissage. Il est plus de 400 fois plus rapide à exécuter que le modèle BERT à partir duquel il est résumé, mais affiche une précision/F1 inférieure de 4 à 7 points (selon la tâche).

Disperser pendant le pré-entraînement​

Jusqu'à présent, ce post a présenté la classification des connaissances dans le contexte de l'apprentissage supervisé, car c'est le paramètre dans lequel il est le plus couramment utilisé. Cependant, DistilBERT effectue une classification des connaissances aux étapes de pré-entraînement et de peaufinage du modèle linguistique.

Comme expliqué dans la section Arrière -plan du message précédent, BERT est pré-entraîné à l'aide d'un modèle de langage masqué ; DistilBERT traite les mots manquants comme des libellés de classe et utilise la fonction d'objectif de classification de style de probabilité maximal. Il utilise les distributions de probabilités prédites par le BERT pour les mots manquants comme cibles approximatives pour l'objectif de rétention. Les auteurs ajoutent également un objectif d'intégration cosin, qui encourage le petit modèle à aligner les directions de ses intégrations sur celles produites par BERT.

DistilBERT adopte la même architecture de base que BERT, mais possède deux fois moins de couches et est environ 38 % plus rapide à exécuter. Lorsqu'il est résume lors du pré-entraînement uniquement, il conserve 97 % des performances du BERT. Les auteurs ont également constaté que l’exécution de la classification spécifique à la tâche lors du peaufinage (à l’aide d’un modèle BERT qui avait également été affiné dans la même tâche) donnait une amélioration supplémentaire aux performances.

Exploitation de l'architecture du Transformer​

MinyBERT est une approche similaire à DistilBERT dans la mesure où elle effectue une classification des connaissances aux étapes de pré-entraînement et de peaufinage du modèle linguistique. Cependant, MinyBERT prend directement connaissance des représentations intermédiaires de BERT (pas seulement les sorties finales) en exploitant spécifiquement les fonctionnalités de l' architecture du Transformer.

Comme avec DistilBERT, MinyBERT adopte la même architecture que BERT, mais avec moins de couches. Tout d'abord, un mappage est défini de chaque couche du modèle apprentissage vers une couche du modèle enseignant, c'est-à-dire que chaque couche hôte est associée à une couche enseigneur. Ensuite, selon la couche supérieure, elle utilise l'une des trois fonctions cibles de classification :

  • Couche d'intégration
    • Réduit le MSE entre les matrices d'intégration de l'abonné et de l'enseignant.
  • Couches d'attention
    • Réduit le MSE entre les matrices d'attention de l'employé et du maître (A dans Équation (4) dans le message précédent) ainsi que le MSE entre les sorties de l'employé et de l'enseignant des couches de flux qui suivent l'opération d'auto-attention.
  • Couche finale (prédiction)
    • Utilise l'objectif de rétention du style de vraisemblance maximale pour essayer de faire correspondre les probabilités prédites par l'élève et par l'enseignant. C'est le même que DistilBERT.

Par rapport au modèle BERT à partir duquel il est résumé, l'exécution de MinyBERT est 2 x à 9 fois plus rapide (selon le nombre de couches et les tailles d'états cachés). Il surpasse systématiquement DistilBERT dans une large gamme de tâches, indiquant que les objectifs de disistilisation au niveau de chaque couche sont utiles par rapport à la couche finale seule.

Réglage​

Comme indiqué dans la section Arrière -plan (Background) du message précédent, la dernière étape de l'entraînement de modèles de langage volumineux consiste généralement à les affiner sur la tâche qui vous intéresse. Bien que cette étape puisse être relativement rapide, elle implique généralement de mettre à jour tous les paramètres du modèle. Cela signifie que la configuration matérielle requise est la même que pour les étapes de pré-entraînement. Étant donné que l'étape de peaufinage est généralement exécutée séparément pour chaque tâche, il s'agit toujours d'une étape coûteuse du processus d'entraînement. Par conséquent, une autre ligne de recherche semble réduire le nombre de paramètres à mettre à jour lors du peaufinage.

Ajuster un sous-ensemble de pondérations​

Une façon d'éviter d'avoir à mettre à jour tous les paramètres du modèle est simplement de bloquer certaines des couches. Lee et autres. réaliser une étude factice de l’efficacité de cette approche. Ils constatent, avec un modèle BERT à 12 couches, que le gel des 9 premières couches et le peaufinage des 3 dernières touches atteint au moins 90 % des performances d'un réglage complet sur la plupart des tâches. Cependant, le gel de l'ensemble du modèle de langage et l'entraînement simple de la couche de prédiction finale produisent des résultats bien plus mauvais pour toutes les tâches.

Mise à jour uniquement des termes de biais​

La plupart des opérations effectuées dans la plupart des architectures de réseau neuronal impliquent de multiplier une entrée par une matrice, puis d'ajouter un terme de biais. La manière dont ces opérations sont composées est ce qui définit l'architecture.

Dans Transformateurs, les termes de biais (par exemple, les termes b dans les Équations (1)–(3) dans le message précédent) représentent moins de 0,1 % des paramètres totaux. Par conséquent , BietFit propose de ne les mettre à jour que lors du peaufinage et de bloquer le reste des paramètres. Avec un nombre limité de données d'entraînement labellisées, BinFit fonctionne de manière compétitive (et parfois supérieure) par rapport au peaufinage de l'ensemble du modèle. Avec les ensembles de données d'entraînement volumineux, ses performances ne sont que légèrement inférieures à celles d'un ajustement complet.

Insérer de petits réseaux entraînables dans le Transformer​

Un autre ensemble de méthodes d'ajustement plus efficaces sur les paramètres fige l'ensemble du modèle de langue pré-entraîné, mais introduit un petit ensemble de paramètres supplémentaires qui sont entraînés pour la tâche qui vous intéresse. Pour ce faire, les adaptateurs insèrent deux réseaux d'élément de flux à 2 couches dans chacune des couches du Transformer. Ils sont insérés directement avant et après le réseau de flux existant qui suit le mécanisme d'auto-attention. Les 2 couches effectuent les opérations suivantes :

  • La première couche projette l'état caché du transformation dans un vecteur à faible dimension et applique une non-linéarité.
  • La deuxième couche projette le vecteur à faible dimension à la taille de l'état caché du Transformer.

L'idée derrière cela est que l'insertion de paramètres apprentissages dans l'architecture Transformer (plutôt que la simple formation de la couche de prédiction finale) permet au modèle d'ajuster ses représentations internes de la même manière que le fait le peaufinage, mais de manière beaucoup plus efficace. Le réglage de l'adaptateur n'est que environ 0,4 % plus mauvais que le réglage fin complet, avec seulement 3,6 % plus de paramètres entraînés.

Recommandations​

Ces deux articles ont couverte plusieurs méthodes différentes de Transformer efficaces. Quand convient-il être approprié de les utiliser ?

  • Si vous travaillez avec des documents particulièrement longs, nous vous recommandons d'utiliser un mécanisme d'attention efficace, tel que ceux présentés dans le message précédent. Cela permettra de réduire les temps de pré-entraînement et d'inférence. Les performances peuvent même être meilleures que l'utilisation d'une attention à part entière.
  • Si votre goulot d'étranglement est la mémoire (c'est-à-dire que même un lot de documents courts provoque des erreurs de mémoire insuffisante), essayez d'utiliser un modèle résumé (par exemple MinyBERT). Avec moins de couches et des représentations de dimensions inférieures, cela réduira l'empreinte mémoire du modèle tout en étant plus rapide à entraîner.
    • Cependant, gardez à l'esprit que les modèles résumés nécessitent toujours un modèle taille réelle pré-entraîné à partir duquel apprendre, et qu'ils fonctionnent généralement mieux lorsqu'ils sont résumés à la fois pendant le pré-entraînement et le peaufinage.
  • Si vous avez un nombre limité de données labellisées au stade de l'affinement, grâce à une méthode d'affinement qui bloque la plupart ou la totalité des paramètres du modèle de langue (par ex. Les adaptateurs) atténue le risque de sur-ajustement et devrait généralement fonctionner mieux que le modèle complet.
  • Si vous avez beaucoup de tâches supervisées en aval, nous vous suggérons d'utiliser une méthode de peaufinage efficace. Cela permettra de réduire le nombre de paramètres qui doivent être entraînés et stockés pour chaque tâche.
    • Bien que les méthodes de réglage fin efficaces puissent être plus rapides à entraîner que le réglage complet, elles n'amélioreront généralement pas la vitesse d'inférence (c'est-à-dire l'obtention de prédictions à partir d'un modèle entraîné). En fait, certains d’entre eux peuvent être légèrement plus lents pour l’inférence, en raison de l’insertion de couches supplémentaires.

Résumé​

Cette série en deux parties examine comment rendre le traitement des langages naturels (NLP) de pointe largement accessible en explorant des alternatives efficaces aux techniques de modélisation des langages basées sur Transformer, populaires mais exigeantes en termes de calculs.

  • Explication des raisons pour lesquelles le mécanisme d'auto-attention du Transformer a une charge de travail informatique élevée.
  • Présentation de mécanismes d’attention alternatifs qui sont plus efficaces à fonctionner sans affecter considérablement les performances.

Ce message :

  • Discussions sur les techniques de classification des connaissances, qui entraînent des modèles petits et efficaces en les encourageant à reproduire les sorties de leurs homologues plus grands.
  • A exploré des méthodes efficaces pour affiner les modèles de langage en réduisant le nombre de paramètres mis à jour.
  • Fournit nos recommandations pour des scénarios dans lesquels utiliser les différentes approches efficaces de Transformer.

Si vous souhaitez essayer Communications Mining dans votre entreprise, inscrivez-vous pour un essai ou regardez une démo.

  • Extraction des connaissances
  • Réglage​
  • Recommandations​
  • Résumé​

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.