Sobes.tech
Middle — Senior
23

Что такое padding mask и почему его обязательно надо учитывать в attention?

Companies where asked
SoftInterMob

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)