Aller au contenu principal

Chargement du lab visuel…

#attentionLLM et transformers

Self-attention : chaque mot regarde les autres.

Ce que tu vas manipuler

  1. Bienvenue dans #attention. En bas, les douze tokens de « le chat noir dort sur le canapé parce qu'il est fatigué ». Le token surélevé, noir, est la requête : les arcs roses qui en partent vont vers chaque mot, et leur épaisseur est le poids d'attention — l'arc le plus épais file vers « chat », le nom que l'adjectif qualifie. C'est le mécanisme au cœur des transformers : chaque mot fabrique une requête Q, la compare (produit scalaire) à la clé K de tous les mots, un softmax transforme ces scores en poids qui somment à 1, et la sortie du mot est la moyenne pondérée des valeurs V. Question concrète : comment un modèle sait-il que « il » désigne le chat et non le canapé ? Il regarde.
  2. Fais regarder le pronom : tape /requete il.
  3. Le softmax a une température T : on divise les scores par T avant l'exponentielle. Baisse-la : /temperature 0.3.
  4. Maintenant l'inverse : /temperature 3.
  5. Chaque token est requête à son tour : cela fait une matrice n × n. Remets d'abord /temperature 1, puis passe en vue matrice : /affichage matrice.
  6. Un modèle de langue génère de gauche à droite : quand il calcule le mot n° 5, les mots 6 à 12 n'existent pas encore. On l'impose avec le masque causal : /masque on.
  7. Une seule tête = une seule relation. Les transformers en empilent plusieurs en parallèle : /tete toutes.
  8. À toi de jouer : /tete 2 puis /requete dort (le verbe cherche son sujet), /exemple accord (« grise » regarde « chatte », « noir » regarde « chien »), /affichage arcs pour revenir aux arcs, /detail chat (le calcul pas à pas : q·k, ÷√d, ÷T, exp, normalisation), /graine 7 (les nombres bougent, les relations restent), /reinit pour repartir. Prochaine étape : le canal #transformer-bloc, où cette attention s'empile avec des couches denses et des connexions résiduelles.

Commandes du canal

  • /phrase <mot>Remplace la phrase analysée (toute la ligne ; 2 à 12 tokens).
  • /requete <mot>Choisit le token qui « regarde » les autres (un mot de la phrase, ou son numéro).
  • /tete <1|2|3|4|toutes>Affiche une seule tête d'attention, ou les quatre superposées.
  • /temperature <T=0.1..5>Température du softmax : basse = attention tranchée, haute = diluée.
  • /masque <on|off>Masque causal : chaque token ne voit que les tokens qui le précèdent (et lui-même).
  • /affichage <arcs|matrice>Arcs depuis le token requête, ou matrice d'attention complète.
  • /exemple <accord|pronom|longue>Charge une phrase préparée avec sa requête la plus parlante.
  • /graine <n=1..999>Change le bruit déterministe des embeddings et des projections Q/K/V.
  • /detail <mot>Décompose le poids entre la requête et ce token : q·k, ÷√d, ÷T, exp, normalisation.
  • /reinitRevient à la phrase du chat, requête « noir », tête 1, T = 1, sans masque, vue arcs.

Glossaire

Attention
Opération qui permet à chaque élément d'une séquence de pondérer les autres selon leur pertinence, puis de combiner leurs informations. Dans la scène : les arcs qui partent du token requête, plus épais vers les mots qui comptent pour lui.
Requête, clé, valeur (Q, K, V)
Trois projections linéaires du même vecteur d'entrée. La requête dit ce que le mot cherche, la clé ce que chaque mot offre, la valeur ce qu'il transmet si on le regarde. Le score q·k mesure l'accord entre ce qu'on cherche et ce qui est offert.
Softmax et température
Transforme des scores quelconques en poids positifs qui somment à 1 : exp(s_j / T) / Σ exp(s_k / T). Une température T basse amplifie les écarts (attention tranchée), une température haute les écrase (attention diluée, proche de l'uniforme).
Produit scalaire mis à l'échelle
softmax(Q·Kᵀ / √d_k)·V : les scores sont divisés par la racine de la dimension des clés (√4 = 2 ici). Sans cela, en grande dimension, les produits scalaires deviennent énormes et le softmax sature, tuant le gradient.
Attention multi-têtes
Plusieurs attentions calculées en parallèle avec des projections Q, K, V différentes, puis concaténées et projetées. Chaque tête peut se spécialiser dans une relation : accord, sujet–verbe, sens, position… /tete toutes les superpose.
Masque causal
Met à −∞ les scores vers les tokens futurs avant le softmax : leur poids devient 0 et la matrice devient triangulaire inférieure. C'est ce qui permet à un décodeur (GPT) de générer mot par mot sans tricher en lisant la suite.
Self-attention et attention croisée
En self-attention, requêtes, clés et valeurs viennent de la même séquence : la phrase se regarde elle-même (ce canal). En attention croisée, les requêtes viennent d'une séquence (la traduction en cours) et les clés/valeurs d'une autre (la phrase source).
Matrice d'attention
Tableau n × n des poids : la ligne i donne la répartition de l'attention du token i sur tous les tokens, et somme à 1. /affichage matrice la pose au sol, un cube par case.
Vecteur contextualisé
Sortie de l'attention pour un token : la moyenne des valeurs V pondérée par ses poids. Le vecteur de « il » contient désormais un peu de « chat » : c'est ainsi qu'un mot acquiert un sens dépendant de sa phrase, là où un embedding statique n'en a qu'un.
Entropie de l'attention
Entropie de Shannon d'une ligne de la matrice, en bits : 0 si le token ne regarde qu'un seul mot, log₂(n) s'il regarde tous les mots à égalité. Elle mesure si l'attention est tranchée ou diluée ; la température la fait varier directement.

Autres canaux du thème LLM et transformers

  • #tokenisationTokenisation et BPE : comment un LLM découpe le texte.
  • #attentionSelf-attention : chaque mot regarde les autres.
  • #transformer-blocLe bloc transformer : attention, résidus, normalisation, FFN.
  • #generation-temperatureGénération : température, top-k et top-p.
  • #ragRAG : répondre en s'appuyant sur ses documents.
  • #alignement-rlhfAlignement et RLHF : apprendre ce que les humains préfèrent.