Реализация многоголового внимания
Прежде чем приступить к написанию собственного класса MultiHeadAttention, попробуйте воспользоваться готовым классом и посмотрите, как он преобразует матрицы запросов, ключей и значений. Напомним, что эти матрицы формируются путём проецирования входных эмбеддингов (векторных представлений) с помощью линейных преобразований с обучаемыми весами.
Матрицы query, key и value уже созданы, а класс MultiHeadAttention определён заранее.
Это упражнение является частью курса
Трансформерные модели с PyTorch
Инструкции к упражнению
- Задайте параметры внимания для восьми голов и входных эмбеддингов с размерностью
512. - Создайте экземпляр класса
MultiHeadAttention, используя заданные параметры. - Пропустите матрицы
query,keyиvalueчерез механизмmultihead_attn.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Define attention parameters
d_model = ____
num_heads = ____
# Instantiate a MultiHeadAttention instance
multihead_attn = ____
# Pass the query, key, and value matrices through the mechanism
output = ____
print(output.shape)