Polydesk-logotype
Polydesk.ai — Header

Cross-Attention (Attention Croisee)

Definition La cross-attention (attention croisee) est un mecanisme d’attention dans lequel les Queries proviennent d’une sequence et les Keys/Values d’une sequence differente. Elle permet a un modele d’integrer l’information d’une source externe dans son traitement, et constitue le pont entre modalites dans les architectures multimodales.
ProprieteDetail
CategorieMecanisme de deep learning
Distinction cleQ vient d’une source, K/V d’une autre (vs self-attention : meme source)
Introduit dansArchitecture encodeur-decodeur (Vaswani et al., 2017)
Utilise dansModeles de diffusion, traduction, modeles multimodaux
Role principalConditionner une generation sur une entree externe (texte, image, audio)

Fonctionnement

Dans la cross-attention, deux sequences distinctes interviennent. La premiere sequence (dite « cible » ou « query sequence ») fournit les Queries : ce sont les elements qui « cherchent » de l’information. La seconde sequence (dite « source » ou « context sequence ») fournit les Keys et les Values : c’est la source d’information consultee.

Concretement, si X est la sequence cible et Y la sequence source, le calcul est : CrossAttn(X, Y) = softmax((XW_Q)(YW_K)^T / sqrt(d_k)) (YW_V). Chaque element de X calcule des scores de pertinence avec tous les elements de Y, et la sortie est une combinaison ponderee des Values de Y, guidee par ces scores.

La cross-attention repond a la question : « Etant donne ce que je suis en train de traiter (Query), quelles parties de la source externe (Keys/Values) sont les plus pertinentes ? » C’est fondamentalement un mecanisme de consultation et d’integration d’information externe.

Cross-attention dans la traduction

L’usage originel de la cross-attention est dans les architectures encodeur-decodeur pour la traduction automatique. L’encodeur traite la phrase source (par exemple en francais) via des couches de self-attention et produit des representations contextualisees. Le decodeur genere la traduction (par exemple en anglais) token par token, et a chaque etape, il utilise la cross-attention pour consulter les representations de la phrase source.

Par exemple, pour traduire « Le chat noir dort » en « The black cat sleeps », quand le decodeur genere « cat », la Query du decodeur pour ce token se focalise (via la cross-attention) sur les representations de « chat » et eventuellement « noir » dans l’encodeur. Cela permet au decodeur de savoir quel concept traduire a chaque etape, meme quand l’ordre des mots differe entre les langues.

Chaque couche du decodeur contient trois sous-blocs : (1) self-attention causale sur les tokens deja generes, (2) cross-attention vers la sortie de l’encodeur, et (3) feedforward network. L’empilement de ces couches permet au decodeur d’integrer progressivement l’information de la source a differents niveaux d’abstraction.

Cross-attention dans les modeles de diffusion

L’application la plus visible de la cross-attention en 2026 est dans les modeles de diffusion conditionnes par du texte, comme Stable Diffusion, Flux et DALL-E 3. C’est le mecanisme qui permet au prompt textuel de guider la generation d’images.

Dans Stable Diffusion, le fonctionnement est le suivant. Le prompt texte est encode par un modele de langage (CLIP ou T5 selon la version) en une sequence de vecteurs. Dans le U-Net de debruitage, les features visuelles a chaque couche fournissent les Queries, et les vecteurs texte fournissent les Keys et Values. Chaque position spatiale de l’image « consulte » le prompt pour savoir quoi generer.

Ce mecanisme explique pourquoi les mots specifiques du prompt influencent des regions specifiques de l’image. Quand le prompt dit « un chat orange sur un tapis bleu », les poids de cross-attention pour « orange » sont eleves dans la region du chat, et ceux pour « bleu » dans la region du tapis. Visualiser ces poids d’attention est une technique courante pour diagnostiquer les problemes de generation (par exemple, quand deux attributs sont incorrectement associes aux mauvais objets).

L’architecture DiT (Diffusion Transformer) utilisee par Flux et SD3 integre la cross-attention differemment. Au lieu d’un U-Net avec des couches de cross-attention intercalees, le DiT traite les tokens visuels et textuels dans un meme Transformer, utilisant des mecanismes d’attention joints (MM-DiT) ou les deux sequences interagissent plus directement.

Cross-attention dans les modeles multimodaux

Les modeles multimodaux utilisent la cross-attention pour fusionner des informations de differentes modalites. Dans les modeles vision-langage comme Flamingo (DeepMind), des couches de cross-attention sont intercalees dans un LLM gele, permettant au modele de langage de consulter les representations visuelles d’une image tout en generant du texte descriptif.

Dans les modeles text-to-video comme Sora, Runway Gen-3 et Veo, la cross-attention connecte le prompt textuel aux representations spatio-temporelles de la video, guidant la generation a la fois dans l’espace et dans le temps.

Dans les systemes de RAG (Retrieval-Augmented Generation), certaines architectures utilisent la cross-attention pour integrer les documents recuperes dans le processus de generation du LLM, au lieu de simplement les concatener dans le prompt.

Cross-attention vs concatenation

Une alternative a la cross-attention est de simplement concatener les deux sequences et d’utiliser de la self-attention sur la sequence combinee. C’est l’approche des LLMs decoder-only : le prompt et les tokens generes forment une seule sequence traitee par self-attention.

La cross-attention offre des avantages specifiques par rapport a la concatenation. Elle separe clairement les roles : la sequence source est en lecture seule (pas modifiee par l’attention), ce qui est appropriate quand l’information source est fixe (un prompt texte, un document de reference). Elle est plus efficace en memoire quand la source est longue et reutilisee : les K/V de la source sont calcules une seule fois et reutilises pour chaque element de la cible. Elle permet de pre-calculer et cacher les representations de la source.

En revanche, la self-attention sur la sequence concatenee permet une interaction bidirectionnelle plus riche entre les deux sequences. C’est pourquoi les LLMs modernes preferent la concatenation (un seul flux de tokens) tandis que les modeles de generation d’images preferent la cross-attention (le texte guide l’image, mais l’image n’a pas besoin de « modifier » le texte).

Techniques avancees

Classifier-Free Guidance et cross-attention

Le Classifier-Free Guidance (CFG), technique standard dans les modeles de diffusion, interagit directement avec la cross-attention. Pendant l’entrainement, le conditionnement texte est aleatoirement ignore (remplace par un embedding vide) avec une probabilite fixe. A l’inference, le modele genere deux predictions : une avec cross-attention conditionnee sur le texte, et une sans conditionnement (cross-attention sur un embedding vide). La sortie finale interpole entre les deux avec un facteur de guidage, amplifiant l’influence du prompt.

Attention masquee et controle fin

Des techniques comme Attend-and-Excite et Structured Diffusion Guidance manipulent directement les poids de cross-attention pour assurer que chaque mot du prompt est correctement represente dans l’image. Si un mot est « ignore » (poids d’attention faibles partout), ces methodes amplifient localement l’attention vers ce mot, ameliorant la fidelite au prompt.

IP-Adapter et conditioning visuel

IP-Adapter (Image Prompt Adapter) utilise un mecanisme de cross-attention supplementaire pour conditionner la generation sur une image de reference au lieu de (ou en plus de) du texte. Les features d’une image source fournissent les K/V, et les features du U-Net fournissent les Q. Cela permet de transferer le style ou le contenu d’une image vers une generation, avec un controle fin via le poids de la cross-attention.

Astuce Polydesk Si vos images generees avec Stable Diffusion n’integrent pas certains elements de votre prompt, le probleme vient souvent de la cross-attention. Augmentez le guidance scale (CFG) pour renforcer l’influence du texte, ou utilisez des outils comme Attend-and-Excite dans ComfyUI pour forcer l’attention sur les mots ignores.

Questions frequentes

Quelle est la difference entre self-attention et cross-attention ?

En self-attention, Q, K et V proviennent de la meme sequence : chaque element attend a tous les autres elements de sa propre sequence. En cross-attention, les Queries viennent d’une sequence et les Keys/Values d’une sequence differente : le modele consulte une source d’information externe pour guider son traitement.

Comment la cross-attention fonctionne-t-elle dans Stable Diffusion ?

Le prompt texte est encode en vecteurs par CLIP ou T5. Dans le U-Net de debruitage, les features visuelles generent les Queries, et les vecteurs texte fournissent les Keys et Values. Chaque position spatiale de l’image « consulte » ainsi le prompt pour determiner quoi generer, creant l’alignement texte-image.

Peut-on visualiser les poids de cross-attention ?

Oui. Des outils comme DAAM (Diffusion Attentive Attribution Maps) permettent de visualiser quelles regions de l’image correspondent a chaque mot du prompt. C’est un excellent outil de diagnostic quand la generation ne correspond pas au prompt : vous pouvez identifier quel mot est mal localise ou ignore.

La cross-attention est-elle utilisee dans les LLMs modernes ?

Les LLMs decoder-only (GPT, Claude, Mistral) n’utilisent pas de cross-attention : ils traitent tout (prompt + generation) comme une seule sequence via self-attention. La cross-attention est surtout utilisee dans les modeles de generation d’images, les architectures encodeur-decodeur (traduction) et certains modeles multimodaux.

Pourquoi le guidance scale (CFG) est-il lie a la cross-attention ?

Le CFG amplifie la difference entre la prediction conditionnee (avec cross-attention vers le texte) et la prediction inconditionnelle (cross-attention vers un embedding vide). Un CFG eleve renforce le signal de la cross-attention textuelle, produisant des images plus fideles au prompt mais potentiellement plus saturees.

Polydesk.ai — Footer