Implementacja wielogłowicowej atencji
Zanim zaczniesz budować własną klasę MultiHeadAttention, najpierw sprawdź, jak działa gotowa implementacja – przekonaj się, w jaki sposób przekształca ona macierze zapytań (query), kluczy (key) i wartości (value). Pamiętaj, że macierze te powstają przez rzutowanie osadzeń wejściowych za pomocą transformacji liniowych z wyuczonymi wagami.
Macierze query, key i value zostały już dla ciebie przygotowane, a klasa MultiHeadAttention jest już zdefiniowana.
To ćwiczenie jest częścią kursu
Modele Transformer w PyTorch
Instrukcje do ćwiczenia
- Zdefiniuj parametry atencji dla ośmiu głowic uwagi oraz osadzeń wejściowych o wymiarowości
512. - Utwórz instancję klasy
MultiHeadAttention, korzystając ze zdefiniowanych parametrów. - Przepuść macierze
query,keyivalueprzez mechanizmmultihead_attn.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)