- Documents d’API
- CLI
- Guides d'intégration
- Intégration avec l'utilisateur du service Azure
- Intégration avec l'authentification d'application Azure
- Automatisation en temps réel
- Récupérer des données pour Tableau avec Python
- Intégration d'Elasticsearch
- Intégration EWS auto-hébergée
- Infrastructure d'automatisation UiPath
- Activités UiPath Marketplace
- Activités officielles UiPath
- Blog
- Comment les machines apprennent à comprendre les mots : guide d'intégration dans NLP
- Apprentissage basé sur des invites avec des Transformers
- Efficient Transformers II : Dilarisation des connaissances et affinement
- Transformateurs efficaces I : mécanismes d'attention
- Modélisation de l'intention hiérarchique profonde non supervisée : obtenir de la valeur sans données d'entraînement
- Correction du biais d'annotation avec Communications Mining
- Apprentissage actif : de meilleurs modèles d'ML en moins de temps
- Tout est dans les chiffres : évaluer les performances du modèle avec des métriques
- Pourquoi la validation du modèle est importante
- Comparaison de Communications Mining et de Google AutoML pour l'intelligence des données conversationnelles
Transformateurs efficaces I : mécanismes d'attention
L'entreprise s'exécute sur les communications. Les clients vous contactent lorsqu'ils ont besoin de quelque chose. Les collaborateurs se connectent pour travailler. Chez Communications Mining, notre mission est de changer fondamentalement l’économie du travail de service dans l’entreprise, de débloquer la valeur dans chaque interaction et de rendre le service efficace et évolutif. Pour ce faire, nous démocratisons l’accès à des NLP et NLU de pointe.
Plus précisément, les modèles de Communications Mining utilisent des architectures d'apprentissage profond appelées Transformers. Les transformations facilitent d’considérablement améliorations des performances NLU. Cependant, ils sont également très lourds en calculs, à la fois pour entraîner les modèles pour apprendre de nouveaux concepts et pour les utiliser pour faire des prédictions. Cette série en deux parties examinera plusieurs techniques pour augmenter la vitesse et réduire le coût de calcul lors de l'utilisation de ces grandes architectures de transformation.
Ce post permettra :
- Présentez un bref historique de l'intégration de modèles dans NLP.
- Expliquez pourquoi le mécanisme d'auto-attention du Transformer a une charge de travail informatique élevée.
- Examinez les modifications apportées à l'architecture de transformation traditionnelle qui sont plus efficaces en termes de calculs à entraîner et à exécuter sans compromettre considérablement les performances.
Le prochain article examinera des techniques de calcul et d’approximation supplémentaires permettant des gains d’efficacité supplémentaires. Le prochain message :
- Explorez les techniques de classification, où des modèles plus petits sont entraînés pour se rapprocher des performances de modèles plus volumineux.
- Expliquer les techniques de peaufinage efficaces, où les mises à jour des paramètres sont limitées.
- Fournissez nos recommandations sur l'utilisation de chacune de ces méthodes.
Au cours de la dernière année, les méthodes NLP sont devenues considérablement plus efficaces lorsqu'il s'agit d'effectuer une grande variété de tâches. Cela peut être en grande partie attribué à l'abandon des approches guidées à la main et basées sur l'ingénierie des fonctionnalités, vers des méthodes basées sur l'apprentissage automatique. Les plus grandes améliorations des performances sont dues aux progrès de l'apprentissage de la représentation sémantique pré-entraînée non supervisée. Cela implique l'entraînement d'un modèle qui mappe les séquences de langage naturel (par ex. mots, phrases) aux vecteurs (séquences de nombres) qui représentent leur sens sémantique. Ces vecteurs peuvent ensuite être utilisés pour effectuer la tâche qui vous intéresse, par exemple reconnaissance d'intention, classification de sentiment, reconnaissance de champ nommé, etc.
Incorporations des mots
Le changement de paradigme a commencé dans les années 2010 avec des méthodes d'intégration de mots telles que word2vec et GoVe. Ces techniques utilisent de grands ensembles de données de langage naturel pour apprendre les intégrations (un autre mot pour les vecteurs) de mots d'une manière non supervisée. Les intégrations codent les informations sémantiques en fonction des contextes dans lesquels les mots apparaissent fréquemment. Par exemple, le mot « ordinateur » apparaît souvent à côté de mots tels que « clavier », « logiciel » et « internet »; ces mots avoisinants communs représentent les informations que l'intégration de « ordinateur » doit coder.
Les intégrations de mots classiques ont une grande vulnérabilité : elles sont statiques, c'est-à-dire que l'intégration d'un mot donné est toujours la même. Par exemple, prenez le mot « banque » - cela peut faire référence au bord d'une cours d'eau ou à une institution financière ; son intégration devrait encoder les deux significations.
Intégrations contextuelles
Pour résoudre ce problème, des méthodes d'intégration contextuelles ont été développées. Ceux-ci ont une intégration différente pour chaque mot selon la séquence (par ex. phrase, document) dans lequel elle apparaît. Cette ligne de travail a changé la donne ; Il est maintenant extrêmement rare de trouver des méthodes de pointe qui ne reposent pas sur des intégrations contextuelles.
L'une des premières techniques d'intégration contextuelle populaires a été DELMo, qui consiste à pré-entraîner un modèle de réseau neuronal récurrent (RNN) sur un grand corpus de langage naturel en utilisant un objectif de prédiction du mot suivant. Les représentations internes de ce modèle sont ensuite utilisées comme entrées dans des modèles (généralement petits) pour l'exécution de tâches supervisées. À l’époque, cette approche a considérablement amélioré l’état de technique précédent dans plusieurs tâches.
Les RNN traitent chaque mot dans une séquence l'un après l'autre, ils peuvent donc être lents s'il s'agit de documents longs. En conséquence, des modèles comme BERT et RoBERTa, qui remplacent le composant récurrent d'ElMo par le Transformer plus convivial pour les calculs parallèles, sont devenus les approches passe-partout. Ces modèles sont généralement pré-entraînés avec un objectif de modélisation de langue masquée : un sous-ensemble de mots d'une séquence sont supprimés et le modèle est chargé de prédire quels sont les mots manquants.
Cependant, les modèles de langage modernes basés sur Transformer sont généralement très volumineux - ils peuvent contenir des millions de paramètres et sont très exigeants en termes de calculs. Le workflow standard est :
- Pré-entraîner le modèle de langue sur un ensemble de données générique non annoté.
- Pré-entraîner davantage le modèle de langue sur un ensemble de données non annoté spécifique au domaine.
- Ajustez le modèle de langue à l'aide de données annotées pour effectuer la tâche supervisée qui vous intéresse.
Bien que la première de ces étapes soit généralement un coût unique, les deux dernières ne le sont pas. Et tandis que la puissance de calcul devient moins chère, les architectures des transformations deviennent plus grandes. Cela signifie que le coût des performances de pointe ne diminue pas nécessairement.
Par conséquent, ce post présentera une gamme de techniques qui réduisent la charge de travail de calcul tout en minimisant l'impact sur les performances.
L'architecture du Transformer commence par une couche d'intégration apprenable. Chaque couche suivante crée ses représentations internes à l'aide d'un mécanisme d'« auto-attention », c'est-à-dire que la représentation de chaque mot regarde tous les autres mots de la séquence (voir la figure 1 pour un exemple). Chaque couche d'auto-attention comprend plusieurs « têtes » (chaque tête fait sa propre auto-attention).
Ceux-ci sont concaténés dans les matrices NpxD Q, K et V respectivement. La matrice d'attention est calculée comme suit :
La sortie de la couche d'auto-attention est alors calculée comme suit :
La sortie finale de chaque couche est calculée en concaténant les sorties d'auto-attention pour chaque en-tête, et en les fluxant via un petit réseau de flux.
Bien que (contrairement aux RNN) le calcul puisse être effectué en parallèle, la figure 1 montre qu'il y aura N2 opérations d'auto-attention à effectuer pour une séquence de N mots. C'est-à-dire que la complexité de calcul est quadratique selon la longueur de la phrase. Lorsque l'on tient compte du fait que les transformations modernes utilisent des dizaines de couches, chacune avec des dizaines de têtes composées de milliers de dimensions, il y a beaucoup d'opérations à effectuer même pour une seule séquence.
Normalement, une ligne de recherche vise à réduire cette complexité N2 avec des mécanismes d'auto-attention plus simples ; il s'agit du plus grand domaine de recherche sur les architectures de transformations efficaces. Certaines approches populaires sont passées en revue ci-dessous ; consultez ce document d’enquête pour une couverture plus complète.
Attention bloc par bloc
Une façon de réduire le nombre d'opérations consiste à restreindre le nombre de mots dans la séquence examinés par le mécanisme d'auto-attention. BlockBERT le fait en segmentant la séquence en segments. Dans une plage d'attention donnée, le mécanisme d'attention dans un segment ne regarde que les mots dans l'un des segments (voir la figure 2 pour un exemple). Chaque tête d'attention à chaque couche permute les segments que le mécanisme d'attention examine. Cela signifie qu'après des dizaines de couches, l'intégration de chaque mot a probablement réparti la séquence entière. Selon la taille du modèle, par rapport à RoBERTa, BlockBERT est de 12 à 25 % plus rapide à entraîner, nécessite 19 à 36 % moins de mémoire, et fonctionne presque aussi bien dans les tâches de question-réponse (les scores F1 sont inférieurs de environ 0,8 point sur SQuAD 2.0 ).
Combinaison de plusieurs modèles d'attention
Dans le même ordre d'idées, le Longformer limite également le nombre de mots examinés par le mécanisme d'auto-attention. Pour ce faire, il combine plusieurs modèles d'attention simples (voir la figure 3 pour un exemple).
- Fenêtre glissante
- Faites attention uniquement aux k mots adjacents.
- Fenêtre glissante simplifiée
- Faites attention à chaque lième mot, jusqu’à une limite prédéfinie.
- Attention globale
- À quelques positions présélectionnées, faites attention à l’ensemble de la séquence.
- À chaque position, faites attention aux positions présélectionnées.
Avec cette combinaison de modèles d'attention, après plusieurs couches, l'intégration de chaque mot a probablement assisté à la séquence entière. Particulièrement dans les séquences longues, le Longformer est beaucoup plus rapide et utilise moins de mémoire que RoBERTa. De manière inattendue, le Longformer surpasse en fait RoBERTa dans diverses tâches : réponse aux questions, résolution de la base de données et classification des sentiments.
BigBIrd est une autre approche populaire et est très similaire au Longformer, sauf qu'au lieu de la fenêtre glissée agrandie, il utilise un modèle d'attention aléatoire (c'est-à-dire que chaque représentation assistée à un nombre fixe de mots aléatoires dans la séquence).
Utilisation d'une approximation de bas niveau
Un type d'approche différent de celles présentées jusqu'à présent est le Linformation, qui est basée sur le résultat theorique selon lequel l'opération d'auto-attention est de niveau inférieur. L'information projette linéairement les matrices clé et valeur (K et V) vers le bas, le long de la dimension de la longueur, dans une séquence plus courte (longueur fixe) à laquelle une attention particulière peut être appliquée (voir un exemple de la figure 4). Par rapport à l'auto-attention standard, pour les séquences courtes, le Linformer est 1,3 à 3 fois plus rapide et pour les séquences longues, son exécution est 3 à 20 fois plus rapide. Sur une variété de tâches de classification de texte, il fonctionne de manière comparable à (et sur certaines tâches, légèrement supérieure à) RoBERTa.
Cette série en deux parties examine comment rendre la 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. Ce message :
- Présentation d’un bref historique de l’apprentissage de la représentation sémantique dans le NLP, y compris les intégrations de mots traditionnel et les modèles d’intégration contextuelle.
- Explication du mécanisme d'auto-attention qui se trouve au cœur de l'architecture de Transformer, et pourquoi son exécution est coûteuse en calculs.
- Nous avons exploré des mécanismes d’attention alternatifs qui sont plus efficaces en termes de calculs, sans satruiser les performances.
Le prochain article couvrira :
- Un aperçu des méthodes qui entraînent de petits modèles pour reproduire les sorties de grands modèles.
- Comment affiner les modèles de langage de manière efficaces sur les paramètres.
- Nos recommandations de 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.