Запрет применяется до нормировки
Causal mask разрешает позиции j≤i, включая текущую. Запрещённым scores присваивается−∞, затем отдельно нормируется каждая query-строка:
Для устойчивости перед exp вычитается максимум разрешённых scores. В запрещённых ячейках coefficient становится0. Если просто поставить score0, его экспонента будет1, и запрет не сработает.
В default первая query имеет только один доступный key, поэтому строка A=[1,0,0]. Вторая имеет scores[0,1/√2,−∞]; её coefficients [α,1−α,0], где α=1/(1+exp(1/√2)).
Эксперимент. Измените только последнюю строку X. Первые две output rows при causal mask должны остаться прежними. Затем отключите mask и повторите: влияние будущего может появиться. Это диагностическая абляция, не допустимый режим авторегрессионного decoder на этапе обучения next-token prediction.
Полностью запрещённая строка не имеет нормированного распределения. Стандартная causal mask с разрешённой диагональю её не создаёт; если в дальнейшем добавится padding mask, этот случай нужно обработать явно.