L’autoattention est un type de mécanisme d’attention utilisé dans les modèles de machine learning. Ce mécanisme permet d’évaluer l’importance des tokens ou des mots dans une entrée afin de mieux comprendre les relations entre eux. Il s’agit d’un élément essentiel des modèles de transformeurs, une architecture d’intelligence artificielle puissante qui est essentielle pour les tâches de traitement automatique du langage naturel (NLP). L’architecture transformatrice constitue la base de la plupart des grands modèles de langage (LLM) modernes.
Le mécanisme d'auto-attention a été introduit au moyen du transformateur, une architecture de modèle de réseau de neurones proposée par les chercheurs. L'architecture proposée avait pour objectif de relever les défis posés par les modèles traditionnels de machine learning qui utilisent des réseaux de neurones convolutifs (CNN) et des réseaux de neurones récurrents (RNN).1
Les modèles séquentiels traditionnels suivent la même architecture d’encodeur-décodeur que les modèles transformateurs, mais traitent les données étape par étape ou séquence à séquence (seq2seq). Cette fonction pose un défi pour la parallélisation, qui est la capacité de réduire le temps de calcul et d’améliorer la génération de sortie en calculant simultanément les poids d’attention sur toutes les parties de la séquence d’entrée.
L’autoattention a joué un rôle clé dans l’avancement des LLM en permettant la parallélisation dans les exemples d’entraînement. Cette méthode est utile, car plus la longueur de la séquence est longue, plus les contraintes de mémoire limitent le traitement par lots des exemples d’entraînement. Grâce à l’autoattention, les données d’entraînement des LLM peuvent être divisées en lots et traitées simultanément sur plusieurs GPU.1 L’autoattention réduit la puissance de calcul nécessaire pour entraîner des modèles de machine learning avec un traitement par lots efficace en parallèle.
Non seulement l’auto-attention contribue à distribuer efficacement la charge de calcul, mais elle permet également de traiter simultanément les poids d’attention. Cette capacité permet au modèle de se concentrer sur les parties pertinentes d’une séquence d’entrée pour prédire dynamiquement l’importance de chaque élément au sein d’une séquence. L’autoattention est adaptée aux tâches NLP telles que la traduction automatique, l’analyse des sentiments et le résumé.
Dans les modèles de machine learning, l’autoattention est similaire au concept de comportement humain en ce sens qu’ils impliquent tous deux de se concentrer sur des éléments pertinents dans un contexte plus large afin de traiter les informations avec précision. En psychologie, il s’agit de se concentrer sur ses propres pensées ou comportements, tandis que dans l’apprentissage profond, il s’agit de se concentrer sur les parties pertinentes d’une séquence d’entrée.
L'architecture transformatrice comprend une couche d'auto-attention où le processus d'attention est intégré. Les étapes sont expliquées telles qu'elles sont présentées dans l'article d'Ashish Vaswani et al. introduisant la couche d'auto-attention « Attention is All You Need ».
Une séquence d'entrée est une série de points de données vectorisés en intégrations, ou représentations numériques, que l'algorithme de machine learning peut utiliser pour calculer les scores d'attention nécessaires à la production d'une séquence de sortie.
En traduction automatique, une phrase est considérée comme une séquence d’entrée, et chaque partie de la phrase est considérée comme un point de données ou un token d’entrée. Les tokens sont convertis en embeddings qui agissent comme des unités sémantiques que le modèle peut traiter.2 Les embeddings sont utilisés pour calculer les pondérations d’attention qui aident le modèle à prioriser (ou à rechercher) les données d'entrée les plus pertinentes.
Le modèle utilise ces embeddings pour générer trois vecteurs clés pour chaque token : requête (Q), clé (K) et valeur (V). Ces valeurs seront utilisées pour aider le modèle à établir les correspondances sémantiques les plus pertinentes au sein de la phrase d'entrée.
Des multiplications matricielles sont effectuées pour obtenir les vecteurs requête, clé et valeur. Le mécanisme d'attention calcule une somme pondérée des valeurs en fonction des matrices de pondération respectives des composants de requête, de clé et de valeur, ainsi que des entrées intégrées.1 Ce processus est connu sous le nom de transformation linéaire.
Une fois les embeddings transformés, les scores d’attention pour chaque élément de la séquence sont calculés. Les scores d’attention sont obtenus en prenant les scores d’attention des produits scalaires entre les vecteurs de requête et les vecteurs clés. Ces pondérations d’attention représentent la quantité de concentration (ou d’attention) qu’un token spécifique doit apporter à d’autres tokens dans une séquence.
Ensuite, le score d’attention est réduit par la racine carrée de la dimensionnalité des vecteurs clés. Ce processus contribue à stabiliser les gradients et à éviter qu'ils ne deviennent trop importants pour être calculés efficacement à mesure que la dimensionnalité des vecteurs augmente.
Les scores d’attention obtenus grâce au produit scalaire des vecteurs requête et des vecteurs clés sont transformés en probabilités à l’aide de la fonction softmax. Ce processus est appelé normalisation.
Grâce à ces probabilités normalisées, le bloc d'attention softmax permet à l'architecture du transformateur d'évaluer l'importance de chaque élément d'entrée lors de la génération du résultat.3 Ces probabilités permettent de trouver l’importance relative de chaque élément dans la séquence. Le modèle d’attention utilise ces pondérations normalisées pour décider sur quelles parties de l’entrée se concentrer.
Enfin, les pondérations d’attention dérivées de ce processus contribuent à la somme pondérée finale du vecteur de valeur. Plus le score d’attention est élevé, plus la séquence d’attention est importante. Cela signifie qu'il aura une plus grande influence sur le résultat final de la somme pondérée du vecteur de valeurs.
Les modèles d'attention sont efficaces pour capturer les dépendances à longue portée, quelle que soit la distance entre chaque élément, ou token, au sein d'une séquence. L'attention multi-têtes est une extension cruciale de l'auto-attention qui améliore cette fonctionnalité principale en s'intéressant simultanément à différents éléments au sein de l'ensemble de données d'entrée. Les modèles peuvent s'occuper d'aspects ou de relations distincts dans les données à la fois, ce qui permet d'établir plus de contexte entre les dépendances ou les tokens.
Les premiers modèles bidirectionnels, tels que les représentations bidirectionnelles des encodeurs à partir de transformateurs (BERT), ont amélioré la compréhension du contexte en permettant au modèle de prendre en compte les informations provenant à la fois de la séquence avant et arrière. Dans l'attention bidirectionnelle, le modèle vise à comprendre la signification d'un mot en fonction des mots qui l'entourent.4
Les modèles GPT ont popularisé l'auto-attention, soulignant les avantages d'une fenêtre contextuelle élargie pour les tâches génératives. La capacité à traiter plus d'informations à la fois permet d'améliorer la précision et la compréhension.
Les modèles d'IA utilisent l'auto-attention pour traiter efficacement de longues séquences d'entrée, en échangeant des informations d'attention à grande échelle tout en réduisant l'utilisation de la mémoire.5 L’auto-attention permet au modèle d’acquérir une compréhension contextuelle plus profonde en utilisant la fenêtre contextuelle du modèle. Plus la fenêtre contextuelle est grande, plus le nombre de tokens auxquels le modèle peut prêter attention en même temps est important.
Tâches de NLP : le mécanisme d’auto-attention améliore les capacités linguistiques des modèles de machine learning en permettant une analyse efficace et complète d’un texte entier. Des recherches ont montré des progrès dans la classification des sentiments.6 Les modèles peuvent effectuer les tâches NLP de manière efficace, car la couche d’attention leur permet de calculer la relation entre les mots, quelle que soit la distance entre eux.7
Vision par ordinateur : les mécanismes d’autoattention ne sont pas exclusifs aux tâches NLP. Ils peuvent être utilisés pour se concentrer sur des parties spécifiques d'une image. Les développements des modèles de reconnaissance d’images suggèrent que l’auto-attention est un composant essentiel pour augmenter leur robustesse et leur généralisation.8
1. « Attention Is All You Need, » Ashish Vaswani et al., Actes de la 31e Conférence internationale sur les systèmes de traitement de l’information neuronale, arXiv:1706.03762v7, consulté le 2 août 2023.
2. « Tokenization, » essai, dans Introduction to Information Retrieval, Christopher Manning, Prabhakar Raghavan and Hinrich Schutze, 2008.
3. « Rethinking Softmax: Self-Attention with Polynomial Activations », Hemanth Saratchandran et al., Institut australien de machine learning, Université d’Adélaide, arXiv:2410.18613v1, 24 octobre 2024.
4. « BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding », Jacob Devlin et al., arXiv:1810.04805v2, consulté le 24 mai 2019.
5. « Scaling of Search and Learning: A Roadmap to Reproduct o1 from Reinforcement Learning Perspective », Zhiyu Zeng et al., arXiv:2412.14135, 18 décembre 2024.
6. « Bidirectional LSTM with self-attention mechanism and multi-channel features for sentiment classification, » Weijiang Li et al., Neurocomputing Vol 387, 28 avril 2020.
7. « Parallel Scheduleing Self-attention Indicator: Generalization and Optimization », Mingfei Yu et Masahiro Fujita, arXiv:2012.01114v1, 2 décembre 2020.
8. « Exploring Self-attention for Image Recognition », Hengshuang Zhao, Jiaya Jia et Vladlen Koltun, Actes de la conférence IEEE/CVF sur la vision par ordinateur et la reconnaissance des modèles, 2020.