Что такое padding mask и почему его обязательно надо учитывать в attention?
Answer from AI
sobes.tech AI
Padding mask — это маска, которая указывает модели Transformer, какие позиции в последовательности являются заполнителями (padding), а какие — реальными данными. В задачах NLP часто входные последовательности имеют разную длину, поэтому для пакетной обработки их дополняют до одинаковой длины специальными токенами (padding).
Обязательно учитывать padding mask в attention, чтобы модель не учитывала эти заполнители при вычислении внимания. Если не маскировать padding, модель может обратить внимание на пустые позиции, что приведёт к неправильным вычислениям и ухудшению качества.
В реализации attention маска применяется к матрице скорингов (обычно добавляется большое отрицательное число к позициям padding перед применением softmax), чтобы веса внимания для padding были близки к нулю.
Пример (псевдокод):
scores = Q @ K.T / sqrt(d_k)
# mask — булев массив, где True для padding
scores = scores.masked_fill(mask, -1e9)
attention_weights = softmax(scores)