Что именно делает механизм внимания и откуда берутся Q/K/V? Читать Механизм внимания в одной статье
Что именно делает механизм внимания и откуда берутся Q/K/V? Читать Механизм внимания в одной статье

Эта статья также опубликована на моем личном сайте. Картинки с формулами отображаются лучше. Добро пожаловать на сайт: https://lulaoshi.info/machine-learning/attention/transformer-attention.html.

Механизм внимания используется в статье Transformer[^1]. Основная формула механизма внимания такова:

Attention(Q, K, V) = Softmax(\frac{QK^\top}{\sqrt{d_{k}}})V

в этой формулеQKиVСоответственно представляютQuery、KeyиValue,Математику, происходящую между ними, нелегко понять.

Начнем с векторного скалярного произведения

Начнем с

Softmax(\mathbf{X}\mathbf{X}^\top)\mathbf{X}

Такая формула начинается.

Во-первых, вам необходимо рассмотреть понятие скалярного произведения векторов (Dot Product). Для двух векторов-строк

\mathbf{x}

и

\mathbf{y}

\mathbf{x} = [x_{0}, x_{1}, \cdots , x_{n}]
\mathbf{y} = [y_{0}, y_{1}, \cdots , y_{n}]
\mathbf{x} \cdot \mathbf{y} = x_{0}y_{0} + x_{1}y_{1} + \cdots + x_{n}y_{n}

Геометрический смысл векторного скалярного произведения: вектор

\mathbf{x}

в векторе

\mathbf{y}

Тогда проекция в направлении связана с вектором

\mathbf{y}

Произведение может отражать сходство двух векторов. Чем больше результат векторного скалярного произведения, тем более похожи два вектора.

матрица

\mathbf{X}

Зависит от

n

состоит из векторов-строок. Например, мы можем преобразовать вектор-строку

\mathbf{x}_{i}

Понимаемый как вектор слов, существует в общей сложности

n

векторы-строки

n \times n

Квадратная матрица:

\mathbf{X} = \left[ \begin{matrix} \mathbf{x}_{0} \\ \mathbf{x}_{1} \\ \vdots \\ \mathbf{x}_{n} \end{matrix} \right] \ \mathbf{X}^\top = \left[ \begin{matrix} \mathbf{x}_{0}^\top & \mathbf{x}_{1}^\top & \cdots & \mathbf{x}_{n}^\top \end{matrix} \right]

матрица

\mathbf{X}

транспонирование иматрица

\mathbf{X}^\top

Умножить,

\mathbf{X}

Каждая строка в

\mathbf{X}^\top

Умножьте каждый столбец приезжать, чтобы получить элемент целевой матрицы,

\mathbf{X}\mathbf{X}^\top

Это может быть выражено как:

\mathbf{X}\mathbf{X}^\top = \left[ \begin{matrix} \mathbf{x}_{0}\cdot \mathbf{x}_{0} & \mathbf{x}_{0}\cdot \mathbf{x}_{1} & \cdots & \mathbf{x}_{0} \cdot \mathbf{x}_{n} \\ \mathbf{x}_{1}\cdot \mathbf{x}_{0} & \mathbf{x}_{1}\cdot \mathbf{x}_{1} & \cdots & \mathbf{x}_{1} \cdot \mathbf{x}_{n} \\ \vdots & \vdots & \vdots & \vdots \\ \mathbf{x}_{n}\cdot \mathbf{x}_{0} & \mathbf{x}_{n}\cdot \mathbf{x}_{1} & \cdots & \mathbf{x}_{n} \cdot \mathbf{x}_{n} \\ \end{matrix} \right]

к

\mathbf{X}\mathbf{X}^\top

Например, элементы первой строки и первого столбца на самом деле являются векторами.

\mathbf{x}_{0}

и

\mathbf{x}_{0}

Самостоятельное умножение точек на самом деле

\mathbf{x}_{0}

Сходство между собой и самим собой, то элементы в первой строке и втором столбце равны

\mathbf{x}_{0}

и

\mathbf{x}_{1}

сходство между ними.

Следующий пример векторной матрица слов,В этой матрице,Векторы слов по одному слову в строке для. Сама транспозиция матриц, Умножить, генерирует целевую матрицу.,Целевая матрица на самом деле представляет собой вектор слова и подобие векторов слов каждого слова.

Умножение векторов слов матрица

Что, если добавить Softmax? Производим следующие расчеты:

Softmax(\mathbf{X}\mathbf{X}^\top)

. Функция Softmax — нормализовать вектор,Тогда это нормализация сходства,приезжать получил нормализованную матрицу веса,матрицасередина,Чем больше вес определенного значения,Это означает, что сходство выше.

Нормализация матрицы сходства

Исходя из этого, сделайте еще один шаг вперед:

Softmax(\mathbf{X}\mathbf{X}^\top)\mathbf{X}

,получитприезжать Нормализованный весматрицаи Умножение векторов слов матрица。массаматрицасередина某一行отдельныйстолбец векторов слов Умножить,Столбец векторной матрица слов фактически представляет собой определенное измерение разных слов. После этого матрица Умножить, что эквивалентно процессу взвешенного поиска.,Результирующий вектор слов «приехать» представляет собой новое представление после взвешенного поиска.,Весовая матрица рассчитывается посредством сходства и нормализации по месту жительства.

Завершите процесс взвешенного нахождения с помощью весовой матрица Умножить

Q、K、V

Основная формула механизма внимания такова:

Softmax(\frac{QK^\top}{\sqrt{d_{k}}})V

, и то, что мы только что проанализировали

Softmax(\mathbf{X}\mathbf{X}^\top)\mathbf{X}

Несколько похоже. В документе Transformer[^1] эта формула внимания описывается как: Dot-Product Attention。в,QдляQuery、KдляKey、VдляValue。Q、K、Откуда взялся Ви? вопрос、K、V фактически линейно преобразуется из той же входной матрицаX. Мы можем просто понять это как:

Q = XW^Q \\ K = XW^K \\ V = XW^V

Продемонстрируйте с помощью фотографий:

X умножается на три матрицы соответственно для генерации Q, K, V матрица

в,

W^Q

,

W^K

и

W^V

— это три обучаемых параметра матрица. Войти в матрицу

X

отдельный

W^Q

,

W^K

и

W^V

Умножить,генерировать

Q

K

и

V

, что эквивалентно линейному преобразованию. Внимание не используется напрямую.

X

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

Scaled Dot-Product Attention

На этой картинке

Q

и

K^\top

После MatMul генерируется матрица сходства. Разделим к для каждого элемента матрицы сходства

\sqrt{d_k}

,

d_k

для

K

размерный размер. Это разделение называется дляScale. когда

d_k

Когда оно очень большое,

QK^\top

Дисперсия результата умножения становится больше,Выполнение Scale может уменьшить дисперсию.,Обновления градиента более стабильны во время обучения.

Маска — это часто используемая ссылка в задачах обработки естественного языка, таких как машинный перевод. В сценариях НЛП, таких как машинный перевод,Длина каждого примера предложения различна.,Для позиции после окончания предложения,Нет необходимости обращаться к расчету сходства,В противном случае это повлияет на результаты расчетов Softmax.

Мы используем пример из подробного поста в блоге Transformer [^2] иностранного блоггера, чтобы последовательно объяснить приведенные выше расчеты.

Входные данные для вектора слов матрицаX,По одной строке на каждое слово дляматрица,умножение матрицы на иW,первый Генерировать Q, KиV。q1 = X1 * WQ,q1дляQматрицасередина的行向量,k1ждатьи Похоже на:。

От векторов слов к Q, K, V

Второй шаг – провести

QK^\top

Посчитайте и получите подобие.

QиKУмножить,придетсяприезжать Сходство

Третий шаг – разделить сходство вновь полученных поселений на к

\sqrt{d_k}

,Затем выполните Softmax. После нормализации Softmax,Каждое значение представляет собой весовой коэффициент больше 0 и меньше 1.,И общая идля0,Этот результат можно понимать как весовую матрицу.

Scale & Softmax

Четвертый шаг — использовать вновь полученные веса приезжать, матрица, иVУмножить для расчета взвешенного решения.

Используйте весовую матрицу и VУмножить, чтобы получить взвешенный расчет жилья.

бычье внимание

для повышения производительности фитинга,Трансформатор продолжает расширяться Внимание,предложенное бычье внимание(Multiple Head Внимание). Мы только что поняли,

Q

K

V

является входным

X

и

W^Q

W^K

и

W^V

получается умножением соответственно,

W^Q

W^K

и

W^V

— обучаемый параметр матрица. Теперь для того же ввода

X

, мы определяем несколько групп разных

W^Q

W^K

W^V

,например

W^Q_0

W^K_0

W^V_0

,

W^Q_1

W^K_1

и

W^V_1

, каждая группа вычисляет и генерирует разные

Q

K

V

и, наконец, изучите разные параметры.

Определите несколько групп W и сгенерируйте несколько групп Q, K и V.

Например, если мы определим 8 наборов параметров, одни и те же входные данные

X

, вы получите 8 разных выходов

Z_0

приезжать

Z_7

Если определены 8 наборов параметров

Перед выводом следующего слоя приезжать,Нам нужно соединить 8 выходов приезжать,Автор: кматрица

W^O

, уменьшая размеры обратно до нужных нам размеров.

После объединения нескольких наборов выходов Автор: кматрицаWoкуменьшить размерность

Процесс расчета бычьего внимания показан на рисунке ниже. Для шага 2) на картинке ниже,Когда текущий для находится на первом уровне,Кодируйте входные слова напрямую,Генерировать вектор слов X при текущем для последующего слоя;,Используйте выходные данные предыдущего слоя напрямую.

бычье внимание процесс расчета

Глядя на диаграмму «бычье внимание», приведенную в статье «Трансформер», кажется, что ее легче понять:

бычье внимание диаграмма, приведенная в статье Трансформер

[^1]: Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. 31st Conference on Neural Information Processing Systems 2017(NIPS 2017). Long Beach, CA, USA: 2017: 5998–6008.

[^2]: https://jalammar.github.io/illustrated-transformer/

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose