P

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

Self AttentionTransformerMulti-Head AttentionDiffusion Model

FAQ

Quelle est la différence entre Self Attention et Cross Attention ?
Le Self Attention permet à une séquence de s'analyser elle-même : chaque élément regarde tous les autres éléments de la même séquence. Le Cross Attention, en revanche, met en relation deux séquences distinctes : les requêtes viennent d'une séquence et les clés/valeurs d'une autre. Par exemple, dans un traducteur, le Self Attention analyse la phrase source en interne, puis le Cross Attention permet à la phrase cible en cours de génération de consulter cette phrase source.
Pourquoi le Cross Attention est-il si important dans la génération d'images par IA ?
Dans les modèles comme Stable Diffusion, le Cross Attention est le pont entre le texte du prompt et l'image générée. C'est lui qui détermine comment chaque mot influence chaque zone de l'image. Sans ce mécanisme, le modèle ne pourrait pas traduire fidèlement les instructions textuelles en contenu visuel. C'est aussi pourquoi des techniques comme le prompt weighting (pondération de mots) fonctionnent : elles modifient directement les scores de cross attention.
Comment le Cross Attention influence-t-il la rédaction de prompts ?
Le Cross Attention traite chaque token du prompt individuellement pour calculer des scores d'attention avec le contenu généré. Cela signifie que la clarté et la séparation des concepts dans un prompt sont cruciales. Des instructions ambiguës ou fusionnées peuvent créer des interférences dans les scores d'attention. Séparer les concepts par des virgules, utiliser des parenthèses pour grouper des idées, et placer les éléments importants en début de prompt sont des stratégies directement liées au fonctionnement du cross attention.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.