Self-attention против cross-attention
Мы разобрали self-attention. Есть и второй режим — cross-attention. Этот короткий урок различает их и показывает, где применяется каждый.
Cross-attention — внимание, где запросы берутся из одной последовательности, а ключи и значения — из другой, что связывает два разных потока информации.
Self-attention: смотрим сами на себя
В self-attention (мы его уже считали) query, key и value происходят из одной и той же последовательности. Токены предложения смотрят друг на друга, чтобы уточнить свой смысл по контексту. Это основной механизм внутри GPT-подобных моделей: каждый токен обогащается информацией от остальных токенов того же текста.
Cross-attention: смотрим на другой источник
В cross-attention запросы берутся из одной последовательности, а ключи и значения — из другой. Классический пример — машинный перевод в архитектуре энкодер-декодер: декодер, порождая перевод, через cross-attention «заглядывает» в закодированное исходное предложение. Query — это текущее состояние перевода («что я генерирую сейчас»), а key/value — представление оригинала («что было в исходнике»).
| Self-attention | Cross-attention | |
| Откуда Q | из последовательности X | из последовательности X |
| Откуда K, V | из той же X | из другой последовательности Y |
| Зачем | понять токен по контексту | связать два потока (например, перевод и оригинал) |
Где какой режим встречается
- Декодер-онли (GPT, Claude): только self-attention. Модель работает с одной последовательностью — запрос и ответ идут единым потоком токенов, отдельного «источника» нет.
- Энкодер-декодер (классический перевод, T5): self-attention внутри энкодера, self-attention внутри декодера и cross-attention из декодера в энкодер.
- Мультимодальные модели: cross-attention часто связывает текст с другим типом данных — например, токены ответа «смотрят» на представление картинки.
Почему современные чат-LLM — декодер-онли
Большинство популярных чат-моделей построены по схеме декодер-онли: всё (системный промпт, вопрос, ответ) — одна последовательность токенов, и работает только self-attention с причинной маской (о ней — в следующем разделе). Это проще, отлично масштабируется и идеально ложится на задачу «предсказать следующий токен». Cross-attention же незаменим там, где есть два явно разных входа — оригинал и перевод, картинка и подпись.
Итог
- Self-attention: Q, K, V из одной последовательности — токены уточняют смысл по контексту.
- Cross-attention: Q из одной последовательности, K и V — из другой; связывает два потока.
- GPT-подобные модели — декодер-онли, только self-attention.
- Cross-attention живёт в энкодер-декодерах (перевод) и мультимодальных моделях.