Implementera multi-head attention
Innan du börjar bygga din egen MultiHeadAttention-klass ska du prova att använda klassen för att se hur den transformerar query-, key- och value-matriserna. Kom ihåg att dessa matriser genereras genom att projicera inbäddningarna (embeddings) med hjälp av linjära transformationer med inlärda vikter.
Matriserna query, key och value har redan skapats åt dig, och MultiHeadAttention är redan definierad.
Den här övningen är en del av kursen
Transformermodeller med PyTorch
Övningsinstruktioner
- Definiera attention-parametrarna för åtta attention-huvuden och inbäddningar med dimensionaliteten
512. - Skapa en instans av klassen
MultiHeadAttentionmed de definierade parametrarna. - Skicka matriserna
query,keyochvaluegenommultihead_attn-mekanismen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)