LoslegenKostenlos starten

Die MultiHeadAttentionClass starten

Nachdem du Klassen für Token-Embeddings und Positions-Embeddings definiert hast, ist es Zeit, eine Klasse für Multi-Head-Attention zu erstellen. Richte zunächst die Parameter für die Attention-Berechnung ein sowie die linearen Schichten, die die Eingabe-Embeddings in Query-, Key- und Value-Matrizen umwandeln, und eine weitere, die die kombinierten Attention-Gewichte zurück in Embeddings projiziert.

torch.nn wurde als nn importiert.

Diese Übung ist Teil des Kurses

<Kurs>Transformer-Modelle mit PyTorch</Kurs>
Kurs ansehen

Übungsanweisungen

  • Berechne die Embedding-Dimension, die jeder Attention-Head verarbeitet: head_dim.
  • Definiere die drei Eingabeschichten (für Query, Key und Value) und eine Ausgabeschicht; entferne den Bias-Parameter bei den Eingabeschichten.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen