Video thumbnail

    [Intermédiaire] La Self-Attention dans un Transformer, c'est quoi ?

    Valuable insights

    1.La Self-Attention est le cœur des Transformers: L'opération de self-attention, introduite en 2017/2018, est l'innovation clé qui a permis l'existence des modèles modernes comme GPT et d'autres systèmes d'IA générative.

    2.Distinction entre tâches de classification et génération: Les tâches de classification utilisent l'intégralité du texte connu, tandis que les modèles génératifs nécessitent une approche séquentielle, nécessitant des contraintes spécifiques sur l'attention.

    3.Transformation des mots en vecteurs: Avant le traitement par le Transformer, chaque mot est converti en un vecteur numérique via un dictionnaire ou vocabulaire, servant d'entrée aux couches du réseau.

    4.Rôle fondamental des vecteurs Q, K et V: Chaque token est projeté en trois vecteurs distincts : Query (Q) pour interroger, Key (K) pour être interrogé, et Value (V) pour transporter l'information pertinente.

    5.Calcul de l'attention par produit vectoriel: La pertinence entre les tokens est mesurée par le produit scalaire entre les vecteurs Query d'un token et les vecteurs Key de tous les autres tokens.

    6.Softmax pour l'allocation de poids: La fonction Softmax normalise les scores bruts en probabilités entre 0 et 1 qui somment à 1, représentant l'allocation de l'attention pour chaque token.

    7.Intégration pondérée des valeurs (V): La sortie finale de l'attention est obtenue en multipliant les scores pondérés par les vecteurs Value correspondants, transmettant ainsi l'information pertinente au token demandeur.

    8.Encodeurs vs Décodeurs : Attention bidirectionnelle ou causale: Les encodeurs permettent une attention bidirectionnelle pour une compréhension complète, alors que les décodeurs imposent une attention causale pour garantir que la prédiction ne dépend que du passé.

    9.Avantage majeur : Traitement parallèle: La structure du Transformer permet de traiter l'intégralité de la séquence simultanément, exploitant massivement le calcul parallèle des GPU, accélérant l'entraînement de manière significative.

    10.Inconvénient : Coût quadratique de la complexité: La création de la matrice d'interaction entre toutes les paires de clés et requêtes entraîne une complexité en $L^2$ (où $L$ est la longueur de la séquence), ce qui est coûteux.

    11.Multi-Head Self Attention pour la richesse contextuelle: L'utilisation de plusieurs têtes d'attention en parallèle permet au modèle d'analyser simultanément différentes facettes relationnelles au sein de la même séquence d'entrée.

    Introduction à la Self-Attention dans les Transformers

    L'opération centrale des architectures Transformer, introduite dans un article fondamental en 2017, est nommée la self-attention. Cette innovation s'est avérée extrêmement importante, constituant la base permettant l'existence des systèmes d'intelligence artificielle modernes, notamment les grands modèles de langage comme ChatGPT. Le Transformer est désormais au cœur des systèmes de chatbots, des systèmes de génération de parole et des outils de compréhension vocale avancés tels que Whisper. Comprendre cette self-attention est donc crucial pour saisir le fonctionnement de l'IA contemporaine.

    Distinction entre Classification et Génération de Texte

    Lors du traitement de séquences textuelles, telles que l'exemple « le chien mange le chat », deux grandes catégories de tâches se distinguent. La première catégorie concerne les tâches où l'intégralité de la phrase est connue dès le départ. Ces tâches incluent la classification de sentiment (déterminer si la phrase est positive ou négative) ou l'étiquetage morphosyntaxique (part of speech tagging), où l'on cherche à classifier le texte dans son ensemble.

    • Classification de sentiment (positive ou négative).
    • Étiquetage morphosyntaxique (identification des sujets, verbes, etc.).
    • Classification thématique (déterminer si la phrase parle de science ou de mathématiques).

    La seconde catégorie englobe les tâches génératives, typiques des chatbots ou des systèmes de génération de texte. Dans ce cas, le modèle doit produire la suite de la séquence mot par mot, comme continuer la phrase « le chien mange le chat » par d'autres éléments. Ces deux types de tâches imposent des contraintes différentes sur l'architecture même du Transformer.

    Fonctionnement Général du Transformer

    Le processus de traitement commence par la conversion des mots, ou tokens, en données numériques exploitables par le réseau de neurones. Cela s'effectue en utilisant un dictionnaire ou un vocabulaire qui associe à chaque mot un vecteur, c'est-à-dire une suite de nombres (par exemple, -3.6, 0, 0.2, etc.). Ces vecteurs sont ensuite envoyés à travers une série de $L$ couches de Transformer.

    • La self-attention : l'opération essentielle qui permet aux tokens de communiquer et d'évaluer leur interdépendance.
    • Un bloc de traitement subséquent (souvent un Multilayer Perceptron) pour analyser les informations contextuelles agrégées par l'attention.

    Après avoir traversé toutes les couches ($L$ fois), le résultat est acheminé vers une prédiction finale qui correspond à la tâche visée. Pour la classification, cela pourrait être une probabilité entre 0 et 1 ; pour la génération, cela se traduit par une prédiction sur le mot suivant dans la séquence.

    Encodeurs et Décodeurs : Attention Bidirectionnelle vs Causale

    L'architecture Transformer distingue deux types de modèles basés sur la directionnalité de l'attention. Les encodeurs sont conçus pour utiliser une attention bidirectionnelle, ce qui signifie que chaque token peut observer tous les autres tokens de la séquence, y compris ceux qui le suivent. Inversement, les décodeurs doivent impérativement utiliser une attention causale, interdisant aux tokens de voir le futur.

    Si la self-attention du décodeur est autorisée à voir le mot qui vient après, la tâche d'apprentissage devient triviale et le modèle échoue lors de l'application en temps réel car la suite n'existe pas encore.
    Modèle
    Direction de l'Attention
    Communication des Tokens
    Encodeur
    Bidirectionnelle
    Tous les tokens communiquent avec tous les autres.
    Décodeur
    Causale (Masquée)
    Un token ne peut voir que les tokens précédents.

    Dans le cas bidirectionnel de l'encodeur, tous les tokens interagissent librement. Pour le décodeur, l'attention est strictement limitée au passé : le mot « mange » peut voir « chien » et « le », mais « le » ne peut pas voir « mange » ni « chien », afin de simuler la génération séquentielle.

    Implémentation Mathématique de la Self-Attention

    L'implémentation mathématique de cette opération repose sur les concepts décrits dans le papier fondateur de 2018. Bien que la cross-attention existe, l'accent est mis ici sur la self-attention, qui suit un schéma général. Le processus fondamental consiste à déterminer comment les mots d'une séquence donnée vont interagir les uns avec les autres pour construire une représentation contextuelle enrichie.

    Les vecteurs Query (Q), Key (K) et Value (V)

    Pour chaque mot dans la séquence, trois nouveaux vecteurs sont dérivés du vecteur initial du mot : Query (Q), Key (K) et Value (V). Ces dérivations sont réalisées par multiplication avec trois matrices de projection distinctes, notées $W_Q$, $W_K$, et $W_V$. Cette terminologie rappelle les bases de données, où la requête (Query) cherche à matcher des clés (Key) pour récupérer une valeur (Value).

    Calcul de la Matrice d'Attention ($QK^T$)

    L'interaction entre les clés et les requêtes s'effectue via un produit vectoriel. Le calcul de $QK^T$ (Query multiplié par la transposée de Key) produit une matrice d'attention. Cette matrice quantifie le degré d'interaction et de pertinence entre chaque Query et chaque Key de la séquence. Si la séquence a une longueur $L$, cette matrice est de taille $L imes L$.

    Lorsque le modèle apprend, il ajuste ces interactions. Par exemple, si le mot « mange » (un verbe) pose une question, il sera très intéressé par le sujet (« chien ») et l'objet (« chat ») de l'action. La complexité de cette matrice est directement liée à la longueur de la phrase ($L$), résultant en un coût quadratique, soit $L$ fois $L$ interactions.

    Le Rôle de la Fonction Softmax

    Une fois la matrice d'interaction $QK^T$ calculée, une étape de normalisation est appliquée via la fonction Softmax. Cette opération transforme les scores bruts en valeurs comprises entre 0 et 1, avec la contrainte que la somme de ces scores pour un token donné doit être égale à 1. Cela représente une allocation de poids ou de probabilité.

    Il faut vraiment considérer cela comme la requête dans une salle de classe, par exemple.

    Dans l'analogie de la salle de classe, l'enseignant pose une question (la Query). Les étudiants lèvent la main (les Keys) pour indiquer leur capacité à répondre. La Value représente ce que chaque étudiant a à dire. Le Softmax détermine alors la proportion de l'attention que l'enseignant accorde à chaque réponse potentielle, assurant une distribution totale de l'attention à 100 %.

    Intégration de la Value (V) pour la Pondération

    L'étape finale de l'attention consiste à intégrer les vecteurs Value (V) en utilisant les scores normalisés obtenus par le Softmax. La formule complète est : $ ext{Softmax}(QK^T / ext{√}D_k) imes V$. Le terme $ ext{√}D_k$ est un facteur de mise à l'échelle qui n'est pas critique pour la compréhension intuitive mais sert à stabiliser les gradients.

    Si, par exemple, le score Softmax entre le mot « mange » et le mot « le » est très proche de zéro en raison d'une faible pertinence, la Value associée au token « le » sera très peu transmise à la représentation finale de « mange ». Inversement, si le score est élevé (par exemple 40 % pour « chien »), 40 % de la Value de « chien » contribuera à la nouvelle représentation de « mange ».

    Visualisation de la Self-Attention

    Cette opération peut être visualisée. Dans le cas d'une attention bidirectionnelle, chaque mot peut examiner l'intégralité de la phrase. Une visualisation abstraite utilise des coordonnées spatiales et des couleurs pour représenter les vecteurs Q, K et V, permettant d'observer comment la Query interagit avec les Keys.

    Interprétation visuelle des scores

    Dans cette représentation, la position de la Query dans l'espace 2D détermine son interaction. Si la Query correspond fortement à une Key de couleur rouge, la couleur résultante sera fortement teintée de rouge, car la pondération de la Value rouge est maximale. Si la Query se situe entre deux Keys (rouge et bleue), la couleur résultante sera un mélange, comme le violet, reflétant la pondération des Values correspondantes.

    En pratique, il ne s'agit pas de couleurs, mais de dimensions sémantiques. La couleur résultante est la pondération des Values de chaque token en fonction de leur interaction avec la Query, définissant ainsi le nouveau sens contextuel du token interrogateur.

    Attention Causale pour les Modèles Génératifs (Masquage)

    Pour les modèles génératifs, qui doivent prédire le token suivant sans connaître la suite, il est impératif d'appliquer une contrainte causale. Cette restriction empêche les mots de voir les tokens futurs dans la matrice d'attention.

    • Masquer toutes les positions futures dans la matrice d'attention $QK^T$.
    • Cela force les scores d'attention pour les tokens futurs à être traités comme s'ils étaient infiniment négatifs avant le Softmax.
    • Permettre le traitement de toute la phrase en parallèle tout en respectant l'ordre séquentiel de la génération.

    Ce masquage permet de conserver l'efficacité du traitement parallèle tout en garantissant que chaque mot ne peut prédire que le mot qui le suit immédiatement.

    Avantage du Traitement Parallèle des Transformers

    La propriété de traitement parallèle est fondamentale à la puissance des Transformers. Contrairement aux architectures précédentes qui nécessitaient des itérations séquentielles pour chaque mot (par exemple, 500 itérations pour une phrase de 500 mots), le Transformer peut traiter l'intégralité de la séquence en une seule passe. Cela maximise l'utilisation des unités de calcul parallèle disponibles dans les GPU.

    Cette capacité à traiter l'input massivement en parallèle réduit drastiquement le temps de calcul nécessaire pour l'entraînement, rendant l'utilisation de modèles très larges économiquement viable, là où les approches séquentielles auraient été prohibitivement longues et coûteuses.

    Avantage de la Mémoire Complète du Transformer

    Un autre avantage significatif réside dans la mémoire complète conservée par le mécanisme d'attention. Chaque token, même le dernier, peut interroger l'intégralité des informations qui l'ont précédé dans la séquence. Le modèle n'oublie jamais le contexte antérieur, ce qui est critique pour des tâches exigeant une cohérence sur de longues distances.

    • La génération de code ou de textes suivant un format strict (template).
    • L'extraction d'une information spécifique à partir d'un document très long (un livre entier).
    • Maintenir une instruction précise donnée au début de la séquence.

    Désavantages et Compromis (Coût Quadratique)

    Le principal désavantage de cette architecture réside dans le coût de la matrice d'attention. La matrice $L imes L$ générée par $QK^T$ impose un coût quadratique par rapport à la longueur de la séquence ($L^2$). Des recherches tentent de ramener ce coût à une complexité linéaire ou log-linéaire, mais le coût quadratique reste la norme par défaut.

    Au bout d'un moment, on fait des compromis et notamment le premier compromis qu'on va faire, c'est que bah le on va compresser notre formation moment donné pour que l'intégralité du texte précédent n'est pas être sauvegardée.

    Pour gérer ce coût, des compromis sont souvent nécessaires, impliquant parfois la compression de l'information passée. Si cette compression est utilisée dans les étapes suivantes, cela peut réintroduire une forme de dépendance séquentielle, car il faut interroger cette compression plutôt que l'information brute mot par mot.

    Multi-Head Self Attention (MHSA)

    La formule de base de la self-attention ($ ext{Softmax}(QK^T / ext{√}D_k) imes V$) est rarement utilisée seule dans les couches du Transformer. La méthode d'utilisation fréquente est la Multi-Head Self Attention (MHSA). Si une seule tête d'attention était utilisée par couche, le modèle ne pourrait poser qu'un nombre très limité de questions contextuelles par token et par couche.

    Dérivation et interaction des têtes

    La MHSA consiste à dériver plusieurs ensembles indépendants de vecteurs Q, K et V simultanément (par exemple $Q_0, K_0, V_0$ et $Q_1, K_1, V_1$, etc.). Chaque ensemble passe par le mécanisme d'attention standard (Scaled Dot-Product Attention) en parallèle, produisant une sortie pour chaque tête d'attention.

    Toutes ces sorties sont ensuite concaténées pour former un grand vecteur unique. Pour permettre à ces différentes perspectives (les têtes) de communiquer entre elles, ce vecteur concaténé passe à travers une dernière multiplication matricielle, généralement désignée par $W_O$ (ou 'out'), produisant le vecteur final de la couche de self-attention.

    Conclusion et Aperçu de la Gated Attention

    La self-attention, définie par la formule impliquant Q, K, V, le Softmax et la pondération, est l'opération fondamentale qui confère aux Transformers leur capacité à modéliser des dépendances complexes dans les données. Après avoir établi cette base générale, les discussions futures pourront explorer des mécanismes plus avancés, tels que la Gated Attention, introduite dans des travaux ultérieurs.

    Questions

    Common questions and answers from the video to help you understand the content better.

    Quel est le rôle principal de la self-attention dans l'architecture Transformer ?

    La self-attention permet aux mots (tokens) d'une séquence de communiquer entre eux, leur offrant la capacité d'évaluer l'importance relative des autres éléments de la phrase pour leur propre représentation contextuelle.

    Quelle est la différence fondamentale entre l'attention utilisée dans les encodeurs et celle utilisée dans les décodeurs ?

    Les encodeurs utilisent une attention bidirectionnelle, permettant de voir toute la séquence pour une compréhension complète, tandis que les décodeurs emploient une attention causale (masquée) pour n'autoriser la consultation que des tokens précédents, essentiel pour la génération séquentielle.

    Pourquoi le traitement parallèle est-il un avantage majeur des Transformers par rapport aux architectures précédentes ?

    Le traitement parallèle permet de traiter l'intégralité de la séquence en une seule passe, exploitant efficacement les capacités de calcul des GPU, contrairement aux architectures séquentielles qui nécessitaient une itération par mot.

    Quel désavantage majeur est associé à la matrice d'attention $QK^T$ dans les Transformers ?

    Le désavantage principal est son coût quadratique par rapport à la longueur de la séquence ($O(L^2)$), ce qui rend le traitement de très longues séquences coûteux en termes de calcul et de mémoire.

    Comment la Multi-Head Self Attention (MHSA) améliore-t-elle la capacité du modèle ?

    La MHSA exécute plusieurs mécanismes d'attention en parallèle (plusieurs « têtes »), permettant au modèle d'analyser simultanément différentes facettes relationnelles au sein de la même séquence d'entrée avant de concaténer et de projeter les résultats.

    Useful links

    These links were generated based on the content of the video to help you deepen your knowledge about the topics discussed.

    This article was AI generated. It may contain errors and should be verified with the original source.
    VideoToWordsClarifyTube

    © 2025 ClarifyTube. All rights reserved.