Как устроен механизм внимания (attention) и почему трансформеры вытеснили рекуррентные сети?
Короткий ответ
- Attention взвешивает все токены по релевантности друг другу
- Query, Key, Value — три проекции входных эмбеддингов
- Веса — softmax от скалярных произведений Q и K
- Multi-head: несколько параллельных «взглядов» на связи
- Позиционные эмбеддинги вместо порядка рекуррентности
- Параллелится по всей последовательности, в отличие от RNN
- Прямой доступ к дальнему контексту без затухания
Self-attention позволяет каждому токену напрямую взвешенно смотреть на все остальные, что дало трансформерам параллельное обучение и работу с длинным контекстом.
Как сказать вслух
пример ответаВнимание — это способ для каждого слова посмотреть на все остальные слова последовательности и взять из них информацию пропорционально релевантности. Технически каждый токен получает три представления — запрос, ключ и значение, и веса считаются по совпадению запросов с ключами. Главное преимущество перед рекуррентными сетями — всё считается параллельно и любые два токена связаны напрямую, а не через длинную цепочку шагов.
Подробный ответ
Основной ответ
В self-attention каждый токен проецируется в три вектора: query, key и value. Релевантность пары токенов — скалярное произведение query одного на key другого; произведения масштабируются на корень из размерности, проходят softmax и становятся весами, с которыми суммируются values. Multi-head attention повторяет это в нескольких подпространствах параллельно, позволяя одновременно ловить разные типы связей — синтаксис, кореференцию, позиции. Поскольку сам механизм не знает порядка, добавляются позиционные кодировки (сейчас чаще RoPE). Блок трансформера — attention плюс полносвязная сеть с residual-связями и нормализацией. Преимущества над RNN: полная параллелизация обучения по последовательности, путь длины один между любыми токенами (нет затухания градиентов на длинных зависимостях) и отличная масштабируемость, что и сделало возможными современные LLM. Цена — квадратичная сложность по длине последовательности.
Ключевые моменты
- QKV-механика. softmax(QK^T / sqrt(d)) V: веса внимания — нормированные сходства запросов и ключей.
- Multi-head. Несколько голов в разных подпространствах ловят разные типы отношений между токенами.
- Почему не RNN. RNN обрабатывает токены последовательно и теряет дальний контекст; attention параллелен и связывает токены напрямую.
- Ограничение. Квадратичная стоимость по длине контекста; отсюда KV-кэш, flash attention и спарс-варианты.
Практический контекст
С распространением LLM вопрос стал обязательным даже вне NLP-команд. Глубину проверяют уточнениями: зачем делить на корень из размерности, зачем маска в декодере, что такое KV-кэш при генерации. Достаточно уверенно объяснить QKV на пальцах и назвать причины победы над RNN; формулу писать обычно не требуют, но её знание — плюс.
Частые ошибки
- Рассказывают про «важность слов» без механики query/key/value
- Не могут объяснить, почему трансформеры обучаются быстрее RNN
- Забывают про позиционные кодировки — без них модель не видит порядок токенов