Začněte nyníZačněte zdarma

Začínáme s třídou MultiHeadAttention

Teď, když máš hotové třídy pro vytváření token embeddings a pozičních embeddings, je čas definovat třídu pro výpočet multi-head attention. Začni tím, že nastavíš parametry potřebné pro výpočet attention a lineární vrstvy, které transformují vstupní embeddings na matice query, key a value — plus jednu vrstvu pro zpětnou projekci kombinovaných attention vah do embeddings.

torch.nn je importován jako nn.

Toto cvičení je součástí kurzu

Transformer Models with PyTorch

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej dimenzi embeddings, kterou bude zpracovávat každý attention head — head_dim.
  • Definuj tři vstupní vrstvy (pro query, key a value) a jednu výstupní vrstvu; ze vstupních vrstev odstraň parametr bias.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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 = ____
Upravit a spustit kód