Transformer и attention: как модель связывает части контекста

Transformer обрабатывает последовательность через повторяющиеся блоки attention и преобразований признаков. Attention позволяет каждому положению вычислять взвешенную смесь…

Краткий ответ

Transformer обрабатывает последовательность через повторяющиеся блоки attention и преобразований признаков. Attention позволяет каждому положению вычислять взвешенную смесь информации из разрешённых позиций.

Transformer обрабатывает последовательность через повторяющиеся блоки attention и преобразований признаков. Attention позволяет каждому положению вычислять взвешенную смесь информации из разрешённых позиций. Это не «внимание» в психологическом смысле и не готовое объяснение решения, а дифференцируемая операция над векторами.

Запросы, ключи и значения

Для каждого входного представления слой вычисляет три вектора: query, key и value. Сходство query текущего положения с ключами других положений превращается в веса после масштабирования и softmax. Выход — взвешенная сумма векторов value.

Query можно понимать как запрос текущей позиции, key — как признак для сопоставления, value — как передаваемое содержимое. Это полезная инженерная аналогия, но веса обучаются, а не задаются словарными правилами. Высокий вес показывает сильный вклад в конкретной голове и слое, но сам по себе не доказывает причинное объяснение ответа.

Multi-head и последовательность блоков

Multi-head attention запускает несколько наборов проекций параллельно. Разные головы могут специализироваться на разных отношениях, но у каждой нет обязательной заранее заданной роли. Их выходы объединяются и снова проецируются.

После attention обычно работает позиционно-независимая feed-forward сеть. Residual-связи помогают передавать сигнал через глубину, нормализация стабилизирует оптимизацию. Повторение блоков позволяет строить всё более контекстные признаки. Большая часть параметров Transformer находится не только в attention, но и в матрицах проекций, feed-forward слоях и эмбеддингах.

Порядок и причинная маска

Обычный self-attention без дополнительной информации не различает перестановку элементов. Поэтому модель получает позиционное кодирование. В современных системах используются разные схемы, включая обучаемые позиции и вращательные представления RoPE; у каждой есть ограничения при переносе на длины, отличающиеся от обучения.

Авторегрессионный decoder применяет causal mask: позиция не должна видеть будущие токены целевого текста. Во время обучения все позиции можно вычислять параллельно с маской, но при генерации следующий токен появляется только после предыдущего. Эта последовательность объясняет заметную стоимость длинного ответа.

Квадратичная стоимость и оптимизации

Матрица обычного attention содержит пары позиций, поэтому вычислительная и память-зависимая стоимость растёт примерно квадратично с длиной последовательности. Это не значит, что вся модель всегда имеет строго одну и ту же асимптотику: существуют локальные, разреженные и линейные варианты, а точные реализации вроде FlashAttention сокращают обмен с памятью без изменения математического результата attention.

Длинное заявленное окно контекста не гарантирует одинаково хорошее использование каждого токена. Архитектура, позиционное обучение, данные и тестирование длинных зависимостей остаются важны.

Мысленный эксперимент с местоимением

Рассмотрите фразу: «Мария положила книгу на стол, потому что она была тяжёлой». Для местоимения «она» выпишите возможные источники: Мария, книга, стол. Представьте три attention-head: одна сравнивает грамматическое согласование, другая — типичные причинные связи, третья — расстояние.

Поменяйте «тяжёлой» на «шатким» и проследите, как вероятные связи меняются. Эксперимент показывает, почему контекстное представление формируется сочетанием сигналов, а не одним правилом. Он не доказывает, что конкретная реальная модель использует именно такие головы.

Частые вопросы

Attention хранит факты модели?

Фактические и языковые зависимости распределены по параметрам многих компонентов. Attention маршрутизирует контекст во время прохода, но не является отдельной базой знаний.

Можно ли считать attention-карту объяснением ответа?

Её можно исследовать как один диагностический сигнал. Однако веса не всегда совпадают с причинным вкладом, а итог проходит через множество голов, residual-связей и нелинейных слоёв.

Почему Transformer генерирует токены последовательно, если обучается параллельно?

При обучении правильные предыдущие токены уже известны, поэтому masked-предсказания считаются сразу для многих позиций. При выводе следующий правильный токен неизвестен: его нужно выбрать, добавить в контекст и только затем продолжить.

Что важно запомнить

https://yadro-code.ru/lessons/without-university/generative-ai-foundations/generative-ai-03