Каждая позиция смотрит на все остальные и взвешивает их по релевантности — прямой доступ к контексту без рекуррентности.
- совместимость запросов и ключей: скалярное произведение показывает, насколько токены «резонируют»
- нормировка на размерность: без неё скоры растут, softmax насыщается и градиенты исчезают
- значения, которые собираются с весами внимания — то, что реально переносится между позициями
Ключевые тезисы
- Queries, keys и values задают, что ищем, где ищем и что забираем.
- Multi-head позволяет одновременно отслеживать разные типы связей.
- Квадратичная сложность по длине последовательности — главное ограничение.
Какую задачу решает
сжимает всю историю в один , и на длинном входе этот вектор становится узким горлышком: перевести абзац, помня только его «резюме», невозможно. убирает горлышко — вместо одного состояния модель получает доступ ко всем элементам входа сразу и на каждом шаге сама решает, куда смотреть.
Механизм устроен как мягкий поиск по ключам. Каждый элемент выставляет ключ (что у меня есть) и значение (что я отдам), а запрашивающий формирует запрос (что мне нужно). Совпадение запроса с ключами превращается в веса через , и ответ — взвешенная сумма значений. Никакой рекуррентности: все позиции считаются параллельно, а путь между любыми двумя элементами равен одному шагу.
Фраза: «Кот не поместился в коробку, потому что он был слишком большой». Чтобы понять, к чему относится «он», модель формирует из этого слова запрос и сравнивает его с ключами всех слов предложения. У слова «кот» совпадение выше, чем у «коробки», — отдаёт ему вес порядка 0.6, и в представление «он» подмешивается значение «кота». Замените конец на «слишком маленькая» — и вес перетечёт к «коробке». Это то самое рассуждение, которое должна была бы протащить через сжатое состояние.
Подробный разбор
Каждый порождает три : query («что я ищу»), key («чем я могу быть полезен») и value («что я отдам, если меня выберут»). Совместимость запроса и ключа задаётся скалярным произведением.
- номер или количество: индекс шага, число соседей, кластеров или позиций
- транспонирование: строка вместо столбца
Деление на не косметика: при большой размерности скалярные произведения растут, насыщается и исчезают.
Одна голова усредняет все типы связей. Несколько голов работают в разных подпространствах: одна отслеживает синтаксис, другая — кореференцию, третья — позиционную близость. Результаты конкатенируются и проецируются обратно.
- Padding mask — не смотреть на технические токены-заполнители.
- Causal mask — в декодере запрещает видеть будущие позиции: без неё авторегрессионное обучение было бы жульничеством.
- Cross-attention — запросы из декодера, ключи и значения из энкодера: так работает перевод и .
Сложность — по длине последовательности. Отсюда все усилия последних лет: FlashAttention (та же математика, но эффективная работа с памятью), разреженное и линейное .
Где применяется
- Основной строительный блок всех современных языковых и .
- Cross-attention сшивает модальности: текстовый запрос управляет генерацией изображения, картинка отвечает на вопрос.
- Рекомендации по истории пользователя выделяет релевантные прошлые действия вместо усреднения всей истории.
- Агрегация в GAT взвешивает соседей вершины вместо равномерного усреднения.
- Анализ моделиКарты дают первую подсказку о том, какие связи модель использует.
Плюсы, минусы и альтернативы
Плюсы
- Прямая связь между любыми двумя позициями — длина пути 1 вместо у рекуррентности.
- Полная параллельность по позициям: обучение отлично ложится на .
- Динамический вес: важность соседа зависит от содержимого, а не от расстояния.
- Один и тот же механизм работает для текста, изображений, звука и .
- Карты дают хоть какую-то наблюдаемость внутрь модели.
Минусы
- Сложность по времени и памяти — длинный контекст дорог.
- Порядок не учитывается вообще: без позиционного кодирования вход для — множество, а не последовательность.
- Веса — не объяснение: высокое внимание не означает причинного вклада.
- На коротких входах проигрывает свёртке по стоимости при том же качестве.
- Требует много данных: встроенных допущений о структуре у нет.
Брать, если
- Нужны связи между далёкими элементами последовательности.
- Важность соседа должна зависеть от содержимого, а не от фиксированного окна.
- Нужно связать две разные модальности или две последовательности.
Не брать, если
- Последовательности очень длинные и бюджет ограничен — смотрите линейные приближения или .
- Данных мало: со своими допущениями обучится лучше.
- Нужно настоящее объяснение решения — берите инструменты интерпретируемости, а не карты .
Чем заменяют
Видеолекции
Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.
Связанные темы
Внимание и трансформеры
Transformers85%
Трансформеры · Глубокое обучениеАрхитектура целиком на внимании: параллельная обработка последовательности вместо пошаговой.
Attention85%
Внимание в NLP · Обработка естественного языкаИзначально придумано, чтобы декодер перевода мог смотреть на нужные слова исходного предложения.
Transformers85%
Трансформеры в NLP · Обработка естественного языкаОснова всех современных языковых моделей: encoder, decoder или их комбинация.
BERT85%
BERT · Обработка естественного языкаДвунаправленный энкодер, предобученный на восстановлении замаскированных токенов.
GPT85%
GPT · Обработка естественного языкаАвторегрессионный декодер: предсказывает следующий токен, что оказалось достаточно универсальной задачей.
Vision Transformers85%
Vision Transformers · Компьютерное зрениеИзображение режется на патчи, которые обрабатываются как последовательность токенов.
Transformer forecasting85%
Трансформеры для прогноза · Временные рядыВнимание над длинными горизонтами: Informer, Autoformer, PatchTST, TFT.
LLM85%
Большие языковые модели · Генеративный ИИТрансформеры-декодеры, обученные на огромных корпусах предсказывать следующий токен.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Query, Key, Value
Три проекции одного и того же входа: запрос ищет, ключ отвечает за совпадение, значение переносит содержимое.
Разбор ниже: Query, Key, ValueScaled dot-product
: деление на не даёт насытиться при большой размерности.
Разбор ниже: Query, Key, ValueВеса внимания
Строка после — распределение «куда смотрит» данная позиция. Их визуализируют, но как объяснение читать осторожно.
Разбор ниже: Query, Key, ValueMulti-head
Несколько голов , работающих параллельно в разных подпространствах: одна ловит синтаксис, другая — кореференцию, третья — позицию.
Разбор ниже: Multi-head и маскиSelf-attention
Q, K и V берутся из одной последовательности — элементы смотрят друг на друга. Основа .
Разбор ниже: Query, Key, ValueCross-attention
Q из одной последовательности, K и V из другой: так декодер смотрит на энкодер, а картинка — на текстовый запрос.
Разбор ниже: Multi-head и маскиПрофильная компетенция для ролей: NLP-инженер, LLM-инженер, Исследователь, Инженер речи.
Спрашивают на собеседовании: Яндекс — NLP, МТС — Речь и разговорный ИИ.
Тема встречается в тестах по направлениям — ошибки приведут обратно на эту страницу.
Глава «Глубокое обучение» последний раз правилась . Нашли ошибку — напишите.