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

Padding mask — это маска, которая указывает модели Transformer, какие позиции в последовательности являются заполнителями (padding), а какие — реальными данными.

Короткий ответ

Что ответить на собеседовании

Padding mask — это маска, которая указывает модели Transformer, какие позиции в последовательности являются заполнителями (padding), а какие — реальными данными. В задачах NLP часто входные последовательности имеют разную длину, поэтому для пакетной обработки их дополняют до одинаковой длины специальными токенами (padding).

Подробный разбор

Ответ с пояснениями

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)

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее