Attention est tout ce dont vous avez besoin Ashish Vaswani* Google Brain avaswani@google.com Noam Shazeer* Google Brain noam@google.com Niki Parmar* Google Research nikip@google.com Jakob Uszkoreit* Google Research usz@google.com Llion Jones* Google Research llion@google.com Aidan N. Gomez* † University of Toronto aidan@cs.toronto.edu Łukasz Kaiser* Google Brain lukaszkaiser@google.com Illia Polosukhin* ↓ illia.polosukhin@gmail.com Résumé Les modèles de transduction de séquences dominants sont basés sur des réseaux neuronaux complexes récurrents ou convolutionnels qui comprennent un encodeur et un décodeur. Les modèles les plus performants relient également l'encodeur et le décodeur à travers un mécanisme d'attention. Nous proposons une nouvelle architecture de réseau simple, le Transformateur, basée uniquement sur les mécanismes d'attention, dispensant avec récurrence et convolutions entièrement. Des expériences sur deux tâches de traduction automatique montrent que ces modèles sont de qualité supérieure tout en étant plus parallélisants et nécessitant beaucoup moins de temps pour s'entraîner. Notre modèle atteint 28.4 BLEU sur la tâche de traduction de l'anglais à l'allemand WMT 2014, en améliorant par rapport aux meilleurs résultats existants, y compris les ensembles, par plus de 2 BLEU. Sur la tâche de traduction de l'anglais au français de la WMT 2014, notre modèle établit un nouveau score BLEU à la fine pointe de la technologie de 41.8 après une formation de 3,5 jours sur huit GPU, une petite fraction des coûts de formation des meilleurs modèles de la littérature. Nous montrons que le Transformateur généralise bien à d'autres tâches en l'appliquant avec succès à la circonscription anglaise en analysant à la fois avec des données de formation importantes et limitées. 1 Introduction Les réseaux neuraux récurrents, la longue mémoire à court terme [13] et les réseaux neuraux sécurisés [7] en particulier, ont été solidement établis à mesure que l'état de l'art s'approche dans la modélisation des séquences et la contribution ∗Equal. L'ordre d'inscription est aléatoire. Jakob a proposé de remplacer les RNN par l'auto-attention et a commencé l'effort pour évaluer cette idée. Ashish, avec Illia, a conçu et mis en œuvre les premiers modèles Transformer et a été extrêmement impliqué dans tous les aspects de ce travail. Noam a proposé l'attention à l'échelle du produit des points, l'attention multi-tête et la représentation de la position sans paramètre et est devenu l'autre personne impliquée dans presque tous les détails. Niki a conçu, implémenté, ajusté et évalué d'innombrables variantes de modèles dans notre base de code originale et tensor2tensor. Llion a également expérimenté de nouvelles variantes de modèles, a été responsable de notre base de code initiale, ainsi que des inférences et visualisations efficaces. Lukasz et Aidan ont passé d'innombrables longues journées à concevoir diverses parties de tensor2tensor et à les mettre en œuvre, en remplaçant notre base de codes antérieure, en améliorant considérablement les résultats et en accélérant massivement nos recherches. †Travail exécuté pendant que chez Google Brain. ↓Travail exécuté pendant que chez Google Research. 31e Conférence sur les systèmes de traitement de l'information neuronale (NIPS 2017), Long Beach, CA, États-Unis. arXiv:1706.03762v5 [cs.CL] 6 Déc 2017 problèmes de transduction tels que la modélisation linguistique et la traduction automatique [35, 2, 5]. Depuis, de nombreux efforts ont continué à repousser les limites des modèles de langage récurrents et des architectures de décodeur-encodeur [38, 24, 15]. Les modèles récurrents calculent généralement les facteurs le long des positions symboliques des séquences d'entrée et de sortie. En alignant les positions sur les étapes du temps de calcul, elles génèrent une séquence d'états cachés ht, en fonction de l'état caché précédent ht−1 et de l'entrée pour la position t. Cette nature séquentielle intrinsèque empêche la parallélisation dans les exemples d'entraînement, qui devient critique à des longueurs de séquence plus longues, car les contraintes de mémoire limitent le batch entre les exemples. Des travaux récents ont permis d'améliorer considérablement l'efficacité du calcul grâce à des astuces de factorisation [21] et au calcul conditionnel [32], tout en améliorant la performance du modèle dans le cas de ce dernier. Toutefois, la contrainte fondamentale du calcul séquentiel demeure. Les mécanismes d'attention sont devenus une partie intégrante des modèles de modélisation et de transduction des séquences dans diverses tâches, permettant la modélisation des dépendances sans tenir compte de leur distance dans les séquences d'entrée ou de sortie [2, 19]. Toutefois, dans tous les cas sauf dans quelques cas [27], de tels mécanismes d'attention sont utilisés conjointement avec un réseau récurrent. Dans ce travail, nous proposons le Transformer, une architecture modèle qui évite la récurrence et s'appuie plutôt entièrement sur un mécanisme d'attention pour attirer les dépendances globales entre l'entrée et la sortie. Le Transformateur permet une parallélisation significativement plus et peut atteindre un nouvel état de l'art dans la qualité de la traduction après avoir été formé pour aussi peu que douze heures sur huit P100 GPU. 2 Contexte L'objectif de réduire le calcul séquentiel constitue également le fondement du GPU neuronal étendu [16], ByteNet [18] et ConvS2S [9], qui utilisent tous les réseaux neuronaux convolutionnels comme bloc de construction de base, calculant des représentations cachées en parallèle pour toutes les positions d'entrée et de sortie. Dans ces modèles, le nombre d'opérations nécessaires pour relier les signaux de deux positions d'entrée ou de sortie arbitraires augmente dans la distance entre les positions, linéairement pour ConvS2S et logarithmiquement pour ByteNet. Cela rend plus difficile l'apprentissage des dépendances entre des positions éloignées [12]. Dans le transformateur, cela est réduit à un nombre constant d'opérations, bien qu'au coût d'une résolution efficace réduite en raison de la moyenne des positions pondérées par l'attention, un effet que nous contredisons avec l'attention multi-tête comme décrit à la section 3.2. L'auto-attention, parfois appelée intra-attention, est un mécanisme d'attention reliant différentes positions d'une seule séquence afin de calculer une représentation de la séquence. L'auto-attention a été utilisée avec succès dans une variété de tâches, y compris la compréhension de la lecture, la synthèse abstraite, l'implication textuelle et l'apprentissage des représentations des phrases indépendantes des tâches [4, 27, 28, 22]. Les réseaux de mémoire de bout en bout sont basés sur un mécanisme d'attention récurrent au lieu d'une récurrence alignée sur les séquences et ont été montrés pour bien fonctionner sur des questions en langage simple et des tâches de modélisation du langage [34]. À notre connaissance, cependant, le Transformer est le premier modèle de transduction qui repose entièrement sur l'auto-attention pour calculer les représentations de ses entrées et sorties sans utiliser des RNN ou convolution alignées sur les séquences. Dans les sections suivantes, nous décrirons le Transformateur, nous motiverons l'auto-attention et discuterons de ses avantages par rapport à des modèles tels que [17, 18] et [9]. 3 Architecture des modèles La plupart des modèles concurrentiels de transduction des séquences neurales ont une structure encodeur-décodeur [5, 2, 35]. Ici, l'encodeur cartographie une séquence d'entrée de représentations de symboles (x1,..., xn) à une séquence de représentations continues z = (z1,..., zn). Compte tenu de z, le décodeur génère alors une séquence de sortie (y1,..., ym) de symboles un élément à la fois. À chaque étape, le modèle est auto-régressif [10], en consommant les symboles précédemment générés comme entrée supplémentaire lors de la génération suivante. Le Transformateur suit cette architecture globale à l'aide de couches empilées d'auto-attention et de couches pointues, entièrement connectées pour l'encodeur et le décodeur, montrées respectivement dans les moitiés gauche et droite de la figure 1. 2 Figure 1: Le transformateur - architecture du modèle. 3.1 Encodeur et pioches de décoder Encodeur: L'encodeur est composé d'une pile de N = 6 couches identiques. Chaque couche a deux sous-couches. La première est un mécanisme d'auto-attention multi-têtes, et la seconde est un simple, position- sage entièrement connecté réseau d'alimentation-avant. Nous employons une connexion résiduelle [11] autour de chacune des deux sous-couches, suivie d'une normalisation des couches [1]. C'est-à-dire que la sortie de chaque sous-couche est LayerNorm(x + Sublayer(x)), où Sublayer(x) est la fonction implémentée par la sous-couche elle-même. Pour faciliter ces connexions résiduelles, toutes les sous-couches du modèle, ainsi que les couches d'intégration, produisent des sorties de dimension dmodel = 512. Décoder : Le décodeur est également composé d'une pile de N = 6 couches identiques. En plus des deux sous-couches de chaque couche d'encodeur, le décodeur insère une troisième sous-couche, qui effectue une attention multi-tête sur la sortie de la pile d'encodeur. Comme pour l'encodeur, nous utilisons des connexions résiduelles autour de chacune des sous-couches, suivies d'une normalisation des couches. Nous modifions également la sous-couche d'auto-attention dans la pile de décodeurs afin d'empêcher les positions d'occuper des positions subséquentes. Ce masquage, combiné au fait que l'intégration des sorties est compensée par une position, garantit que les prédictions pour la position i ne peuvent dépendre que des sorties connues à des positions inférieures à i. 3.2 Attention Une fonction d'attention peut être décrite comme un mappage d'une requête et d'un ensemble de paires de valeurs clés à une sortie, où la requête, les clés, les valeurs et la sortie sont tous des vecteurs. La sortie est calculée comme une somme pondérée des valeurs, où le poids attribué à chaque valeur est calculé par une fonction de compatibilité de la requête avec la clé correspondante. 3 Attention multi-têtes Scaled Dot-Product Figure 2: (gauche) Attention multi-têtes Scaled Dot-Product. (droite) L'attention multi-têtes se compose de plusieurs couches d'attention fonctionnant en parallèle. 3.2.1 Attention à l'échelle des points d'entrée Nous attirons notre attention particulière sur « l'attention à l'échelle des points d'entrée » (figure 2). L'entrée se compose de requêtes et de clés de dimension dk, et de valeurs de dimension dv. Nous calculons les produits point de la requête avec toutes les clés, divisons chacune par √dk, et appliquons une fonction softmax pour obtenir les poids sur les valeurs. Dans la pratique, nous calculons la fonction d'attention sur un ensemble de requêtes simultanément, regroupées dans une matrice Q. Les clés et les valeurs sont également emballées ensemble dans les matrices K et V. Nous calculons la matrice des résultats comme suit : Attention(Q, K, V ) = softmax(QKT √dk )V (1) Les deux fonctions d'attention les plus couramment utilisées sont l'attention additive [2], et l'attention de produit de point (multiplicatif). L'attention du produit Dot est identique à notre algorithme, à l'exception du facteur d'échelle de 1 √dk. L'attention additive calcule la fonction de compatibilité à l'aide d'un réseau feed-forward avec une seule couche cachée. Alors que les deux sont similaires dans la complexité théorique, l'attention dot-product est beaucoup plus rapide et plus espace-efficace dans la pratique, car il peut être mis en œuvre à l'aide de code de multiplication de matrice hautement optimisé. Alors que pour les petites valeurs de dk, les deux mécanismes fonctionnent de la même manière, l'attention additive surpasse l'attention du produit sans mise à l'échelle pour des valeurs plus grandes de dk [3]. Nous soupçonnons que, pour de grandes valeurs de dk, les produits à points grandissent, poussant la fonction softmax dans des régions où il y a des gradients extrêmement petits 4. Pour contrer cet effet, nous étalons les produits point par 1 √dk. 3.2.2 Attention multi-tête Au lieu d'effectuer une seule fonction d'attention avec des clés, des valeurs et des requêtes dmodel-dimensionnelles, nous avons trouvé utile de projeter linéairement les requêtes, les clés et les valeurs h fois avec des projections linéaires différentes, apprises aux dimensions dk, dk et dv, respectivement. Sur chacune de ces versions projetées de requêtes, clés et valeurs, nous effectuons ensuite la fonction attention en parallèle, donnant des valeurs de sortie dv-dimensionnelle. Ces valeurs sont concaténées et une fois de plus projetées, ce qui donne les valeurs finales, comme le montre la figure 2. 4Pour illustrer pourquoi les produits dot deviennent grands, supposons que les composants de q et k sont des variables aléatoires indépendantes avec la moyenne 0 et la variance 1. Puis leur produit point, q · k = dk i=1 qiki, a la moyenne 0 et la variance dk. 4 L'attention multi-têtes permet au modèle de s'occuper conjointement de l'information provenant de différents sous-espaces de représentation à différentes positions. Avec une seule tête d'attention, la moyenne inhibe cela. MultiHead(Q, K, V ) = Concat(head1,..., headh)W O où headi = Attention(QW Q i, KW K i, V W V i ) Où les projections sont des matrices de paramètres W Q i --Rdmodel×dk, W K i --Rdmodel×dk, W V i --Rdmodel×dv et W O --Rhdv×dmodel. Dans ce travail, nous employons h = 8 couches d'attention parallèles, ou têtes. Pour chacune de ces couches, nous utilisons dk = dv = dmodel/h = 64. En raison de la dimension réduite de chaque tête, le coût total de calcul est similaire à celui de l'attention à tête unique avec pleine dimensionnalité. 3.2.3 Applications de l'attention dans notre modèle Le transformateur utilise l'attention multi-têtes de trois façons différentes : • Dans les couches "attention encoder-décoder", les requêtes proviennent de la couche de décodeur précédente, et les clés et valeurs de mémoire proviennent de la sortie de l'encodeur. Cela permet à chaque position du décodeur d'assister à toutes les positions de la séquence d'entrée. Ceci imite les mécanismes d'attention typiques de l'encodeur-décodeur dans les modèles séquence à séquence tels que [38, 2, 9]. • L'encodeur contient des couches d'auto-attention. Dans une couche auto-attention toutes les clés, valeurs et requêtes viennent du même endroit, dans ce cas, la sortie de la couche précédente dans l'encodeur. Chaque position de l'encodeur peut s'occuper de toutes les positions de la couche précédente de l'encodeur. • De même, les couches d'auto-attention dans le décodeur permettent à chaque position du décodeur de s'occuper de toutes les positions du décodeur jusqu'à cette position et y compris. Nous devons empêcher le flux d'informations vers la gauche dans le décodeur pour préserver la propriété auto-régressive. Nous implémentons ceci à l'intérieur de l'attention à l'échelle de point produit en masquant toutes les valeurs dans l'entrée du softmax qui correspondent à des connexions illégales. Voir Figure 2. 3.3 Réseaux d'alimentation vers l'avant en fonction de la position En plus des sous-couches d'attention, chacune des couches de notre encodeur et de notre décodeur contient un réseau d'alimentation vers l'avant entièrement connecté, qui est appliqué à chaque position séparément et de façon identique. Il s'agit de deux transformations linéaires avec une activation ReLU entre les deux. FFN(x) = max(0, xW1 + b1)W2 + b2 (2) Bien que les transformations linéaires soient les mêmes dans différentes positions, elles utilisent différents paramètres d'une couche à l'autre. Une autre façon de décrire cela est comme deux convolutions avec la taille du noyau 1. La dimensionnalité de l'entrée et de la sortie est dmodel = 512 et la couche interne a la dimensionnalité dff = 2048. 3.4 Embeddings et Softmax De même que d'autres modèles de transduction de séquence, nous utilisons des embeddings appris pour convertir les jetons d'entrée et les jetons de sortie en vecteurs de dimension dmodel. Nous utilisons également la fonction habituelle de transfor- mation linéaire apprise et de softmax pour convertir la sortie du décodeur en probabilités prédites à la suite. Dans notre modèle, nous partageons la même matrice de poids entre les deux couches d'intégration et la transformation linéaire pré-softmax, semblable à [30]. Dans les couches d'intégration, nous multiplions ces poids par √dmodel. 3.5 Encodage positionnel Puisque notre modèle ne contient aucune récurrence et aucune convolution, pour que le modèle puisse utiliser l'ordre de la séquence, nous devons injecter quelques informations sur la position relative ou absolue du 5 Tableau 1 : Longueurs maximales du chemin, complexité par couche et nombre minimal d'opérations séquentielles pour différents types de couches. n est la longueur de la séquence, d est la dimension de représentation, k est la taille du noyau des convolutions et r la taille du voisinage dans l'auto-attention restreinte. Type de couche Complexité par couche Séquentiel Longueur maximale du sentier Opérations Auto-Attention O(n2 · d) O(1) O(1) Récurrent O(n · d2) O(n) O(n) Convolutional O(k · n · d2) O(1) O(logk(n)) Auto-Attention (restricted) O(r · n · d) O(1) O(n/r) jetons dans la séquence. À cette fin, nous ajoutons des "encodages positionnels" aux encodages d'entrée au bas des piles d'encodeur et de décodeur. Les encodages positionnels ont la même dimension dmodel que les encodages, de sorte que les deux peuvent être additionnés. Il existe de nombreux choix d'encodages positionnels, appris et corrigé [9]. Dans ce travail, nous utilisons des fonctions sinus et cosinus de fréquences différentes: PE(pos,2i) = sin(pos/100002i/dmodel) PE(pos,2i+1) = cos(pos/100002i/dmodel) où pos est la position et i est la dimension. Autrement dit, chaque dimension de l'encodage positionnel correspond à un sinusoïde. Les longueurs d'onde forment une progression géométrique de 2π à 10000 · 2π. Nous avons choisi cette fonction parce que nous avons émis l'hypothèse qu'elle permettrait au modèle d'apprendre facilement à assister par des positions relatives, puisque pour tout décalage fixe k, PEpos+k peut être représenté comme une fonction linéaire de PEpos. Nous avons également expérimenté l'utilisation d'intégrations positionnelles apprises [9] à la place, et nous avons constaté que les deux versions produisaient des résultats presque identiques (voir tableau 3 ligne (E)). Nous avons choisi la version sinusoïdale car elle peut permettre au modèle d'extrapoler à des longueurs de séquence plus longues que celles rencontrées pendant l'entraînement. 4 Pourquoi l'auto-attention Dans cette section, nous comparons divers aspects des couches d'auto-attention aux couches récurrentes et convolu-nationales couramment utilisées pour la cartographie d'une séquence de représentations de symboles de longueur variable (x1,..., xn) à une autre séquence de longueur égale (z1,..., zn), avec xi, zi --Rd, telle qu'une couche cachée dans un encodeur ou un décodeur de séquence typique. Motivant notre utilisation de l'auto-attention, nous considérons trois desiderata. L'un est la complexité totale du calcul par couche. Un autre est la quantité de calcul qui peut être parallélisée, mesurée par le nombre minimum d'opérations séquentielles requises. La troisième est la longueur du chemin entre les dépendances à long terme dans le réseau. L'apprentissage des dépendances à long terme est un défi clé dans de nombreuses tâches de transduction de séquence. L'un des principaux facteurs qui influent sur la capacité d'apprendre de telles dépendances est la longueur des voies vers l'avant et vers l'arrière que les signaux doivent traverser dans le réseau. Plus ces chemins sont courts entre n'importe quelle combinaison de positions dans les séquences d'entrée et de sortie, plus il est facile d'apprendre les dépendances à longue distance [12]. Par conséquent, nous comparons également la longueur maximale du chemin entre deux positions d'entrée et de sortie dans des réseaux composés des différents types de couches. Comme indiqué au tableau 1, une couche d'auto-attention relie toutes les positions à un nombre constant d'opérations exécutées séquentiellement, alors qu'une couche récurrente nécessite des opérations séquentielles O(n). En termes de complexité computationnelle, les couches d'auto-attention sont plus rapides que les couches récurrentes lorsque la longueur de la séquence n est plus petite que la dimensionnalité de la représentation d, ce qui est le plus souvent le cas pour les représentations de phrases utilisées par les modèles de pointe dans les traductions de machines, comme les représentations de mots [38] et d'octets [31]. Pour améliorer les performances de calcul pour les tâches impliquant des séquences très longues, l'auto-attention pourrait être limitée à considérer seulement un voisinage de taille r dans 6 la séquence d'entrée centrée autour de la position de sortie respective. Cela augmenterait la longueur maximale du chemin à O(n/r). Nous prévoyons étudier cette approche plus en profondeur dans les travaux futurs. Une seule couche convolutionnelle avec largeur du noyau k < n ne relie pas toutes les paires de positions d'entrée et de sortie. Cela nécessite une pile de couches convolutionnelles O(n/k) dans le cas de noyaux contigus, ou O(logk(n)) dans le cas de convolutions dilatées [18], augmentant la longueur des chemins les plus longs entre deux positions du réseau. Les couches convolutionnelles sont généralement plus coûteuses que les couches récurrentes, par un facteur de k. Les convolutions séparables [6], cependant, diminuent considérablement la complexité, à O(k · n · d + n · d2). Même avec k = n, cependant, la complexité d'une convolution séparable est égale à la combinaison d'une couche d'auto-attention et d'une couche d'alimentation ponctuelle, l'approche que nous adoptons dans notre modèle. Nous inspectons les distributions d'attention de nos modèles et présentons et discutons des exemples dans l'annexe. Non seulement les têtes d'attention individuelles apprennent clairement à accomplir différentes tâches, beaucoup semblent montrer un comportement lié à la structure syntaxique et sémantique des phrases. 5 Formation Cette section décrit le régime de formation de nos modèles. 5.1 Training Data and Battching Nous nous sommes entraînés sur l'ensemble de données standard WMT 2014 anglais-allemand composé d'environ 4,5 millions de paires de phrases. Les phrases ont été encodées à l'aide de l'encodage byte-pair [3], qui a un vocabulaire source- cible partagé d'environ 37000 jetons. Pour le français-anglais, nous avons utilisé l'ensemble de données français-anglais WMT 2014 considérablement plus grand, composé de phrases 36M et de jetons divisés en un vocabulaire en 32000 mots [38]. Chaque lot d'entraînement contenait un ensemble de paires de phrases contenant environ 25000 jetons sources et 25000 jetons cibles. 5.2 Matériel et horaires Nous avons formé nos modèles sur une seule machine avec 8 processeurs NVIDIA P100. Pour nos modèles de base utilisant les hyperparamètres décrits dans l'article, chaque étape d'entraînement a pris environ 0,4 seconde. Nous avons formé les modèles de base pour un total de 100 000 étapes ou 12 heures. Pour nos grands modèles, (décrit sur la ligne de fond du tableau 3), le temps d'étape était de 1,0 seconde. 5.3 Optimisateur Nous avons utilisé l'optimiseur Adam [20] avec β1 = 0,9, β2 = 0,98 et ε = 10−9. Nous avons varié le taux d'apprentissage au cours de la formation, selon la formule : lrate = d−0.5 modèle · min(step_num−0.5, step_num · warmup_steps−1.5) (3) Cela correspond à augmenter le taux d'apprentissage linéairement pour les premières étapes d'entraînement d'échauffement, puis à le diminuer proportionnellement à la racine carrée inverse du nombre d'étapes. Nous avons utilisé echauffement_steps = 4000. 5.4 Régularisation Nous employons trois types de régularisation pendant la formation : L'abandon résiduel Nous appliquons l'abandon [33] à la sortie de chaque sous-couche, avant qu'elle ne soit ajoutée à l'entrée de la sous-couche et normalisée. En outre, nous appliquons l'abandon aux sommes des encodages et des encodages positionnels dans les piles d'encodeur et de décodeur. Pour le modèle de base, nous utilisons un taux de Pdrop = 0,1. 7 Tableau 2: Le transformateur obtient de meilleurs scores BLEU que les précédents modèles de pointe sur les tests de nouvelles de l'anglais vers l'allemand et de l'anglais vers le français2014 à une fraction du coût de la formation. Modèle BLEU Training Cost (FLOPs) EN-DE EN-FR EN-DE EN-FR ByteNet [18] 23.75 Deep-Att + PosUnk [39] 39.2 1.0 · 1020 GNMT + RL [38] 24,6 39.92 2.3 · 1019 1.4 · 1020 ConvS2S [9] 25.16 40.46 9,6 · 1018 1.5 · 1020 MoE [32] 26.03 40.56 2.0 · 1019 1.2 · 1020 Deep-Att + PosUnk Ensemble [39] 40,4 8,0 · 1020 GNMT + RL Ensemble [38] 26.30 41.16 1.8 · 1020 1.1 · 1021 ConvS2S Ensemble [9] 26.36 41.29 7.7 · 1019 1.2 · 1021 Transformateur (modèle de base) 27.3 38.1 3.3 · 1018 Transformateur (big) 28.4 41.8 2.3 · 1019 Lissage de l'étiquette Au cours de la formation, nous avons employé le lissage de l'étiquette de valeur εls = 0,1 [36]. Cela fait mal à la perplexité, car le modèle apprend à être plus incertain, mais améliore la précision et le score BLEU. 6 Résultats 6.1 Traduction automatique Sur la tâche de traduction de l'anglais à l'allemand WMT 2014, le grand modèle de transformateur (transformateur (grand) dans le tableau 2) surpasse les meilleurs modèles déjà signalés (y compris les ensembles) de plus de 2,0 BLEU, établissant un nouveau score BLEU à la fine pointe de la technologie de 28.4. La configuration de ce modèle est répertoriée dans la ligne de fond du tableau 3. La formation a duré 3,5 jours sur 8 P100 GPU. Même notre modèle de base surpasse tous les modèles et ensembles publiés précédemment, à une fraction du coût de la formation de n'importe lequel des modèles concurrentiels. Sur la tâche de traduction de l'anglais au français de la WMT 2014, notre grand modèle obtient un score BLEU de 41,0, surpassant tous les modèles uniques publiés précédemment, à moins de 1/4 du coût de la formation du modèle précédent. Le modèle Transformer (big) formé pour l'anglais au français a utilisé le taux d'abandon Pdrop = 0,1, au lieu de 0,3. Pour les modèles de base, nous avons utilisé un modèle unique obtenu en calculant la moyenne des 5 derniers points de contrôle, qui ont été écrits à intervalles de 10 minutes. Pour les grands modèles, nous avons effectué une moyenne des 20 derniers points de contrôle. Nous avons utilisé la recherche de faisceau avec une taille de faisceau de 4 et la pénalité de longueur α = 0,6 [38]. Ces hyperparamètres ont été choisis après expérimentation sur l'ensemble de développement. Nous fixons la longueur de sortie maximale pendant l'inférence à la longueur d'entrée + 50, mais nous terminons tôt si possible [38]. Le tableau 2 résume nos résultats et compare nos coûts de traduction et de formation à d'autres architectures modèles de la littérature. Nous estimons le nombre d'opérations ponctuelles flottantes utilisées pour former un modèle en multipliant le temps d'entraînement, le nombre de GPU utilisés et une estimation de la capacité continue de point flottant d'une seule précision de chaque GPU 5. 6.2 Variations du modèle Afin d'évaluer l'importance des différentes composantes du Transformateur, nous avons varié notre modèle de base de différentes façons, mesurant le changement de performance sur la traduction de l'anglais vers l'allemand sur l'ensemble de développement, newstest2013. Nous avons utilisé la recherche par faisceau comme décrit dans la section précédente, mais pas de moyenne des points de contrôle. Nous présentons ces résultats dans le tableau 3. Dans le tableau 3 lignes (A), nous varions le nombre de têtes d'attention et les dimensions de la clé d'attention et de la valeur, en maintenant la quantité de calcul constante, comme décrit à la section 3.2.2. Alors que l'attention d'une seule tête est de 0,9 BLEU pire que le meilleur réglage, la qualité baisse également avec trop de têtes. 5Nous avons utilisé des valeurs de 2,8, 3,7, 6,0 et 9,5 TFLOPS pour K80, K40, M40 et P100, respectivement. 8 Tableau 3 : Variations sur l'architecture Transformer. Les valeurs non listées sont identiques à celles du modèle de base. Toutes les métriques sont sur l'ensemble de développement de traduction de l'anglais vers l'allemand, newstest2013. Les perplexités indiquées sont par mot-clé, selon notre encodage byte-pair, et ne doivent pas être comparées aux perplexités par mot-clé. N dff h dk dv Pdrop εls train PPL BLEU params pas (dev) (dev) ×106 base 6 512 2048 8 64 64 0,1 0.1 100K 4,92 25,8 65 (A) 1 512 512 5.29 24,9 4 128 128 5,00 25,5 16 32 32 4,91 25,8 32 16 16 5,01 25,4 (B) 16 5,16 25,1 58 32 5,01 25,4 60 (C) 2 6,11 23,7 36 4 5,19 25,3 50 8 4,88 25,5 80 256 32 32 5,75 24,5 28 1024 128 4,66 26,0 168 1024 5.12 25,4 53 4096 4,75 26,2 90 (D) 0,0 5,77 24,6 0,2 4,95 25,5 0,0 4,67 25,3 0,2 5,47 25,7 (E) emboîtement positionnel au lieu de sinusoïdes 4,92 25,7 gros 6 1024 4096 16 0,3 300 K 4,33 26,4 213 Tableau 4: Le transformateur généralise bien à la circonscription anglaise parsing (les résultats sont sur la section 23 de WSJ) Par Training als WS et E 23 (2014) [37] WSJ seulement, discriminant 88.3 Petrov et al. (2006) [29] WSJ seulement, discriminant 90,4 Zhu et al. (2013) [40] WSJ seulement, discriminant 90,4 Dyer et al. (2016) [8] WSJ seulement, discriminant 91.7 Transformateur (4 couches) WSJ seulement, discriminant 91.3 Zhu et al. (2013) [40] semi-supervisé 91.3 Huang et Harper (2009) [14] semi-supervisé 91.3 McClosky et al. (2006) [26] semi-supervisé 92.1 Vinyals et Kaiser el al. (2014) [37] semi-supervisé 92.1 Transformateur (4 couches) semi-supervisé 92.7 Luong et al. (2015) [23] multitâche 93.0 Dyer et al. (2016) [8] générative 93.3 Dans le tableau 3 lignes (B), nous observons que la réduction de la taille de la clé dk nuit à la qualité du modèle. Cela suggère que la détermination de la compatibilité n'est pas facile et qu'une fonction de compatibilité plus sophistiquée que le produit point peut être bénéfique. Nous observons en outre dans les rangées (C) et (D) que, comme prévu, les modèles plus grands sont meilleurs, et l'abandon est très utile pour éviter le surajustement. Dans la rangée (E), nous remplaçons notre encodage positionnel sinusoïdal par des encodages positionnels appris [9], et observons des résultats presque identiques au modèle de base. 6.3 Parsing de circonscription en anglais Pour évaluer si le transformateur peut généraliser à d'autres tâches, nous avons effectué des expériences sur l'analyse de circonscription en anglais. Cette tâche présente des défis spécifiques : la production est soumise à de fortes contraintes structurelles et est significativement plus longue que l'apport. De plus, les modèles de séquence à séquence RNN n'ont pas été en mesure d'obtenir des résultats de pointe dans les régimes de petites données [37]. Nous avons formé un transformateur 4 couches avec dmodel = 1024 sur la partie Wall Street Journal (WSJ) de la Penn Treebank [25], environ 40K phrases d'entraînement. Nous l'avons également formé dans un cadre semi-supervisé, en utilisant le plus grand corps de BerkleyParser et de haute confiance avec des phrases d'environ 17M [37]. Nous avons utilisé un vocabulaire de 16K jetons pour le réglage WSJ seulement et un vocabulaire de 32K jetons pour le réglage semi-supervisé. Nous n'avons effectué qu'un petit nombre d'expériences pour sélectionner l'abandon, à la fois l'attention et le résidu (section 5.4), les taux d'apprentissage et la taille du faisceau sur l'ensemble de développement de la section 22, tous les autres paramètres sont demeurés inchangés par rapport au modèle de traduction de base anglais-allemand. Pendant l'inférence, nous avons augmenté la longueur maximale de sortie à la longueur d'entrée + 300. Nous avons utilisé une taille de faisceau de 21 et α = 0,3 pour WSJ seulement et le réglage semi-supervisé. Nos résultats dans le tableau 4 montrent que malgré l'absence d'accord spécifique à la tâche, notre modèle fonctionne de manière surprenante et donne de meilleurs résultats que tous les modèles précédemment signalés, à l'exception du Grammar Récurrent Neural Network [8]. Contrairement aux modèles de séquence à séquence RNN [37], le Transformateur surpasse le Berkeley-Parser [29] même lorsqu'il ne s'entraîne que sur l'ensemble d'entraînement WSJ de 40K phrases. 7 Conclusion Dans ce travail, nous avons présenté le Transformer, le premier modèle de transduction de séquence basé entièrement sur l'attention, remplaçant les couches récurrentes les plus couramment utilisées dans les architectures encodeur-décodeur par l'auto-attention multi-têtes. Pour les tâches de traduction, le Transformateur peut être formé beaucoup plus rapidement que les architectures basées sur des couches récurrentes ou convolutionnelles. Sur les deux WMT 2014 anglais-allemand et WMT 2014 anglais-français tâches de traduction, nous obtenons un nouvel état de l'art. Dans l'ancienne tâche, notre meilleur modèle surpasse même tous les ensembles précédemment signalés. Nous sommes excités par l'avenir des modèles basés sur l'attention et nous prévoyons de les appliquer à d'autres tâches. Nous prévoyons d'étendre le Transformateur aux problèmes liés aux modalités d'entrée et de sortie autres que le texte et d'étudier les mécanismes locaux d'attention restreinte pour traiter efficacement les entrées et les sorties importantes telles que les images, l'audio et la vidéo. Le code que nous avons utilisé pour former et évaluer nos modèles est disponible à l'adresse https://github.com/ tensorflow/tensor2tensor. Remerciements Nous remercions Nal Kalchbrenner et Stephan Gouws pour leurs commentaires fructueux, corrections et inspirations. Références [1] Jimmy Lei Ba, Jamie Ryan Kiros et Geoffrey E Hinton. Normalisation des calques. arXiv preprint arXiv:1607.06450, 2016. [2] Dzmitry Bahdanau, Kyunghyun Cho et Yoshua Bengio. Traduction automatique neuronale en apprenant conjointement à aligner et à traduire. CoRR, abs/1409.0473, 2014. [3] Denny Britz, Anna Goldie, Minh-Thang Luong et Quoc V. Le. Exploration massive d'architectures de traduction de machines neurales. CoRR, abs/1703.03906, 2017. [4] Jianpeng Cheng, Li Dong et Mirella Lapata. Longs réseaux de mémoire à court terme pour la lecture automatique. arXiv preprint arXiv:1601.06733, 2016. [5] Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk et Yoshua Bengio. Apprentissage des représentations de phrases en utilisant rnn encoder-decoder pour la traduction statistique machine. CoRR, abs/1406.1078, 2014. [6] Francois Chollet. Xception: Deep learning with profondeurwise séparable convolutions. arXiv preprint arXiv:1610.02357, 2016. 10 [7] Junyoung Chung, Caglar Gülçehre, Kyunghyun Cho et Yoshua Bengio. Évaluation empirique des réseaux neuraux récurrents fermés sur la modélisation des séquences. CoRR, abs/1412.3555, 2014. [8] Chris Dyer, Adhiguna Kuncoro, Miguel Ballesteros et Noah A. Smith. Grammaire en réseau neuronal récurrente. [9] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats et Yann N. Dauphin. Séquence convalu-nationale pour l'apprentissage des séquences. arXiv preprint arXiv:1705.03122v2, 2017. [10] Alex Graves. Générer des séquences avec des réseaux neuronaux récurrents. arXiv preprint arXiv:1308.0850, 2013. [11] Kaiming He, Xiangyu Zhang, Shaoqing Ren et Jian Sun. Dans Actes de la Conférence de l'IEEE sur la vision informatique et la reconnaissance des modèles, pages 770-778, 2016. [12] Sepp Hochreiter, Yoshua Bengio, Paolo Frasconi et Jürgen Schmidhuber. Flux progressif dans les filets récurrents: la difficulté d'apprendre les dépendances à long terme, 2001. [13] Sepp Hochreiter et Jürgen Schmidhuber. Mémoire à court terme longue. Calcul neuronal, 9(8):1735–1780, 1997. [14] Zhongqiang Huang et Mary Harper. Grammaires PCFG auto-entraînement avec annotations latentes dans les langues. Dans Actes de la Conférence de 2009 sur les méthodes empiriques dans le traitement des langues naturelles, pages 832–841. ACL, août 2009. [15] Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, et Yonghui Wu. Explorer les limites de la modélisation du langage. arXiv preprint arXiv:1602.02410, 2016. [16] Łukasz Kaiser et Samy Bengio. La mémoire active peut-elle remplacer l'attention? Dans Avances in Neural Information Processing Systems, (NIPS), 2016. [17] Łukasz Kaiser et Ilya Sutskever. Les GPU neuraux apprennent les algorithmes. Dans International Conference on Learning Representations (ICLR), 2016. [18] Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves et Ko- ray Kavukcuoglu. Traduction automatique neuronale dans le temps linéaire. arXiv preprint arXiv:1610.10099v2, 2017. [19] Yoon Kim, Carl Denton, Luong Hoang et Alexander M. Rush. Réseaux d'attention structurés. Dans International Conference on Learning Representations, 2017. [20] Diederik Kingma et Jimmy Ba. Adam: Une méthode d'optimisation stochastique. Dans ICLR, 2015. [21] Oleksii Kuchaiev et Boris Ginsburg. Astuces de factorisation pour les réseaux LSTM. arXiv preprint arXiv:1703.10722, 2017. [22] Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou et Yoshua Bengio. Une phrase d'auto-attente structurée intégrant. arXiv preprint arXiv:1703.03130, 2017. [23] Minh-Thang Luong, Quoc V. Le, Ilya Sutskever, Oriol Vinyals, et Lukasz Kaiser. Séquence multi-tâche pour l'apprentissage des séquences. arXiv preprint arXiv:1511.06114, 2015. [24] Minh-Thang Luong, Hieu Pham, et Christopher D Manning. Approches efficaces de la traduction de la machine neuronale basée sur l'attention. arXiv preprint arXiv:1508.04025, 2015. [25] Mitchell P Marcus, Mary Ann Marcinkiewicz, et Beatrice Santorin. Construction d'un grand corpus annoté d'anglais: The penn treebank. linguistique computationnelle, 19(2):313-330, 1993. [26] David McClosky, Eugene Charniak et Mark Johnson. Autoformation efficace pour l'analyse. Dans Actes de la Conférence sur les technologies de la langue humaine de la NAACL, Conférence principale, pages 152–159. ACL, juin 2006. 11 [27] Ankur Parikh, Oscar Täckström, Dipanjan Das, et Jakob Uszkoreit. Un modèle d'attention décomposable. [28] Romain Paulus, Caiming Xiong et Richard Socher. Un modèle profondément renforcé pour la synthèse abstraite. arXiv preprint arXiv:1705.04304, 2017. [29] Slav Petrov, Leon Barrett, Romain Thibaux et Dan Klein. Dans les Actes de la 21e Conférence internationale sur la linguistique informatique et de la 44e réunion annuelle de l'ACL, pages 433 à 440. ACL, juillet 2006. [30] Ofir Press et Lior Wolf. Utilisation de l'intégration de sortie pour améliorer les modèles de langage. arXiv preprint arXiv:1608.05859, 2016. [31] Rico Sennrich, Barry Haddow et Alexandra Birch. Traduction automatique de mots rares avec sous-mots. arXiv preprint arXiv:1508.07909, 2015. [32] Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton et Jeff Dean. Réseaux neuraux d'une taille démesurée : la couche de mélange d'experts à faible densité. arXiv preprint arXiv:1701.06538, 2017. [33] Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever et Ruslan Salakhutdi- nov. L'abandon scolaire : un moyen simple d'empêcher les réseaux neuraux d'être suradaptés. Journal of Machine Learning Research, 15(1):1929-1958, 2014. [34] Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston et Rob Fergus. Réseaux de mémoire de bout en bout. Dans C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, et R. Garnett, rédacteurs, Avances in Neural Information Processing Systems 28, pages 2440–2448. Curran Associates, Inc., 2015. [35] Ilya Sutskever, Oriol Vinyals, et Quoc VV Le. Séquence pour séquencer l'apprentissage avec les réseaux neuraux. Dans Avances in Neural Information Processing Systems, pages 3104–3112, 2014. [36] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens et Zbigniew Wojna. Repenser l'architecture de départ pour la vision informatique. CoRR, abs/1512.00567, 2015. [37] Vinyals & Kaiser, Koo, Petrov, Sutskever et Hinton. Grammaire en tant que langue étrangère. [38] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Système de traduction automatique neurale de Google. arXiv preprint arXiv:1609.08144, 2016. [39] Jie Zhou, Ying Cao, Xuguang Wang, Peng Li et Wei Xu. Modèles récurrents profonds avec connexions rapides pour la traduction automatique neuronale. CoRR, abs/1606.04199, 2016. [40] Muhua Zhu, Yue Zhang, Wenliang Chen, Min Zhang et Jingbo Zhu. Dans les Actes de la 51e réunion annuelle de l'ACL (Volume 1 : Long Papers), pages 434 à 443. L'ACL, août 2013. 12 Attention Visualisations Input-Input Layer5 C'est dans cet esprit qu'une majorité de gouvernements américains ont adopté de nouvelles lois depuis 2009 rendant le processus d'inscription ou de vote plus difficile. C'est dans cet esprit qu'une majorité de gouvernements américains ont adopté de nouvelles lois depuis 2009 rendant le processus d'inscription ou de vote plus difficile. Aiguille à longue distance dans l'auto-attention de l'encodeur dans la couche 5 de 6. Beaucoup des têtes d'attention s'occupent d'une dépendance lointaine du verbe ‘making', complétant l'expression ‘making... more difficile. Différentes couleurs représentent différentes têtes. Meilleure vue en couleur. 13 Input-Input Layer5 La loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. La Loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. Input-Input Layer5 La loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. La Loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. Figure 4: Deux têtes d'attention, également dans la couche 5 de 6, apparemment impliquées dans la résolution de l'anaphore. En bas : Attentions isolées du mot "ses" pour les têtes d'attention 5 et 6. Notez que les attentions sont très nettes pour ce mot. 14 Input-Input Layer5 La loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. La Loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. Input-Input Layer5 La loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. La Loi ne sera jamais parfaite, mais son application devrait être juste - c'est ce que nous manquons, à mon avis. Figure 5 : Beaucoup de têtes d'attention présentent un comportement qui semble lié à la structure de la phrase. Nous donnons deux exemples de ce genre ci-dessus, à partir de deux têtes différentes de l'auto-attention encodeur à la couche 5 de 6. Les têtes ont clairement appris à accomplir des tâches différentes.