Flip the plug — where do keys and values come from?
The bottom row is a French sentence asking questions (queries). The top row is wherever the keys and values are plugged in. In self mode it's the same sentence; in cross mode it's an English source. Click any bottom token and switch modes — every weight you see is a live Q·K softmax, and the entropy readout tells you how focused the lookup is. Then plug it into a document about the stock market and watch the lookup die.
Watch French words find their English parents
“the black cat drinks milk” → “le chat noir boit du lait”. Click any French word and see its cross-attention over the English source, computed live from shared meaning vectors. Notice chat/noir: French puts the adjective after the noun, so the two attention lines cross — attention handles reordering that word-by-word alignment never could.
A decoder's double life — one eye on each sequence
A real translation decoder uses both sockets at every step: self-attention (green arcs) over what it has already written — for grammar, agreement, fluency — and cross-attention (gold lines) into the source — for meaning. Step through the French sentence being written and watch the division of labor: when writing “noir”, self-attention checks “chat” (masculine → noir, not noire) while cross-attention fetches “black”.
The wrong “bank” — when the clue head grabs nothing
Translating English “bank” into French forces a choice: banque (money) or rive (riverside). This tiny decoder uses two cross-attention heads: a white word head that finds “bank” itself, and a gold clue head that hunts the sentence for disambiguating context. All weights and the final choice are computed live. Try all three sources — especially the one with no clue at all.
Words onto pixels — cross-attention paints where you point
In diffusion models like Stable Diffusion, image patches send queries and your prompt's words offer keys and values — that's cross-attention between text and pixels. Click a word of the prompt to see its live attention heatmap over the image. Then lower the binding strength slider: color words start leaking onto the wrong object — the exact reason image models sometimes give you a blue cat on a red mat when you asked for the opposite.