Les transformeurs, introduits par Vaswani et al. en 2017 dans l’article intitulé “Attention is All You Need”, sont une architecture de réseaux neuronaux utilisée principalement dans le traitement du langage naturel (NLP). Ils se composent principalement de deux parties : l’encodeur et le décodeur. Les transformeurs surmontent les limitations des réseaux de neurones récurrents (RNN) en utilisant un mécanisme d’attention qui permet de traiter les données en parallèle, ce qui est plus efficace en termes de temps de calcul.
L’encodeur dans un transformeur est constitué d’une série de blocs d’encodeurs identiques, chacun composé de deux sous-couches principales : une couche d’attention multi-tête et une couche de réseau feed-forward pleinement connecté.
1. Attention Multi-Tête :
- Une séquence d’entrées (matrice de dimension ( N x d\_{model} )) est d’abord projetée en trois matrices différentes : Query (Q), Key (K) et Value (V).
- Le mécanisme d’attention calcule ensuite le score d’attention en utilisant la formule (Attention(Q, K, V) = softmax \left(\frac{QK^T}{\sqrt{d\_k}}\right)V). Ce processus est fait plusieurs fois de manière parallèle (d’où le terme “multi-tête”) pour capturer différentes relations contextuelles.
- Les résultats sont concaténés et passés à travers une transformation linéaire.
1. Réseau Feed-Forward :
- Le résultat de la couche d’attention est ensuite passé à travers une couche de réseau pleinement connecté (feed-forward) où une fonction non-linéaire est appliquée, généralement ReLU (Rectified Linear Unit).
- Cette sous-couche sert à appliquer des transformations non linéaires et à enrichir la représentation des données.
Chaque bloc d’encodage est accompagné de mécanismes de normalisation par couches (Layer Normalization) et de connexions résiduelles (Residual Connections) pour stabiliser l’entraînement et faciliter la propagation des gradients.
Le décodeur dans un transformeur est également formé de plusieurs blocs identiques, mais chaque bloc possède une structure légèrement plus complexe en raison de la couche d’attention supplémentaire pour l’inférence séquentielle.
1. Attention Causale Multi-Tête :
- Contrairement à l’encodeur, la couche d’attention dans le décodeur est masquée pour garantir que les prédictions à un temps donné ne dépendent que des positions antérieures et présentes, ce qui est essentiel pour les tâches de génération de séquences.
1. Attention Multi-Tête Encodage-Décodage :
- Après la couche d’attention causale, il y a une autre couche d’attention multi-tête qui prend en entrée les sorties de l’encodeur (les clés et les valeurs) et les états du décodeur (les requêtes). Cela permet au décodeur de se focaliser sur les parties pertinentes de la séquence d’entrée tout en générant la séquence de sortie.
1. Réseau Feed-Forward :
- Semblable à l’encodeur, le décodeur possède également une couche de réseau feed-forward pleinement connecté pour transformer les résultats de l’attention.
De plus, tant l’encodeur que le décodeur utilisent des embeddings positionnels pour injecter des informations sur la position des tokens dans la séquence, étant donné que les transformeurs n’utilisent pas de mécanismes récurrents ou convolutionnels qui capturent naturellement l’ordre des tokens.
Un exemple d’application des transformeurs est GPT-3 (Generative Pre-trained Transformer 3) développé par OpenAI, qui utilise l’architecture des transformeurs pour générer du texte cohérent et contextuellement pertinent.
1. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … & Polosukhin, I. (2017). Attention is All You Need. Advances in Neural Information Processing Systems, 30.
1. 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.
Ces articles fournissent une base solide pour comprendre en profondeur le mécanisme d’encodage et de décodage dans les transformeurs ainsi que leurs applications avancées comme GPT-3.