Tout comme l’encodeur, le décodeur est composé d’une couche d’auto-attention et d’un réseau à propagation avant. Entre les deux, le décodeur contient une couche de masquage d’attention multi-tête. C’est ce qui fait la différence entre l’encodeur et le décodeur. Alors que l’encodeur génère simultanément des plongements de tokens contextualisés, la couche d’attention multi-tête du décodeur utilise un masquage auto-régressif.
Tout d’abord, le décodeur reçoit le vecteur contextuel de l’encodeur. Le décodeur utilise ces représentations vectorielles positionnelles pour calculer des scores d’attention pour chaque token. Ces scores d’attention déterminent dans quelle mesure chaque token de la séquence d’entrée affectera les tokens ultérieurs ; en d’autres termes, les scores déterminent le poids de chaque token dans les déterminations des autres tokens lors de la production de séquences de production.
Une caractéristique importante de cette approche, cependant, c’est que le décodeur n’utilisera pas les tokens futurs pour déterminer les tokens précédents dans la même séquence. La production générée par chaque token dépend uniquement des tokens précédents ; en d’autres termes, lors de la génération de la production d’un token, le décodeur ne prend pas en compte les mots ou tokens suivants après le token en cours. Comme c’est le cas pour de nombreuses techniques d’intelligence artificielle, elle vise à imiter la compréhension conventionnelle de la façon dont les humains traitent les informations, en particulier le langage. Cette approche du traitement de l’information est appelée autorégressive.7