L’attention est un mécanisme clé dans les modèles de traitement du langage naturel (NLP) modernes tels que le Transformer. Avant l’apparition du mécanisme d’attention dans le modèle Transformer, des modèles comme les RNN (Réseaux de Neurones Récurrents) et LSTM (Long Short-Term Memory) dominaient le paysage du NLP. Cependant, ces derniers rencontraient des difficultés lorsqu’il s’agissait de traiter des séquences particulièrement longues, en raison notamment de la vanishing gradient problem (problème de gradient qui disparaît).
Le mécanisme d’attention, tel qu’introduit par Vaswani et al. dans leur article « Attention is All You Need » en 2017, a permis de surmonter ces limitations. Le cœur de ce mécanisme repose sur l’idée de pouvoir concentrer l’attention sur différentes parties d’une entrée séquentielle au moment de produire chaque partie de la sortie.
Voici une explication détaillée du fonctionnement de l’attention dans le modèle Transformer :
1. Représentation par vecteurs : Chaque mot ou token d’une séquence est représenté par un vecteur dense à haute dimension. Par exemple, un mot pourrait être représenté par un vecteur de 512 dimensions.
1. Création de Scaled Dot-Product Attention : Le mécanisme d’attention calcule une pondération pour chaque mot de la séquence d’entrée pour déterminer l’importance relative entre eux. Ceci se fait en trois étapes :
- Calcul des Key (K), Query (Q), et Value (V) : Pour chaque mot, trois vecteurs sont générés à partir des vecteurs d’entrée via des transformations linéaires.
- Scoring : Le produit scalaire entre le Query du mot d’intérêt et le Key de chaque mot de la séquence est calculé pour obtenir des scores de similarité.
- Pondération et agrégation : Ces scores sont ensuite normalisés via une softmax pour obtenir une distribution de probabilités. Les vecteurs Value sont ensuite pondérés par ces scores et agrégés pour produire le vecteur d’attention.
1. Multiples têtes d’attention : Plutôt que de réaliser un seul calcul d’attention, le modèle utilise plusieurs “têtes d’attention” parallèles (par exemple, huit ou douze têtes), ce qui permet de capturer différentes relations entre les mots dans le contexte. Ces multiples têtes d’attention sont ensuite concaténées et mélangées pour obtenir un vecteur final.
1. Empilement de couches : Des couches d’attention sont empilées les unes sur les autres, avec des couches de feed-forward réseau de neurones entre elles, formant ainsi des Regarnes Transformer.
1. Position encoding : Puisque le Transformer ne traite pas les mots en ordre séquentiel (comme les RNN ou LSTM), il intègre des encodages positionnels pour donner un sens à l’ordre des mots dans la séquence.
Des exemples d’utilisation réussie du Transformer incluent des tâches telles que la traduction automatique (comme dans Google Translate), la génération de texte (GPT de OpenAI), et la compréhension de textes (BERT de Google). Ces modèles ont bénéficié de l’efficacité du mécanisme d’attention pour traiter de grandes quantités de données textuelles simultanément, tout en capturant des relations complexes entre les mots.
Les sources suivantes ont été utilisées pour construire cette réponse :
1. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … & Polosukhin, I. (2017). Attention is all you need. In Advances in neural information processing systems (pp. 5998-6008).
2. Devlin, J., Chang, M.W., Lee, K., & Toutanova, K. (2018). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv preprint arXiv:1810.04805.
3. Brown, T. B., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., … & Amodei, D. (2020). Language models are few-shot learners. arXiv preprint arXiv:2005.14165.