Architecture Transformer

From Systems analysis wiki
Jump to navigation Jump to search

L'architecture Transformer est une architecture de réseau de neurones présentée en 2017 par des chercheurs de Google dans l'article « Attention Is All You Need »[1]. Elle a révolutionné le domaine du traitement du langage naturel (TALN, ou NLP en anglais) et est devenue la base de la plupart des grands modèles de langage (LLM) modernes, tels que BERT, GPT et Gemini. L'innovation clé du Transformer est le mécanisme d'auto-attention (self‑attention), qui permet au modèle de pondérer l'importance des différentes parties des données d'entrée et de traiter les séquences en parallèle, abandonnant ainsi la récurrence propre aux RNN et aux LSTM.

Contexte historique et prérequis

Avant 2017, les architectures dominantes pour le traitement des données séquentielles, comme le texte, étaient les réseaux de neurones récurrents (RNN) et leur variante améliorée, les réseaux à mémoire longue à court terme (LSTM).

Problèmes des RNN/LSTM abordés par le Transformer

  • Limitations du traitement séquentiel : Les RNN et les LSTM traitent les données jeton par jeton, ce qui exclut le parallélisme intra-séquence et ralentit l'entraînement sur de grands volumes de données.
  • Problème de la disparition et de l'explosion des gradients : Dans les séquences longues, les gradients propagés en arrière à travers de nombreuses étapes peuvent soit s'annuler (disparaître), soit croître de manière exponentielle (exploser), ce qui complique l'apprentissage des dépendances à long terme.
  • Dépendances à long terme : L'information provenant du début d'une séquence peut se perdre avant d'atteindre la fin.

L'approche du Transformer consiste en un abandon complet de la récurrence au profit d'un mécanisme d'attention. Il garantit une longueur de chemin constante pour les dépendances entre n'importe quelles positions (O(1)), ce qui facilite la modélisation des dépendances à longue portée, bien que l'implémentation de base de l'auto-attention ait une complexité de calcul quadratique par rapport à la longueur de la séquence (O(n2))[1][2]. Le problème de la disparition/explosion des gradients n'est pas « éliminé », mais atténué grâce aux connexions résiduelles, à la LayerNorm et au régime d'entraînement ; les implémentations modernes utilisent souvent la variante Pre‑LayerNorm (Pre‑LN), plus stable lors de l'entraînement[3].

Architecture et composants clés

L'architecture originale du Transformer se compose de deux parties principales : un encodeur et un décodeur. Les deux composants sont des piles de couches identiques (N=6 dans l'article original)[1].

  • Structure d'une couche d'encodeur : (1) auto-attention multi-têtes (MHA), (2) réseau de neurones à propagation avant positionnel (FFN) ; chaque sous-couche est entourée d'une connexion résiduelle et d'une LayerNorm[1].
  • Structure d'une couche de décodeur : (1) auto-attention masquée (un masque causal empêche l'accès aux positions futures), (2) attention croisée (cross‑attention) avec les sorties de l'encodeur, (3) FFN — également avec des connexions résiduelles et une LayerNorm[1].

Mécanisme d'attention et Self-Attention

Le mécanisme d'attention calcule une somme pondérée des vecteurs de valeur (Value), où les poids sont déterminés par le degré de compatibilité des clés (Key) avec les requêtes (Query). Le Transformer utilise une attention par produit scalaire mis à l'échelle (Scaled Dot‑Product Attention) :

Attention(Q,K,V)=softmax(QKdk)V

dk est la dimension des clés/requêtes ; la division par dk empêche la saturation de la fonction softmax[1]. Lorsque Q, K et V sont générés à partir de la même séquence, le mécanisme est appelé auto-attention (self‑attention).

Multi‑Head Attention (attention multi-têtes)

Au lieu d'un seul ensemble de matrices (WQ,WK,WV), on utilise h « têtes » parallèles, chacune projetant Q,K,V dans des sous-espaces de plus petite dimension, calculant l'attention indépendamment, puis les résultats sont concaténés et projetés[1] :

MultiHead(Q,K,V)=Concat(head1,,headh)WO,où headi=Attention(QWiQ,KWiK,VWiV).

Variantes pour accélérer l'inférence :

  • MQA (Multi‑Query Attention) : toutes les têtes partagent une seule clé/valeur → réduit considérablement le volume et le trafic du cache KV lors du décodage[4].
  • GQA (Grouped‑Query Attention) : un compromis entre MHA et MQA — plusieurs groupes de têtes partagent K/V ; la qualité est proche de celle du MHA avec la vitesse du MQA[5].

Encodage de position (Positional Encoding)

Comme l'auto-attention est invariante à l'ordre des jetons, des encodages de position sont ajoutés aux embeddings d'entrée.

  • Encodages sinusoïdaux originaux (PE) de [1] :
PE(pos,2i)=sin(pos/100002i/dmodel),PE(pos,2i+1)=cos(pos/100002i/dmodel).
  • Variantes relatives/rotatives modernes :
    • RoPE (Rotary Position Embeddings) encode les décalages relatifs par la rotation des vecteurs Q/K ; utilisé dans plusieurs LLM modernes[6].
    • ALiBi introduit une pénalité linéaire dans les scores d'attention, ce qui améliore l'extrapolation à des longueurs supérieures à celles vues à l'entraînement[7].

FFN, connexions résiduelles et normalisation

Chaque couche de l'encodeur et du décodeur, en plus de l'attention, contient un réseau de neurones à propagation avant positionnel (FFN) :

FFN(x)=max(0,xW1+b1)W2+b2.

Autour de chaque sous-couche sont utilisées des connexions résiduelles (residual connections) et une normalisation de couche (Layer Normalization) : LayerNorm(x+Sublayer(x)). L'original utilisait la variante Post‑LN[1] ; les LLM modernes utilisent souvent la Pre‑LN pour une meilleure stabilité d'entraînement et une moindre dépendance à un long warm-up[3].

Évolution et variantes modernes

Les premières méthodes, basées sur les réseaux de neurones récurrents (RNN) et leurs variantes avancées comme les LSTM, traitaient le texte séquentiellement, un jeton à la fois. Bien que cette approche corresponde intuitivement à la structure du langage, elle imposait une contrainte majeure : elle rendait les calculs parallèles difficiles et compliquait la détection des dépendances entre des éléments éloignés dans le texte. En 2017, un groupe de chercheurs de Google a présenté un article intitulé « Attention Is All You Need ». Ils y décrivaient une nouvelle architecture : le « Transformer ». Ce modèle a été le premier à abandonner complètement l'utilisation des réseaux de neurones récurrents, les remplaçant par un mécanisme d'« attention ». L'innovation principale résidait dans le fait que le mécanisme d'attention permettait au Transformer d'évaluer l'importance de chaque mot dans la séquence d'entrée pour générer le mot correspondant en sortie. De plus, le modèle pouvait traiter tous les mots simultanément. Cette capacité de traitement parallèle a rendu possible l'entraînement de modèles beaucoup plus grands sur d'énormes volumes de données, ce qui a conduit à l'émergence des grands modèles de langage (LLM) modernes.

L'architecture Transformer a servi de base à de nombreux modèles, que l'on peut classer en trois catégories.

1. Modèles à encodeur seul (Encoder-only)

  • Exemple : BERT (et RoBERTa, ALBERT)[8].
  • Principe : pré-entraînement sur une tâche de modélisation du langage masqué (MLM) avec un contexte bidirectionnel.
  • Application : tâches de compréhension (classification, NER, etc.).

2. Modèles à décodeur seul (Decoder-only)

  • Exemple : la série GPT (GPT‑1/2/3)[9][10], LLaMA[11], Claude.
  • Principe : modélisation du langage causal (CLM) — prédiction du jeton suivant ; un masque causal est appliqué à l'attention[1].
  • Application : génération de texte, dialogues, code.

3. Modèles encodeur-décodeur (Encoder-decoder)

  • Exemple : le Transformer original, T5, BART[1][12].
  • Principe : l'encodeur construit une représentation de l'entrée, le décodeur génère la sortie et utilise une attention croisée (cross-attention) sur les caractéristiques de l'encodeur[1].
  • Application : tâches de séquence à séquence (seq2seq) (traduction, résumé, etc.).

4. Architectures multimodales et alternatives

  • Vision Transformer (ViT) — adaptation aux images (division en patchs)[13] ; Swin Transformer — un modèle hiérarchique avec des fenêtres décalées (shifted windows)[14].
  • Alternatives pour les séquences longues :
    • Mamba — modèles sélectifs à espace d'états (SSM) avec une complexité linéaire[15].
    • RWKV — une architecture de type RNN avec un entraînement parallèle et une complexité d'inférence linéaire[16].
    • Hybrides (par ex., Jamba) : alternent des blocs Transformer et Mamba ; parfois complétés par un MoE[17].

Techniques d'entraînement et d'optimisation

L'efficacité du Transformer est étroitement liée aux techniques d'entraînement et à l'infrastructure.

  • Stratégies de pré-entraînement : CLM et MLM ; également des objectifs contrastifs et de débruitage (ELECTRA, T5)[12].
  • Techniques de fine-tuning (Fine‑tuning) :
    • Fine-tuning complet de tous les paramètres.
    • Fine-tuning efficace en paramètres (PEFT) : LoRA introduit des adaptateurs de bas rang tandis que les poids du modèle de base sont gelés[18].
  • Alignement du comportement : RLHF — apprentissage par renforcement à partir de retours humains[19].
  • Optimisations système pour l'inférence : PagedAttention/vLLM augmentent le débit du service (serving) grâce à une gestion paginée du cache KV ; particulièrement utile pour les séquences longues et les grands lots (batches)[20].

Liens externes

Bibliographie

  • Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
  • Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI Technical Report.
  • Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
  • Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. arXiv:1910.10683.
  • Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.
  • Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. arXiv:2103.14030.
  • Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
  • Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
  • Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
  • Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
  • Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need (MQA). arXiv:1911.02150.
  • Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
  • Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention (vLLM). arXiv:2309.06180.
  • Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
  • Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
  • Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
  • Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
  • Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.

Notes et références

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
  2. Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
  3. 3.0 3.1 Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
  4. Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need. arXiv:1911.02150.
  5. Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
  6. Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
  7. Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
  8. Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  9. Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI.
  10. Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
  11. Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
  12. 12.0 12.1 Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. JMLR. arXiv:1910.10683.
  13. Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. ICLR. arXiv:2010.11929.
  14. Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. ICCV. arXiv:2103.14030.
  15. Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
  16. Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
  17. Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
  18. Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
  19. Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.
  20. Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention. arXiv:2309.06180.

Category:Artificial intelligence