RNN vs Transformeur
Quelle architecture choisir ?
Répondez à 6 questions sur votre projet pour obtenir une recommandation d'architecture personnalisée et des modèles concrets.
Questions fréquentes Transformeur
Un transformeur est une architecture de réseau de neurones basée sur le mécanisme d’attention multi-têtes, dans laquelle le texte est converti en représentations numériques appelées tokens, chaque token étant transformé en vecteur via une table d’embeddings. À chaque couche, les tokens sont contextualisés en parallèle avec les autres tokens de la fenêtre de contexte, ce qui amplifie les signaux importants et atténue les tokens moins pertinents.
Qu'est-ce qu'un transformeur en intelligence artificielle ?
Un transformeur est une architecture de réseau de neurones qui traite les séquences de données en exploitant un mécanisme d’attention pour capturer les relations entre tous les éléments d’une séquence simultanément.
Proposée en 2017 dans l’article “Attention Is All You Need” par des chercheurs de Google, cette architecture remplace les unités récurrentes des architectures précédentes (RNN, LSTM) par des couches d’attention parallélisables. Le modèle original suit une structure encodeur-décodeur : l’encodeur transforme une séquence d’entrée en représentations contextualisées, le décodeur génère une séquence de sortie à partir de ces représentations.
Quatre composants structurent tout transformeur : un tokeniseur, une couche d’embedding, des couches de transformeur (alternant attention et réseau feedforward), et une couche de dé-embedding.
Comment fonctionne le mécanisme d'attention dans un transformeur ?
Le mécanisme d’attention calcule, pour chaque token, un score de pertinence vis-à-vis de tous les autres tokens de la séquence, puis pondère les informations à intégrer en conséquence.
Concrètement, chaque token est projeté en trois vecteurs : une requête (query), une clé (key) et une valeur (value). Le score d’attention entre deux tokens correspond au produit scalaire entre leur requête et leur clé, divisé par la racine carrée de la dimension des clés pour stabiliser les gradients. Une fonction softmax normalise ces scores en poids, qui servent à calculer une somme pondérée des vecteurs valeurs.
L’attention multi-têtes (multihead attention) répète cette opération en parallèle avec plusieurs ensembles de matrices de projection, permettant au modèle de capturer différentes notions de pertinence simultanément. Les résultats de toutes les têtes sont concaténés puis projetés via une matrice de sortie.
Formule centrale :
Attention(Q, K, V) = softmax(QKᵀ / √dₖ) · V
Quelle est la différence entre un transformeur et GPT, un réseau antagoniste génératif ou un auto-encodeur variationnel ?
Un transformeur est une architecture ; GPT, les réseaux antagonistes génératifs (GAN) et les auto-encodeurs variationnels (VAE) sont des modèles ou des paradigmes d’entraînement distincts, qui peuvent ou non reposer sur des transformeurs.
| Concept | Nature | Base architecturale | Usage principal |
|---|---|---|---|
| Transformeur | Architecture de réseau de neurones | — | Traitement de séquences |
| GPT | Modèle de langage | Transformeur décodeur seul | Génération de texte |
| GAN | Paradigme d’entraînement | Variable (CNN, MLP…) | Génération d’images/vidéos |
| VAE | Modèle génératif probabiliste | Variable (CNN, MLP…) | Génération et compression |
| Art génératif | Application créative | Variable | Production artistique algorithmique |
GPT (Generative Pre-trained Transformer) est un transformeur décodeur seul, entraîné de façon autorégressive sur de larges corpus textuels. Les GAN et les VAE sont des architectures génératives indépendantes du transformeur, bien que certains modèles récents d’IA générative combinent transformeurs et diffusion (Stable Diffusion 3, DALL-E).
Quels sont les exemples concrets de transformeurs en production ?
Les transformeurs alimentent aujourd’hui la majorité des systèmes de traitement du langage à grande échelle, ainsi qu’un nombre croissant d’applications multimodales.
Exemples représentatifs :
- BERT (2018, Google) : transformeur encodeur seul, utilisé pour la compréhension du langage et le traitement des requêtes de recherche Google depuis octobre 2019.
- GPT-3 / GPT-4 (OpenAI) : transformeurs décodeurs seuls, à la base de ChatGPT et de nombreuses API de génération de texte.
- Google Translate : a migré vers une architecture transformeur-encodeur / décodeur RNN en 2020.
- AlphaFold (DeepMind) : applique les transformeurs à la prédiction de la structure des protéines.
- Whisper (OpenAI) : utilise un transformeur encodeur-décodeur pour la reconnaissance vocale, en traitant le signal audio comme un spectrogramme découpé en patches.
- DALL-E, Stable Diffusion 3, Sora : exploitent les transformeurs pour analyser les prompts textuels et générer des images ou des vidéos.
Quels sont les avantages du transformeur par rapport aux architectures précédentes ?
Le principal avantage du transformeur est sa capacité à traiter tous les tokens d’une séquence en parallèle, ce qui réduit drastiquement le temps d’entraînement par rapport aux architectures récurrentes.
Les RNN et LSTM traitaient les séquences token par token, de gauche à droite, ce qui empêchait toute parallélisation sur GPU et posait des problèmes de gradients évanescents sur les longues séquences. Le transformeur élimine la récurrence et permet une accélération matérielle directe.
Autres avantages notables :
- Capture des dépendances à longue portée sans dégradation de l’information.
- Modularité architecturale : les variantes encodeur seul, décodeur seul et encodeur-décodeur couvrent des cas d’usage distincts.
- Transfert d’apprentissage efficace : un modèle pré-entraîné sur corpus générique peut être affiné sur une tâche spécifique avec peu de données.
- Extensibilité à des modalités non textuelles (images, audio, vidéo, protéines).
Quelles sont les limites connues des transformeurs ?
La limitation structurelle principale du transformeur est sa complexité quadratique en mémoire et en calcul par rapport à la taille de la fenêtre de contexte : traiter une séquence de N tokens requiert O(N²) opérations d’attention.
Cette contrainte rend l’entraînement et l’inférence coûteux pour de très longues séquences. Plusieurs approches tentent de réduire cette complexité : Reformer (O(N log N)), BigBird (O(N)), attention creuse, Random Feature Attention.
Autres limites :
- Absence de mémoire persistante : le modèle n’a pas accès à des informations au-delà de sa fenêtre de contexte sans mécanisme externe (RAG, KV cache).
- Stabilité d’entraînement : la version originale post-LN nécessitait un échauffement du taux d’apprentissage ; la convention pré-LN a partiellement résolu ce problème.
- Coût énergétique : l’entraînement de grands modèles consomme des ressources computationnelles considérables.
- Opacité des représentations : malgré des travaux d’interprétabilité, les mécanismes internes restent difficiles à auditer systématiquement.
Qui utilise les transformeurs et dans quels contextes ?
Les transformeurs sont utilisés par les laboratoires de recherche en IA, les grandes entreprises technologiques et un nombre croissant d’organisations dans des secteurs applicatifs variés.
Contextes d’utilisation principaux :
- Moteurs de recherche : Google utilise BERT pour interpréter les requêtes depuis 2019.
- Assistants conversationnels : ChatGPT, Claude, Gemini reposent tous sur des architectures transformeur.
- Bioinformatique : AlphaFold (prédiction de structures protéiques), analyse de séquences génomiques.
- Traduction automatique : DeepL, Google Translate.
- Génération de code : GitHub Copilot, Claude Code.
- Vision par ordinateur : les vision transformers (ViT) traitent les images comme des séquences de patches.
- Robotique et apprentissage par renforcement : intégration de transformeurs dans des agents prenant des décisions séquentielles.
Quel est l'avenir prévisible des architectures transformeur ?
L’axe de développement dominant porte sur la réduction des coûts computationnels tout en étendant les capacités multimodales et la longueur des contextes gérables.
Plusieurs directions actives :
- Efficacité de l’attention : FlashAttention-4, attention linéaire, attention par blocs pour les GPU de nouvelle génération (Blackwell H100).
- Contextes longs : ALiBi, RoPE, et d’autres encodages positionnels relatifs permettent d’étendre la fenêtre de contexte sans réentraînement complet.
- Décodage spéculatif : accélération de l’inférence en générant des tokens candidats avec un petit modèle, vérifiés par le grand modèle.
- Prédiction multi-tokens : un seul passage avant produit plusieurs tokens futurs, réduisant le nombre d’appels au modèle.
- Multimodalité native : les modèles entraînés conjointement sur texte, image, audio et vidéo deviennent la norme plutôt que l’exception.
La question ouverte est de savoir si des architectures alternatives (réseaux à état d’espace, modèles hybrides) remplaceront partiellement les transformeurs pour certaines tâches, ou si les optimisations incrémentales maintiendront leur domination.
Comment fonctionne le tokeniseur dans un transformeur ?
Le tokeniseur d’un transformeur convertit un texte brut en une séquence d’identifiants entiers correspondant à des unités lexicales appelées tokens, qui peuvent être des mots complets, des sous-mots ou des caractères.
Le processus se déroule en trois étapes : prétokenisation (segmentation grossière du texte), tokenisation proprement dite (découpage en tokens selon un vocabulaire fini), et encodage (conversion de chaque token en identifiant entier). Les algorithmes les plus utilisés sont le Byte Pair Encoding (BPE) et le modèle de langage unigramme.
La taille du vocabulaire est un hyperparamètre critique : un vocabulaire petit produit de nombreux tokens par mot, augmentant la longueur des séquences ; un vocabulaire large réduit ce ratio mais augmente la taille des tables d’embedding. Le token [UNK] (unknown) représente tout token absent du vocabulaire.
Quelle est la différence entre un transformeur encodeur seul et décodeur seul ?
Un transformeur encodeur seul produit des représentations contextualisées d’une séquence d’entrée, tandis qu’un transformeur décodeur seul génère une séquence token par token de façon autorégressive.
L’encodeur seul (ex. BERT) applique une attention non masquée : chaque token peut s’appuyer sur tous les autres tokens de la séquence, dans les deux directions. Il est adapté aux tâches de compréhension : classification, extraction d’information, encodage sémantique.
Le décodeur seul (ex. GPT) applique une attention causale masquée : chaque token ne peut s’appuyer que sur les tokens qui le précèdent. Il est adapté à la génération de texte et au suivi d’instructions.
L’architecture encodeur-décodeur (ex. T5) combine les deux : l’encodeur traite l’entrée en parallèle, le décodeur génère la sortie en croisant son attention avec les représentations de l’encodeur.
Qu'est-ce que le KV cache et pourquoi est-il important pour l'inférence ?
Le KV cache (Key-Value cache) est une technique d’inférence qui sauvegarde les vecteurs clés et valeurs déjà calculés à chaque bloc d’attention, évitant de les recalculer à chaque nouveau token généré.
Lors d’une génération autorégressive, le vecteur de requête change à chaque étape, mais les vecteurs clés et valeurs des tokens précédents restent identiques. Sans KV cache, ces vecteurs seraient recalculés à chaque pas, multipliant le coût de l’inférence par la longueur de la séquence.
PagedAttention applique une gestion de mémoire paginée au KV cache pour optimiser l’utilisation de la mémoire GPU dans des contextes de serveurs multi-utilisateurs. Pour les modèles avec un prompt système fixe (“Tu es un assistant de support client…”), les vecteurs KV de ce prompt peuvent être précalculés et stockés sur disque.
Le décodage spéculatif change-t-il les résultats générés par un transformeur ?
Non : le décodage spéculatif est une optimisation de vitesse qui ne modifie pas la distribution de probabilité de sortie du modèle principal.
Le principe consiste à utiliser un modèle plus petit (ou une heuristique simple) pour générer rapidement plusieurs tokens candidats, puis à les vérifier en un seul passage du grand modèle. Les tokens validés sont conservés ; les premiers tokens invalides et tous ceux qui les suivent sont rejetés et recalculés.
Pour la génération non déterministe (température > 0), les tokens spéculatifs sont acceptés ou rejetés de façon stochastique selon un protocole qui garantit que la distribution de sortie finale est identique à celle d’une génération sans décodage spéculatif. Le gain de vitesse dépend du taux d’acceptation des tokens spéculatifs.