alterna ai
ALTERNA AI / ГЛАВА 14 · 03

14.3 Подготовим масштаб оценок

На предыдущей странице: три роли одного представления.

В больших векторах суммы произведений могут иметь больший разброс. Деление на корень размера головы помогает управлять масштабом перед превращением оценок в доли.

Запрос сравнивается с ключами; полученные доли взвешивают передаваемые значения. Будущее недоступно при предсказании продолжения. Несколько голов проводят независимые сравнения.

Dot product получает управляемый масштаб

Для query/key размерности d_k исходный score — их скалярное произведение. Scaled dot-product attention использует деление на√d_k:

S=QKT/dk,S∈Rn×n.S=QK^T/\sqrt{d_k},\qquad S\in\mathbb R^{n\times n}.

Если компоненты независимы, центрированы и имеют единичную дисперсию, variance суммы d_kпроизведений равна d_k. Деление на√d_k возвращает масштаб порядка1. Это мотивация из L06, не предположение, автоматически истинное для любых введённых вручную Q/K.

Для третьей query[1,1] и keys[1,0],[0,1],[1,1] dots=[1,1,2]. После scaling это[1/√2,1/√2,√2]. Без scaling разность максимума и остальных больше, softmax становится более концентрированным.

Эксперимент. Выключите scaling при тех же X/W. Сравните coefficients, особенно при увеличении модуля элементов. Порядок scores сохраняется, но распределение может заметно измениться. При нулевых Q все scores равны0, и scaling не оказывает эффекта.

Под капотом. Для nпозиций и ширины d_k вычисляется n²dot products длины d_k. Сами линейные проекции имеют дополнительную стоимость; формула attention-matrix не описывает все FLOPs Transformer. FlashAttention и другие точные оптимизации меняют выполнение/хранение, но не должны подменять математическую операцию.

Независимость, нулевое среднее и единичная variance — условия рассуждения, не автоматический факт.

Нельзя читать ещё не известный ответ. Как этот вопрос продолжает полученный результат?

Python-примеры главы 14 Академическая база →