Sobes.tech
Middle — Senior
33

Что такое causal mask и как он реализуется на уровне attention scores?

Companies where asked
VKVK
HeadHunter

Answer from AI

sobes.tech AI

Causal mask (каузальная маска) используется в трансформерах для предотвращения утечки информации из будущих позиций при генерации последовательности. Это важно в задачах автогенерации текста, где модель не должна видеть будущие токены при предсказании текущего.

На уровне attention scores каузальная маска реализуется как верхнетреугольная матрица с элементами, которые запрещают внимание на будущие позиции. Обычно это делается путем добавления большого отрицательного числа (например, -∞ или очень маленького значения) к attention scores для тех позиций, которые находятся правее текущей, перед применением softmax. Это обнуляет вероятность внимания на будущие токены.

Пример (псевдокод):

import torch

seq_len = 5
# Создаем маску: 1 для разрешенных позиций, 0 для запрещенных
causal_mask = torch.tril(torch.ones(seq_len, seq_len))

# attention_scores - матрица (seq_len x seq_len)
# Добавляем маску: запрещенные позиции получают -inf
masked_scores = attention_scores.masked_fill(causal_mask == 0, float('-inf'))

# Затем softmax по последнему измерению
attention_weights = torch.softmax(masked_scores, dim=-1)

Таким образом, модель может учитывать только текущий и предыдущие токены, исключая будущие.