L’Attention est tout ce qu’il vous faut
Les architectures de type transformers ont constitué une avancée très importante en résolvant notamment les problèmes de mémoire. Cette architecture et ses nombreuses variantes dont le nom rappelle un jouet célèbre des années 80 sont à l’origine de GPT et de progrès fulgurants dans le domaine.
L’architecture des Transformers utilise plusieurs mécanismes, parmi lesquels :
- Un mécanisme d’attention, déjà conceptualisé auparavant, permet aux mots d’une phrase d’apprendre l’importance des autres dans la même phrase (self attention) ou dans une autre séquence (attention) comme une phrase à traduire. Pour augmenter, pour un même mot, le nombre de dimensions contextuelles, on empile les têtes d’attention (multihead attention) sur plusieurs couches. Cette technique permet d’enrichir considérablement les contextes appris par le modèle.
Deux blocs :
- encoder : il prend en entrée une phrase d’une longueur variable et l’encode sous forme d’un vecteur de longueur fixe qui varie en fonction du contexte (principe du plongement lexical). Dans cette phase, le mécanisme d’attention se fait sur tous les mots de la phrase à la fois : chaque mot peut ‘regarder’ tous les autres avant ou après lui. Cette caractéristique se retrouve dans le nom des encoder qui ont comme prefix B pour Bidirectionnel.
- decoder : dans cette phase, chaque mot ne peut ‘regarder’ qu’en arrière ; les mots qui le suivent sont exclus du mécanisme d’attention.
Ces blocs peuvent être utilisés séparément ou ensemble (encoder-decoder ou sequence to sequence model). L’utilisation de ces différentes parties obéit à des traitements particuliers :
Type | Tâches | Models |
---|---|---|
Encoder ou Autoencoder | Classification, reconnaissance d’entités nommées, analyse de sentiment, questions-réponses (extractive) | BERT, ROBERTA |
Decoder | Génération de séquences de mots | GPT x, BLOOM |
Encoder/Decoder ou Sequence to sequence | Résumé, traduction, questions-réponses (génération) | T5 |
L’entraînement
Les Transformers sont entraînés avec plusieurs approches :
- Encoder ou Autoencoder : un mot (token) est masqué aléatoirement au milieu d’une phrase (Masked Language Modeling), il doit être découvert. Le modèle regarde avant et après le token masqué (Encoder Bidirectionnel) ;
- Decoder : le mot (token) suivant une séquence doit être découvert (Causal Language Modeling). Le modèle ne regarde que la séquence d’avant (Decoder Unidirectionnel) ;
- Sequence-to-sequence : plusieurs mots sont masqués (span corruption) et remplacés par un token spécial (sentinel token), le modèle doit trouver les mots manquants.
Cet entraînement de base, dont le principal objectif est d’apprendre la représentation des mots, peut être poursuivi partiellement à partir d’une couche supplémentaire comme indiqué dans l’article consacré à l’entraînement des modèles.