Dans l'auto-attention, Q, K et V proviennent tous de la même séquence — chaque token assiste aux autres tokens de la même entrée. Dans l'attention croisée, Q provient d'une source (par ex. le décodeur) et K, V d'une autre (par ex. l'encodeur). Le token du décodeur demande « qu'est-ce qui dans l'entrée est pertinent pour ce que je génère maintenant ? » et le mécanisme d'attention fournit un résumé pondéré de l'entrée.
Les modèles text-to-image utilisent l'attention croisée pour conditionner la génération d'image sur le texte. Le prompt textuel est encodé en embeddings (via CLIP ou T5), et à chaque étape de débruitage, les features de l'image assistent aux embeddings textuels par les couches d'attention croisée. C'est ainsi que le modèle sait générer un « chat sur une planche de surf » — chaque position spatiale dans l'image assiste aux mots pertinents. Manipuler ces cartes d'attention croisée est la base des techniques comme la pondération de prompt et l'édition d'attention.
L'auto-attention et l'attention croisée ont des profils computationnels différents. L'auto-attention est quadratique par rapport à la longueur de la séquence (chaque token assiste à chaque autre token). L'attention croisée est linéaire en la longueur du décodeur fois la longueur de l'encodeur (chaque token du décodeur assiste à tous les tokens de l'encodeur). En pratique, la sortie de l'encodeur est souvent beaucoup plus courte que la séquence du décodeur, rendant l'attention croisée moins coûteuse que l'auto-attention du décodeur.