Маска: почему модель не подсматривает в будущее
в языковой модели attention маскируют так, чтобы каждый токен видел только себя и прошлое.
Зачем это нужно
Модель учится предсказывать следующее слово. Если токен может видеть будущие слова, задача становится тривиальной.
Как это работает
Матрица QK^T имеет размер N×N, где каждая ячейка — это оценка q_i·k_j. В верхнем треугольнике, где j > i, ставят −∞. Softmax превращает −∞ в ноль, и будущие токены не влияют на результат.
Из этого следует важное свойство обучения: каждая позиция в окне даёт свой обучающий пример, и все N можно посчитать за один проход. Минус в том, что attention растёт квадратично с длиной входа.
Пример
Для окна из N токенов получается матрица N×N. Для N = 4 это 16 ячеек, из которых 6 в верхнем треугольнике получают −∞. В каждой строке остаются только оценки с предыдущими токенами.
Что запомнить
- Маска прячет будущие токены через −∞ перед softmax.
- Одна подача текста даёт N обучающих примеров.
- Стоимость attention квадратична по длине входа.
Где читать дальше
- SLP3, гл. 7 «Transformers and Pretraining», раздел 7.3