Aan de slagGa gratis aan de slag

De MultiHeadAttentionClass starten

Nu je klassen hebt gedefinieerd voor het maken van token-embeddings en positionele embeddings, is het tijd om een klasse te definiëren voor het uitvoeren van multi-head attention. Begin met het instellen van de parameters voor de attention-berekening en de lineaire lagen voor het transformeren van de invoer-embeddings naar query-, key- en value-matrices, plus één voor het terugprojecteren van de gecombineerde attentiongewichten naar embeddings.

torch.nn is geïmporteerd als nn.

Deze oefening maakt deel uit van de cursus

Transformermodels met PyTorch

Cursus bekijken

Oefeninstructies

  • Bereken de embedding-dimensie die elke attention head zal verwerken, head_dim.
  • Definieer de drie invoerlagen (voor query, key en value) en één uitvoerlaag; verwijder de bias-parameter uit de invoerlagen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        # Calculate the dimensions each head will process
        self.num_heads = num_heads
        self.d_model = d_model
        self.head_dim = ____
        # Define the three input layers and one output layer
        self.query_linear = nn.Linear(____, ____, bias=False)
        self.key_linear = nn.Linear(____)
        self.value_linear = ____
        self.output_linear = ____
Code bewerken en uitvoeren