Cross Attention : Définition et Exemples
Mécanisme d'attention qui permet à un modèle de mettre en relation deux séquences différentes, comme une image et un texte, pour que chaque élément d'une séquence puisse "consulter" les éléments de l'autre.
Définition complète
Le Cross Attention (ou attention croisée) est un mécanisme fondamental dans les architectures Transformer qui permet à deux séquences distinctes d'interagir entre elles. Contrairement au Self Attention, où une séquence s'attend elle-même, le Cross Attention utilise une séquence comme source de requêtes (queries) et une autre comme source de clés (keys) et de valeurs (values). Cela permet au modèle de déterminer quelles parties d'une séquence sont pertinentes pour chaque élément de l'autre.
Ce mécanisme a été introduit dans l'architecture Transformer originale de 2017 ("Attention Is All You Need") au sein du décodeur, où la séquence en cours de génération interroge la séquence d'entrée encodée. Par exemple, lors d'une traduction automatique, chaque mot généré dans la langue cible peut "regarder" l'ensemble de la phrase source pour déterminer quels mots sont les plus pertinents à ce stade de la traduction.
Le Cross Attention est devenu un composant essentiel des modèles multimodaux. Dans les systèmes de génération d'images comme Stable Diffusion, il permet au texte descriptif (le prompt) de guider précisément la création visuelle : chaque région de l'image peut s'appuyer sur les mots les plus pertinents du prompt. C'est ce mécanisme qui explique pourquoi la formulation d'un prompt influence si fortement le résultat visuel généré.
En pratique, le Cross Attention fonctionne en trois étapes : la première séquence est projetée en vecteurs de requêtes (Q), la seconde en vecteurs de clés (K) et de valeurs (V). Un score d'attention est calculé entre chaque requête et chaque clé, puis normalisé par softmax. Ces scores pondèrent les valeurs pour produire la sortie. Ce mécanisme est différentiable et entraînable de bout en bout, ce qui permet au modèle d'apprendre automatiquement quelles correspondances inter-séquences sont utiles pour la tâche.
Étymologie
Le terme combine "cross" (croisé en anglais), indiquant l'interaction entre deux sources différentes, et "attention", le mécanisme de pondération sélective de l'information introduit par Bahdanau et al. en 2014 puis popularisé par l'architecture Transformer en 2017.
Exemples concrets
Génération d'images avec Stable Diffusion
A serene Japanese garden at sunset, watercolor style — ici, le cross attention relie chaque mot du prompt ("Japanese garden", "sunset", "watercolor") à des régions spatiales spécifiques de l'image en cours de génération.Traduction automatique avec un Transformer
Lors de la traduction de "The cat sat on the mat" en français, le cross attention permet au décodeur de relier "chat" à "cat" et "tapis" à "mat" au moment de générer chaque mot cible.
Modèles multimodaux (GPT-4V, Gemini)
Quand on soumet une image avec la question "Que montre ce graphique ?", le cross attention permet au modèle de langage de consulter les régions pertinentes de l'image encodée pour formuler sa réponse textuelle.
Usage pratique
En prompt engineering pour la génération d'images, comprendre le cross attention aide à structurer ses prompts : les mots-clés les plus importants doivent être placés de manière claire car chaque token influence directement les zones d'attention du modèle. Utiliser des virgules et des groupes de mots distincts permet au cross attention de mieux associer chaque concept à la bonne région visuelle. Pour les modèles texte-à-texte, ce mécanisme explique pourquoi fournir un contexte source bien structuré (document de référence, exemples) améliore significativement la qualité des réponses.
Concepts liés
FAQ
Quelle est la différence entre Self Attention et Cross Attention ?
Pourquoi le Cross Attention est-il si important dans la génération d'images par IA ?
Comment le Cross Attention influence-t-il la rédaction de prompts ?
Voir aussi
Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter.